Skip to main content

REST API reference

The REST API is generated from the Tiden gRPC API through grpc-gateway. Public automation should use API tokens and the endpoints listed as public.

Base URL

https://app.tiden.ai

Authentication header

Authorization: Bearer <token>

Public API endpoints

These endpoints are intended for API tokens, CLI, MCP, CI, and customer automation.

Auth, workspace, and product

MethodPathPurpose
GET/v1/auth/meCurrent user for the token
PUT/v1/auth/onboardingUpdate onboarding state
GET/v1/workspacesList workspaces
POST/v1/workspaces/{workspace_id}/productsCreate product
GET/v1/workspaces/{workspace_id}/productsList products
POST/v1/products/{product_id}/setup:verifyVerify product setup state

Requirements

MethodPathPurpose
POST/v1/products/{product_id}/requirementsCreate requirement
GET/v1/products/{product_id}/requirementsList requirements
GET/v1/requirements/{id}Get requirement
PUT/v1/requirements/{id}Update requirement
DELETE/v1/requirements/{id}Delete requirement

Tests

MethodPathPurpose
POST/v1/products/{product_id}/testsCreate suite or case
PUT/v1/tests/{id}Update test
GET/v1/products/{product_id}/testsList tests
GET/v1/tests/{id}Get test
DELETE/v1/tests/{id}Delete test
POST/v1/tests/{test_id}/linksLink test to requirement or propose branch link
DELETE/v1/tests/{test_id}/links/{requirement_id}Unlink test and requirement
GET/v1/tests/{test_id}/linksList test links
GET/v1/branches/{branch_id}/link-proposalsList branch link proposals
POST/v1/branches/{branch_id}/link-proposals:reviewReview branch link proposals
POST/v1/products/{product_id}/tests:ingestIngest reporter draft

Branches and components

MethodPathPurpose
POST/v1/products/{product_id}/branchesCreate branch
GET/v1/products/{product_id}/branchesList branches
GET/v1/branches/{id}Get branch
DELETE/v1/branches/{id}Delete branch
GET/v1/branches/{id}/merge-previewPreview merge
POST/v1/branches/{id}/mergeMerge branch
POST/v1/products/{product_id}/componentsCreate component
GET/v1/products/{product_id}/componentsList components

Environments and releases

MethodPathPurpose
POST/v1/products/{product_id}/environmentsCreate environment
GET/v1/products/{product_id}/environmentsList environments
GET/v1/environments/{id}Get environment
DELETE/v1/environments/{id}Delete environment
POST/v1/products/{product_id}/releasesCreate or update release
GET/v1/products/{product_id}/releasesList releases
GET/v1/releases/{id}Get release

Quality gates

MethodPathPurpose
POST/v1/products/{product_id}/quality-gate:computeCompute verdict
GET/v1/products/{product_id}/quality-gateGet latest verdict
GET/v1/products/{product_id}/quality-gate/traceabilityGet traceability matrix
POST/v1/products/{product_id}/quality-gate:accept-riskAccept risk
POST/v1/products/{product_id}/quality-gate:approve-riskApprove risk

Agents

MethodPathPurpose
GET/v1/agent-typesList agent types
GET/v1/products/{product_id}/agent-configsList agent configs
GET/v1/agent-configs/{id}Get agent config
POST/v1/products/{product_id}/agent-configsCreate agent config
DELETE/v1/agent-configs/{id}Delete agent config
POST/v1/agent-configs/{agent_config_id}/runsStart agent run
POST/v1/agent-runs/{id}:cancelCancel agent run
GET/v1/agent-runs/{id}Get agent run
GET/v1/agent-configs/{agent_config_id}/runsList runs
GET/v1/agent-runs/{run_id}/eventsList run events
GET/v1/agent-runs/{run_id}/events:streamStream run events

Agent retrieval and intent

MethodPathPurpose
GET/v1/products/{product_id}/coverage-gapsGet coverage gaps
GET/v1/products/{product_id}/requirements/{requirement_id}/test-contextGet test generation context
POST/v1/products/{product_id}/test-generation-context:preparePrepare test generation context
POST/v1/products/{product_id}/intent:distillDistill intent into branch

Issues

Error tracking reads and status changes are available to API tokens, so the CLI, the MCP server, CI, and coding agents can triage issues without a browser session.

MethodPathPurpose
GET/v1/products/{product_id}/issuesList issues, newest activity first
GET/v1/issues/{id}Get an issue with its latest occurrence
GET/v1/issues/{id}/eventsList an issue's occurrences
GET/v1/issues/{id}/events/{event_id}Get one occurrence with symbolicated frames
GET/v1/issues/{id}/statsOccurrence counts over time and per environment
GET/v1/releases/{release_id}/issuesIssues first seen in a release
POST/v1/issues/{id}:setStatusSet one issue's status
POST/v1/products/{product_id}/issues:bulkSetStatusSet the same status on many issues
GET/v1/products/{product_id}/issues/{issue_id}/fix-contextEverything needed to fix one issue, in one call

Notes:

  • GET /v1/products/{product_id}/issues filters on status (unresolved, resolved, ignored, or empty for all), environment_id, release_id, component_id, repeated levels and platforms, and a trailing period window (3m, 1h, 12h, 1d, 7d, 30d). Sort with sort (last_seen, first_seen, times_seen) and page with the opaque cursor in pagination.page_token.
  • An issue itself has no environment — environment lives on its occurrences. Use GET /v1/issues/{id}/stats to learn where an issue is actually happening.
  • GET /v1/issues/{id} symbolicates only the latest occurrence. When the occurrence that matters is not the latest one, fetch it directly with GET /v1/issues/{id}/events/{event_id}.
  • event_id in the occurrence path is the occurrence's Tiden id, not the event_id the SDK generated.
  • Status changes are recorded with the actor that made them and are reversible.
  • fix-context returns the issue, its symbolicated frames, the repository files those frames implicate, the per-environment split, the attributed component, and — for each requirement those files implement — whether a test already covers it (verified, not_run, or no_test). It accepts branch and max_frames, clears the raw event payload, and names anything it dropped in truncation_signals. Prefer it over stitching the reads above together.

Source map upload

MethodPathPurpose
POST/v1/products/{product_id}/sourcemapsCreate source map upload
POST/v1/sourcemaps/{id}:confirmConfirm source map upload

Web-only endpoint groups

These are primarily for the Tiden web app and browser sessions:

  • Signup, login, refresh, logout, profile, password, avatar, MFA, and passkeys.
  • API token create/list/revoke.
  • Organization members, invites, roles, statuses, workspace scopes, and invite links.
  • Workspace create/update/delete, members, invites, and invite links.
  • Product get/update/delete and product setup read.
  • Component get/update/delete.
  • Environment update.
  • Requirement/test move, history, and restore.
  • Attachment upload/download.
  • Credential create/list/delete/test.
  • Billing overview, checkout, portal, and pricing.
  • Issue DSN key management, inbound filters, the issue overview aggregates that back UI tiles (counts, stats, facets), and source map list/delete.
  • Quality gate overview history and mark-seen.
  • Agent config update, memory, triggers, and artifacts.

Error tracking ingest endpoint

SDK event ingest is not a proto REST endpoint. It is a separate DSN-authenticated HTTP surface:

POST /api/{product_id}/envelope/?tiden_key=<publicKey>
POST /api/{product_id}/store/?tiden_key=<publicKey>

Use Custom ingest only when an official SDK is not available.