xtract-api docs
One deployed API, split by route namespace: device, app, ops, ads.
Machine-readable spec: /api/openapi.json
Device domain
TV/pairing/payload lifecycle only.
| Method | Path | Description | Status |
|---|---|---|---|
| POST | /api/v1/device/register | Register/re-register TV device. | live |
| POST | /api/v1/device/pairing/claim | Claim pairing code. | live |
| GET | /api/v1/device/config | Read pairing/config state. | live |
| GET | /api/v1/device/menu | Read active menu summary. | live |
| GET | /api/v1/device/payload | Poll payload (ETag supported). | live |
| GET | /api/v1/device/payload/stream | SSE payload revision stream. | live |
| GET | /api/v1/device/media/proxy | Device-safe media proxy. | live |
App domain
Mobile/social/journal/reviews/discovery map APIs.
| Method | Path | Description | Status |
|---|---|---|---|
| GET | /api/v1/app/session | Session restore/status. | scaffold |
| GET/PATCH | /api/v1/app/profile | Current profile read/update. | scaffold |
| GET/POST | /api/v1/app/posts | Feed list + create post. | scaffold |
| GET/PATCH/DELETE | /api/v1/app/posts/{id} | Post detail/update/delete. | scaffold |
| POST/DELETE | /api/v1/app/posts/{id}/like | Like/unlike post. | scaffold |
| GET/POST | /api/v1/app/posts/{id}/comments | Comments list/create. | scaffold |
| GET/POST/DELETE | /api/v1/app/follows | Follow graph actions. | scaffold |
| GET/POST | /api/v1/app/journal | Daily coffee log journal. | scaffold |
| GET | /api/v1/app/passport | Passport progress/stamps. | scaffold |
| GET/POST | /api/v1/app/reviews/venues | Venue review APIs. | scaffold |
| GET/POST | /api/v1/app/reviews/roasters | Roaster review APIs. | scaffold |
| GET/POST | /api/v1/app/reviews/coffees | Coffee review APIs. | scaffold |
| GET | /api/v1/app/discovery | Discovery feed endpoint. | scaffold |
| GET | /api/v1/app/map/venues | Map-ready venue payload. | scaffold |
| GET | /api/v1/app/map/roasters | Map-ready roaster payload. | scaffold |
Ops domain
Admin/console operations + moderation.
| Method | Path | Description | Status |
|---|---|---|---|
| POST | /api/v1/ops/media/upload | Upload media asset. | live |
| POST | /api/v1/ops/media/delete | Delete media asset. | live |
| GET | /api/v1/ops/media/proxy | Operational media proxy. | live |
| POST | /api/v1/ops/roaster-claims/review | Approve/reject roaster claims. | live |
| GET/POST | /api/v1/ops/moderation/reports | Social report moderation queue/actions. | scaffold |
| GET/POST | /api/v1/ops/moderation/reviews | Review moderation queue/actions. | scaffold |
Ads domain
Sponsored feed MVP endpoints.
| Method | Path | Description | Status |
|---|---|---|---|
| GET | /api/v1/ads/serve | Serve sponsored feed item. | scaffold |
| POST | /api/v1/ads/events/impression | Track impression event. | scaffold |
| POST | /api/v1/ads/events/click | Track click event. | scaffold |
| GET/POST | /api/v1/ads/moderation/creatives | Ad creative moderation queue/actions. | scaffold |
| PATCH | /api/v1/ads/moderation/creatives/{creativeId} | Update moderation decision. | scaffold |
Legacy aliases
Temporary wrappers. Responses include deprecation headers.
| Method | Path | Description | Status |
|---|---|---|---|
| POST | /api/v1/devices/register | Alias of /api/v1/device/register. | legacy |
| POST | /api/v1/pairing/claim | Alias of /api/v1/device/pairing/claim. | legacy |
| POST | /api/v1/media/upload | Alias of /api/v1/ops/media/upload. | legacy |
| POST | /api/v1/media/delete | Alias of /api/v1/ops/media/delete. | legacy |
| GET | /api/v1/media/proxy | Alias of /api/v1/ops/media/proxy. | legacy |
| POST | /api/v1/roaster-claims/review | Alias of /api/v1/ops/roaster-claims/review. | legacy |