Deep Links
Project-wide deep-link config and per-slug tracked link analytics.
Deep-link config is a singleton row (id = 1). Tracked links are slug → destination-URL mappings with click counters. Analytics are aggregated in SQL so popular links don't OOM the API by pulling link_clicks into Node.
Source: apps/api/src/routes/admin/deep-links.ts.
Endpoints
| Method | Path | Description |
|---|---|---|
| GET | /admin/projects/:projectId/deep-links/config | Read the singleton config row. |
| PUT | /admin/projects/:projectId/deep-links/config | Upsert the config row. |
| POST | /admin/projects/:projectId/deep-links/tracked | Create a tracked link. |
| GET | /admin/projects/:projectId/deep-links/tracked | Paginated list of tracked links. |
| DELETE | /admin/projects/:projectId/deep-links/tracked/:linkId | Delete. |
| GET | /admin/projects/:projectId/deep-links/tracked/:linkId/stats | Click analytics with platform breakdown. |
GET /admin/projects/:projectId/deep-links/config
Response 200
Errors
404 NOT_FOUND— no config row yet.
Try it:
GET
developer auth/admin/projects/%7B%7BprojectId%7D%7D/deep-links/configcurl -X GET 'https://api.amba.dev/admin/projects/%7B%7BprojectId%7D%7D/deep-links/config'Loading auth… Configure auth in the settings drawer (top-right) to run this request.
Curl:
PUT /admin/projects/:projectId/deep-links/config
Upsert the singleton.
Request (CreateDeepLinkConfigInput)
| Field | Type | Required |
|---|---|---|
url_scheme | string | no |
universal_link_domain | string | no |
android_package_name | string | no |
ios_bundle_id | string | no |
fallback_url | string | no |
Response 200
Config row.
Errors
500 UPSERT_FAILED.
Try it:
PUT
developer auth/admin/projects/%7B%7BprojectId%7D%7D/deep-links/configcurl -X PUT 'https://api.amba.dev/admin/projects/%7B%7BprojectId%7D%7D/deep-links/config'Loading auth… Configure auth in the settings drawer (top-right) to run this request.
Curl:
POST /admin/projects/:projectId/deep-links/tracked
Request (CreateTrackedLinkInput)
| Field | Type | Required | Default |
|---|---|---|---|
slug | string | yes | — |
destination_url | string | yes | — |
metadata | object | no | {} |
Response 201
Try it:
POST
developer auth/admin/projects/%7B%7BprojectId%7D%7D/deep-links/trackedcurl -X POST 'https://api.amba.dev/admin/projects/%7B%7BprojectId%7D%7D/deep-links/tracked'Loading auth… Configure auth in the settings drawer (top-right) to run this request.
Curl:
GET /admin/projects/:projectId/deep-links/tracked
Query
| Param | Default |
|---|---|
limit | 50 |
offset | 0 |
Response 200
Try it:
GET
developer auth/admin/projects/%7B%7BprojectId%7D%7D/deep-links/trackedcurl -X GET 'https://api.amba.dev/admin/projects/%7B%7BprojectId%7D%7D/deep-links/tracked'Loading auth… Configure auth in the settings drawer (top-right) to run this request.
Curl:
DELETE /admin/projects/:projectId/deep-links/tracked/:linkId
Try it:
DELETE
developer auth/admin/projects/%7B%7BprojectId%7D%7D/deep-links/tracked/%7B%7BlinkId%7D%7Dcurl -X DELETE 'https://api.amba.dev/admin/projects/%7B%7BprojectId%7D%7D/deep-links/tracked/%7B%7BlinkId%7D%7D'Loading auth… Configure auth in the settings drawer (top-right) to run this request.
Curl:
GET /admin/projects/:projectId/deep-links/tracked/:linkId/stats
Response 200
Errors
404 NOT_FOUND.
Try it:
GET
developer auth/admin/projects/%7B%7BprojectId%7D%7D/deep-links/tracked/%7B%7BlinkId%7D%7D/statscurl -X GET 'https://api.amba.dev/admin/projects/%7B%7BprojectId%7D%7D/deep-links/tracked/%7B%7BlinkId%7D%7D/stats'Loading auth… Configure auth in the settings drawer (top-right) to run this request.
Curl: