Amba

Deep Links

Resolve a tracked slug, record a click, fetch link config.

Endpoints

MethodPathDescription
GET/client/deep-links/resolve/:slugResolve a slug to its destination URL.
POST/client/deep-links/clickRecord a click (atomic INSERT + counter increment).
GET/client/deep-links/configFetch the project's deep-link config (url_scheme, domain, fallback).

GET /client/deep-links/resolve/:slug

Response 200

{
  "data": {
    "id": "…",
    "url": "https://…",
    "short_code": "launch",
    "target_path": null,
    "metadata": {},
    "created_at": "…",
    "slug": "launch",
    "destination_url": "https://…"
  }
}

url is the link's destination and short_code its slug (the SDKs' DeepLink fields); destination_url and slug carry the same values.

Errors

  • 404 NOT_FOUND.

Try it:

GET/client/deep-links/resolve/%7B%7Bslug%7D%7D
client auth
curl -X GET 'https://api.amba.dev/v1/client/deep-links/resolve/%7B%7Bslug%7D%7D'
Loading auth… Configure auth in the settings drawer (top-right) to run this request.

Curl:

curl -X GET "${BASE_URL}/client/deep-links/resolve/{slug}" \
  -H "X-Api-Key: ${CLIENT_API_KEY}" \
  -H "Authorization: Bearer ${SESSION_TOKEN}"

POST /client/deep-links/click

Inserts into link_clicks and increments tracked_links.click_count in a single tx. Records the link, the signed-in user, the platform you send, and the time. The click stores no IP address. Deleting the user clears the user on each of their clicks and keeps the click in the link's stats.

Request

FieldTypeRequired
tracked_link_iduuidyes
platformstringno

Response 201

{ "data": { "tracked": true } }

Errors

  • 500 CREATE_FAILED.

Try it:

POST/client/deep-links/click
client auth
curl -X POST 'https://api.amba.dev/v1/client/deep-links/click' \
  -H 'Content-Type: application/json' \
  -d '{
  "tracked_link_id": "<tracked_link_id>",
  "platform": "ios"
}'
Loading auth… Configure auth in the settings drawer (top-right) to run this request.

Curl:

curl -X POST "${BASE_URL}/client/deep-links/click" \
  -H "X-Api-Key: ${CLIENT_API_KEY}" \
  -H "Authorization: Bearer ${SESSION_TOKEN}" \
  -H 'Content-Type: application/json' \
  -d '{"tracked_link_id":"<tracked_link_id>","platform":"ios"}'

GET /client/deep-links/config

Returns public-safe config fields only (url_scheme, universal_link_domain, fallback_url). Returns data: null if no config exists (or on read failure — this endpoint never 500s).

Response 200

{
  "data": {
    "url_scheme": "myapp",
    "universal_link_domain": "app.example.com",
    "fallback_url": "https://example.com"
  }
}

Try it:

GET/client/deep-links/config
client auth
curl -X GET 'https://api.amba.dev/v1/client/deep-links/config'
Loading auth… Configure auth in the settings drawer (top-right) to run this request.

Curl:

curl -X GET "${BASE_URL}/client/deep-links/config" \
  -H "X-Api-Key: ${CLIENT_API_KEY}" \
  -H "Authorization: Bearer ${SESSION_TOKEN}"

On this page