Skip to main content

REST API integration

The public REST API is the integration surface for CLI, CI, MCP, and customer automation.

Base URL​

https://app.tiden.ai

Private or self-hosted deployments may use a different base URL.

Authentication​

Use a bearer API token:

curl https://app.tiden.ai/v1/auth/me \
-H "Authorization: Bearer $TIDEN_API_TOKEN"

API tokens are restricted to the public API surface. Browser-only admin operations require a web session and are not intended for API token automation.

JSON gateway behavior​

The REST gateway wraps many RPC responses in their top-level message field. For example, a response may be:

{
"requirements": []
}

or:

{
"verdict": {
"status": "VERDICT_STATUS_PASS"
}
}

The requirements key in the first example holds specs. In the API, a spec is the requirement resource, so paths and JSON fields keep that name.

Check each endpoint response shape before writing a strict client.

Idempotent release creation​

Release creation is safe for CI:

curl -X POST "https://app.tiden.ai/v1/products/$PRODUCT_ID/releases" \
-H "Authorization: Bearer $TIDEN_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"version": "my-app@1.2.3",
"environment": "production",
"buildSha": "4f2c9e1d7a3b5c6e8f9012a3b4c5d6e7f8091a2b"
}'

Repeating the same product, version, and environment updates the same release. buildSha is optional: the full commit SHA the release was built from, so its Quality Gate is captured from that commit's test results. A repeat with the same buildSha, or none, does not change the gate. See Release captures.

To capture a release's gate again, for example after a test job that reported late:

curl -X POST "https://app.tiden.ai/v1/releases/$RELEASE_ID/quality-gate:capture" \
-H "Authorization: Bearer $TIDEN_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'

The release id is .release.id in the create response. The answer carries pending: true while the commit has no test results yet.

Source map upload​

The source map plugin uses two public API calls:

  1. Create a source map upload.
  2. Upload to the returned presigned URL.
  3. Confirm the upload.

Prefer the official plugin unless you are implementing a custom bundler integration.