EasyTrack API Help
Authorization: Bearer <jwt> — required for all endpoints except /api/auth/login, /api/insights/version, and /health.X-Tenant-Id: <tenant-code> — required for all tenant data endpoints.| Method | Route | Auth | Notes |
|---|---|---|---|
| POST | /api/auth/login | None | Body: { "email": "", "password": "" }. Returns accessToken, expiresUtc. |
| Method | Route | Notes |
|---|---|---|
| GET | /api/titles | Optional: ticode, searchText, dateColumn (A–D), updatedAfter, projType (multi-value: repeat ?projType=TV&projType=CT or comma-separated ?projType=TV,CT), pageNumber, pageSize (max 200). If neither pageNumber nor pageSize is supplied, returns a raw JSON array (legacy). If either is supplied, returns a paged envelope { pageNumber, pageSize, totalCount, totalPages, items }. |
| GET | /api/titles/cursor | Keyset pagination. Optional: ticode, searchText, dateColumn, updatedAfter, projType (multi-value: repeat or comma-separated), cursor, pageSize (max 500). |
| GET | /api/titles/{id} | Single title by rowguid. |
| Method | Route | Notes |
|---|---|---|
| GET | /api/titles-episodes | Optional: ticode, updatedAfter, pageNumber, pageSize (max 200). Omit both pagination params for the raw array (legacy); supply either to get the paged envelope. |
| GET | /api/titles-episodes/{ticode}/{episodeno} | Single episode by composite key. |
| Method | Route | Notes |
|---|---|---|
| GET | /api/titles-versions | Optional: ticode, updatedAfter (new UpdateDate column), pageNumber, pageSize (max 200). Omit both pagination params for the raw array (legacy); supply either to get the paged envelope. |
| GET | /api/titles-versions/{ticode}/{versioncode} | Single version by composite key. |
| Method | Route | Notes |
|---|---|---|
| GET | /api/titles-packages | Optional: ticode, pkcode, updatedAfter. |
| GET | /api/titles-packages/{pkcode}/{ticode} | Single package by composite key. |
| Method | Route | Notes |
|---|---|---|
| GET | /api/titles-phase | List all title phases (from Titles_Phase). No filters; ordered by Phase. |
| Method | Route | Notes |
|---|---|---|
| GET | /api/products | Optional: dateColumn (A–D), updatedAfter, pageNumber, pageSize (max 200). Omit both pagination params for the raw array (legacy); supply either to get the paged envelope. |
| GET | /api/products/{serialno} | Single product by SerialNo. |
| PUT | /api/products/{serialno} | Partial update — only supplied JSON fields are written. SerialNo, UpdateDate, rowguid are read-only. |
| POST | /api/products | Create product. Required: TiCode, Format, COKey_ID (must be an Active CRM contact). SerialNo is auto-assigned. |
| Method | Route | Notes |
|---|---|---|
| GET | /api/product-tracks | List all product tracks. |
| GET | /api/product-tracks/{serialno} | Single product track by SerialNo. |
| PUT | /api/product-tracks/{serialno} | Partial update — only supplied JSON fields are written. SerialNo is read-only. Validates TrackType, Language, and TrackPosition against picklists. |
| POST | /api/product-tracks | Create product track. Required: SerialNo (must match an existing Product). Validates TrackType, Language, and TrackPosition against picklists. |
| Method | Route | Notes |
|---|---|---|
| GET | /api/product-formats | Optional: updatedAfter. |
| GET | /api/product-formats/{format} | Single format by format code. |
| Method | Route | Notes |
|---|---|---|
| GET | /api/crm-accounts | Optional: dateColumn (A–D), updatedAfter, pageNumber, pageSize (max 200). Omit both pagination params for the raw array (legacy); supply either to get the paged envelope. |
| GET | /api/crm-accounts/{ackeyid} | Single account by ACKey_ID. |
| Method | Route | Notes |
|---|---|---|
| GET | /api/crm-contacts | Optional: ackeyId, dateColumn (A–D), updatedAfter, pageNumber, pageSize (max 200). Omit both pagination params for the raw array (legacy); supply either to get the paged envelope. |
| GET | /api/crm-contacts/{cokeyid} | Single contact by COKey_ID. |
| Method | Route | Notes |
|---|---|---|
| GET | /api/crm-address | Optional: updatedAfter. |
| GET | /api/crm-address/{adkeyid} | Single address by ADKey_ID. |
| Method | Route | Notes |
|---|---|---|
| GET | /health | No auth required. Returns app and dependency (MasterDatabase) health status as JSON. |
For additional details please go to: https://www.easytrackdevelopments.com
Breaking: list endpoints
/api/titles-episodes,
/api/titles-versions,
/api/crm-accounts,
/api/crm-contacts, and
/api/products
now return a paged envelope
{ pageNumber, pageSize, totalCount, totalPages, items }
instead of a raw array. Clients should read .items.