Hardata API
Document version: 1.1
Contrato fuente: OpenAPI 3.1.1, API v1.0
Reference status: September 14, 2026
This is the public, self-contained HARDATA API reference. It supports authentication, querying and management of media, metadata, catalogs, and advertising traffic, as well as execution of the scheduling algorithm. It should be used together with HARDATA ECP when an application also needs to monitor or control HDX in real time.
This documentation does not contain tokens, keys, users, passwords, or private values from any installation. All authentication values in the examples are placeholders that the integrator must replace at runtime.
1. Base URL and Transport
The reference specification declares http://localhost:5010/. In a real installation, the base URL is provided by HARDATA or by the system administrator. Do not hard-code localhost or a port as product constants.
- Transporte HTTP/HTTPS.
- JSON bodies are UTF-8 except for
multipart/form-dataand media streaming. - Dates and times must be sent in the format specified by each field's schema.
- Identifiers are opaque: do not infer meaning, order, or persistence from their value. When the schema declares
int64, its decimal representation is still an identifier, not a number suitable for business calculations. - Use HTTPS in production and validate the certificate.
2. Authentication
The specification declares HTTP Bearer authentication using JWT tokens. Obtain a token with POST /api/v1/auth/login and send it with protected requests:
Authorization: Bearer <token-jwt>
Login example without real credentials:
POST /api/v1/auth/login
Content-Type: application/json
{ "username": "<usuario>", "password": "<contraseña>" }
Response: LoginResponse, with success, message, token and refreshToken. When the token has expired, refresh it with POST /api/v1/auth/refresh. Never log the login body or token. The OpenAPI source defines the Bearer scheme but does not annotate security operation by operation; an integration should treat any endpoint not explicitly exposed as public by the installation as protected and handle 401 Unauthorized.
The HARDATA API base URL, credentials, and token are configured and managed separately from the HARDATA ECP connection. An authenticated WebSocket session does not authenticate HTTP requests, session.setup does not discover the API, and an App must not assume that both services share credentials even if a particular installation has provisioned them that way.
3. Client Conventions
- Send
Accept: application/jsonfor JSON responses. - Send
Content-Type: application/jsonfor JSON creates and updates. - Tratar
200and201as success with a body;204as success without a body. - Handle
400as invalid input,401as missing or expired authentication,404as resource not found,409as a conflict, and500as an internal server error. - For errors with a body
ProblemDetails, preservestatus,title,detail,typeeinstance. - Do not automatically retry
POST,PUToDELETEif the outcome is unknown. Check the resource state first. - Apply timeouts, cancellation, and backoff with jitter. Refresh the token according to the installation policy.
- Allow additional properties to maintain compatibility with future extensions.
Relationship of materialId with HARDATA ECP
materialId is an Int64 in HARDATA Database and HARDATA API. HARDATA ECP transports it as a canonical decimal string to avoid loss of precision: 0 or a sequence without a leading zero between 1 and 9223372036854775807.
To query the metadata of an ECP node, the App uses that sequence literally as {materialId} in GET /api/v1/material/{materialId}. The server converts it to Int64 using invariant culture. It must not first be converted to Number in JavaScript; to read JSON responses containing int64 outside JavaScript's safe range, a parser that preserves 64-bit integers is required.
4. Minimal Examples
Query a media item
GET /api/v1/material/12345
Authorization: Bearer <token-jwt>
Accept: application/json
Query Timing for Automation
Use GET /api/v1/material/{materialId}. The integer time fields of MaterialResponse are expressed in milliseconds:
startPosandendPos: start and end positions on the file timeline;endPos = 0indicates that the physical end is used.punchIneintro: positions measured from the beginning of the file.punchOutandoutro: offsets measured backward from the effective end; for example,punchOut = 1500starts the crossfade when 1500 ms remain.punchInFadeLengthandpunchOutFadeLength: fade durations.insertOver: time offset, also in milliseconds.
An application such as AI Operator can combine this metadata with positionMs, durationMs and remainingMs received through HARDATA ECP. HARDATA API does not replace ECP timers or playback events; before comparing values, the App must respect the direction of each marker and use a single unit.
Paginated Search
GET /api/v1/material/search?q=nombre&page=1&pageSize=50
Authorization: Bearer <token-jwt>
Streaming with Seeking
GET /api/v1/material/12345/stream?fileId=67890
Authorization: Bearer <token-jwt>
Range: bytes=0-1048575
The endpoint may return 200 or 206; handle 416 when the requested range is invalid.
5. Complete Endpoint Catalog
Agency
GET /api/v1/traffic/agency
| Status | Response | Description |
|---|---|---|
200 |
array of AgencyResponse | OK |
POST /api/v1/traffic/agency
Cuerpo: CreateAgencyRequest. Content-Type: application/json, text/json, application/*+json. Required: yes.
| Status | Response | Description |
|---|---|---|
200 |
AgencyResponse | OK |
GET /api/v1/traffic/agency/{agencyId}
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
agencyId |
path | integer (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
| Status | Response | Description |
|---|---|---|
200 |
AgencyResponse | OK |
PUT /api/v1/traffic/agency/{agencyId}
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
agencyId |
path | integer (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
Cuerpo: UpdateAgencyRequest. Content-Type: application/json, text/json, application/*+json. Required: yes.
| Status | Response | Description |
|---|---|---|
200 |
AgencyResponse | OK |
DELETE /api/v1/traffic/agency/{agencyId}
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
agencyId |
path | integer (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
| Status | Response | Description |
|---|---|---|
200 |
no declared schema | OK |
GET /api/v1/traffic/agency/types
| Status | Response | Description |
|---|---|---|
200 |
no declared schema | OK |
GET /api/v1/traffic/agency/statuses
| Status | Response | Description |
|---|---|---|
200 |
no declared schema | OK |
Album
GET /api/v1/album
| Status | Response | Description |
|---|---|---|
200 |
array of AlbumResponse | OK |
POST /api/v1/album
Cuerpo: CreateAlbumRequest. Content-Type: application/json, application/*+json. Required: yes.
| Status | Response | Description |
|---|---|---|
201 |
AlbumResponse | Created |
400 |
ProblemDetails | Bad Request |
409 |
ProblemDetails | Conflict |
GET /api/v1/album/{id}
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
id |
path | integer (int64) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
| Status | Response | Description |
|---|---|---|
200 |
AlbumResponse | OK |
404 |
ProblemDetails | Not Found |
PUT /api/v1/album/{id}
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
id |
path | integer (int64) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
Cuerpo: UpdateAlbumRequest. Content-Type: application/json, application/*+json. Required: yes.
| Status | Response | Description |
|---|---|---|
200 |
AlbumResponse | OK |
400 |
ProblemDetails | Bad Request |
404 |
ProblemDetails | Not Found |
409 |
ProblemDetails | Conflict |
DELETE /api/v1/album/{id}
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
id |
path | integer (int64) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
| Status | Response | Description |
|---|---|---|
204 |
no declared schema | No Content |
404 |
ProblemDetails | Not Found |
409 |
ProblemDetails | Conflict |
Algorithm
POST /api/v1/traffic/algorithm/schedule
Execute the scheduling algorithm for a specific date and station.
Cuerpo: ScheduleRequest. Content-Type: application/json, text/json, application/*+json. Required: yes.
| Status | Response | Description |
|---|---|---|
200 |
SchedulingResponse | Scheduling completed successfully. |
400 |
ProblemDetails | Invalid request parameters. |
401 |
ProblemDetails | Unauthorized - JWT token required. |
500 |
no declared schema | Internal server error during scheduling. |
GET /api/v1/traffic/algorithm/stats
Get scheduling statistics for a specific date and station. Useful for preview before running the full algorithm.
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
stationId |
query | integer or string (int32) | No | Station ID. pattern ^-?(?:0|[1-9]\d*)$ |
date |
query | string (date) | No | Schedule date (YYYY-MM-DD). |
| Status | Response | Description |
|---|---|---|
200 |
SchedulingStats | Statistics retrieved successfully. |
400 |
ProblemDetails | Invalid parameters. |
401 |
ProblemDetails | Unauthorized - JWT token required. |
AssetType
GET /api/v1/asset-type
| Status | Response | Description |
|---|---|---|
200 |
array of AssetTypeResponse | OK |
GET /api/v1/asset-type/{assetTypeId}
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
assetTypeId |
path | integer (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
| Status | Response | Description |
|---|---|---|
200 |
AssetTypeResponse | OK |
404 |
ProblemDetails | Not Found |
Auth
POST /api/v1/auth/login
Cuerpo: HdxLoginRequest. Content-Type: application/json, text/json, application/*+json. Required: yes.
| Status | Response | Description |
|---|---|---|
200 |
LoginResponse | OK |
POST /api/v1/auth/refresh
Cuerpo: RefreshTokenRequest. Content-Type: application/json, text/json, application/*+json. Required: yes.
| Status | Response | Description |
|---|---|---|
200 |
LoginResponse | OK |
Break Templates
GET /api/v1/traffic/breaktemplate
List all templates
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
includeInactive |
query | boolean | No | predeterminado False |
| Status | Response | Description |
|---|---|---|
200 |
array of BreakTemplateResponse | OK |
401 |
ProblemDetails | Unauthorized |
POST /api/v1/traffic/breaktemplate
Cuerpo: CreateBreakTemplateRequest. Content-Type: application/json, text/json, application/*+json. Required: yes.
| Status | Response | Description |
|---|---|---|
200 |
BreakTemplateResponse | OK |
GET /api/v1/traffic/breaktemplate/{id}
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
id |
path | integer (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
| Status | Response | Description |
|---|---|---|
200 |
BreakTemplateResponse | OK |
PUT /api/v1/traffic/breaktemplate/{id}
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
id |
path | integer (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
Cuerpo: UpdateBreakTemplateRequest. Content-Type: application/json, text/json, application/*+json. Required: yes.
| Status | Response | Description |
|---|---|---|
200 |
BreakTemplateResponse | OK |
DELETE /api/v1/traffic/breaktemplate/{id}
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
id |
path | integer (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
| Status | Response | Description |
|---|---|---|
200 |
no declared schema | OK |
GET /api/v1/traffic/breaktemplate/station/{stationId}
Get templates by station
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
stationId |
path | integer (int64) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
includeInactive |
query | boolean | No | predeterminado False |
| Status | Response | Description |
|---|---|---|
200 |
array of BreakTemplateResponse | OK |
401 |
ProblemDetails | Unauthorized |
DELETE /api/v1/traffic/breaktemplate/{id}/hard
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
id |
path | integer (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
| Status | Response | Description |
|---|---|---|
200 |
no declared schema | OK |
BreakType
GET /api/v1/traffic/break-types
| Status | Response | Description |
|---|---|---|
200 |
array with no declared schema | OK |
POST /api/v1/traffic/break-types
Cuerpo: CreateBreakTypeRequest. Content-Type: application/json, application/*+json. Required: yes.
| Status | Response | Description |
|---|---|---|
201 |
no declared schema | Created |
409 |
ProblemDetails | Conflict |
PUT /api/v1/traffic/break-types/{id}
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
id |
path | integer (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
Cuerpo: UpdateBreakTypeRequest. Content-Type: application/json, application/*+json. Required: yes.
| Status | Response | Description |
|---|---|---|
200 |
no declared schema | OK |
404 |
ProblemDetails | Not Found |
DELETE /api/v1/traffic/break-types/{id}
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
id |
path | integer (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
| Status | Response | Description |
|---|---|---|
204 |
no declared schema | No Content |
404 |
ProblemDetails | Not Found |
409 |
ProblemDetails | Conflict |
Campaign
GET /api/v1/traffic/campaign
| Status | Response | Description |
|---|---|---|
200 |
array of CampaignResponse | OK |
POST /api/v1/traffic/campaign
Cuerpo: CreateCampaignRequest. Content-Type: application/json, text/json, application/*+json. Required: yes.
| Status | Response | Description |
|---|---|---|
200 |
CampaignResponse | OK |
GET /api/v1/traffic/campaign/{campaignId}
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
campaignId |
path | integer (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
| Status | Response | Description |
|---|---|---|
200 |
CampaignResponse | OK |
PUT /api/v1/traffic/campaign/{campaignId}
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
campaignId |
path | integer (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
Cuerpo: UpdateCampaignRequest. Content-Type: application/json, text/json, application/*+json. Required: yes.
| Status | Response | Description |
|---|---|---|
200 |
CampaignResponse | OK |
DELETE /api/v1/traffic/campaign/{campaignId}
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
campaignId |
path | integer (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
| Status | Response | Description |
|---|---|---|
200 |
no declared schema | OK |
GET /api/v1/traffic/campaign/statuses
| Status | Response | Description |
|---|---|---|
200 |
no declared schema | OK |
Category
GET /api/v1/category
| Status | Response | Description |
|---|---|---|
200 |
array of CategoryResponse | OK |
POST /api/v1/category
Cuerpo: CreateCategoryRequest. Content-Type: application/json, application/*+json. Required: yes.
| Status | Response | Description |
|---|---|---|
201 |
CategoryResponse | Created |
400 |
ProblemDetails | Bad Request |
404 |
ProblemDetails | Not Found |
409 |
ProblemDetails | Conflict |
GET /api/v1/category/{categoryId}
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
categoryId |
path | integer (int64) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
| Status | Response | Description |
|---|---|---|
200 |
CategoryResponse | OK |
404 |
ProblemDetails | Not Found |
PUT /api/v1/category/{categoryId}
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
categoryId |
path | integer (int64) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
Cuerpo: UpdateCategoryRequest. Content-Type: application/json, application/*+json. Required: yes.
| Status | Response | Description |
|---|---|---|
200 |
CategoryResponse | OK |
400 |
ProblemDetails | Bad Request |
404 |
ProblemDetails | Not Found |
409 |
ProblemDetails | Conflict |
DELETE /api/v1/category/{categoryId}
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
categoryId |
path | integer (int64) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
| Status | Response | Description |
|---|---|---|
204 |
no declared schema | No Content |
404 |
ProblemDetails | Not Found |
409 |
ProblemDetails | Conflict |
GET /api/v1/category/storages
| Status | Response | Description |
|---|---|---|
200 |
array of CategoryResponse | OK |
GET /api/v1/category/{categoryId}/nextcode
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
categoryId |
path | integer (int64) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
| Status | Response | Description |
|---|---|---|
200 |
NextCodeResponse | OK |
400 |
ProblemDetails | Bad Request |
404 |
ProblemDetails | Not Found |
GET /api/v1/category/{categoryId}/children
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
categoryId |
path | integer (int64) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
| Status | Response | Description |
|---|---|---|
200 |
array of CategoryResponse | OK |
404 |
ProblemDetails | Not Found |
GET /api/v1/category/{categoryId}/ancestors
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
categoryId |
path | integer (int64) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
| Status | Response | Description |
|---|---|---|
200 |
array of CategoryResponse | OK |
404 |
ProblemDetails | Not Found |
GET /api/v1/category/{categoryId}/descendants
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
categoryId |
path | integer (int64) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
| Status | Response | Description |
|---|---|---|
200 |
array of CategoryResponse | OK |
404 |
ProblemDetails | Not Found |
Client
GET /api/v1/traffic/client
Gets all clients.
| Status | Response | Description |
|---|---|---|
200 |
array of ClientResponse | Client list. |
POST /api/v1/traffic/client
Creates a new client.
Cuerpo: CreateClientRequest. Content-Type: application/json, application/*+json. Required: yes.
| Status | Response | Description |
|---|---|---|
200 |
ClientResponse | Client created. |
GET /api/v1/traffic/client/{clientId}
Gets a client by ID.
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
clientId |
path | integer (int32) | yes | Client ID. pattern ^-?(?:0|[1-9]\d*)$ |
| Status | Response | Description |
|---|---|---|
200 |
ClientResponse | Client found. |
PUT /api/v1/traffic/client/{clientId}
Updates an existing client.
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
clientId |
path | integer (int32) | yes | ID of the client to update. pattern ^-?(?:0|[1-9]\d*)$ |
Cuerpo: UpdateClientRequest. Content-Type: application/json, application/*+json. Required: yes.
| Status | Response | Description |
|---|---|---|
200 |
ClientResponse | Client updated. |
DELETE /api/v1/traffic/client/{clientId}
Deletes a client by ID.
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
clientId |
path | integer (int32) | yes | ID of the client to delete. pattern ^-?(?:0|[1-9]\d*)$ |
| Status | Response | Description |
|---|---|---|
200 |
no declared schema | Operation result. |
GET /api/v1/traffic/client/statuses
| Status | Response | Description |
|---|---|---|
200 |
no declared schema | OK |
Clip Metadata
GET /api/v1/traffic/clip_metadata
| Status | Response | Description |
|---|---|---|
200 |
array of ClipMetadataResponse | OK |
POST /api/v1/traffic/clip_metadata
Cuerpo: CreateClipMetadataRequest. Content-Type: application/json, text/json, application/*+json. Required: yes.
| Status | Response | Description |
|---|---|---|
200 |
ClipMetadataResponse | OK |
GET /api/v1/traffic/clip_metadata/{clipMetadataId}
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
clipMetadataId |
path | integer (int64) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
| Status | Response | Description |
|---|---|---|
200 |
ClipMetadataResponse | OK |
DELETE /api/v1/traffic/clip_metadata/{clipMetadataId}
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
clipMetadataId |
path | integer (int64) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
| Status | Response | Description |
|---|---|---|
200 |
no declared schema | OK |
Common
GET /api/v1/traffic/common/scopes
Possible scopes (National / Local). Used in Order, BreakTemplateZone, and ClipMetadata.
| Status | Response | Description |
|---|---|---|
200 |
no declared schema | OK |
GET /api/v1/traffic/common/weekdays
Base values for the day-of-week bitmask. Used in OrderDaypart and BreakTemplate.
| Status | Response | Description |
|---|---|---|
200 |
no declared schema | OK |
GET /api/v1/traffic/common/break-types
Available break types (Simple, Rotating, etc.). Used in BreakTemplate.
| Status | Response | Description |
|---|---|---|
200 |
no declared schema | OK |
Company
GET /api/v1/company
| Status | Response | Description |
|---|---|---|
200 |
array of CompanyResponse | OK |
POST /api/v1/company
Cuerpo: CreateCompanyRequest. Content-Type: application/json, application/*+json. Required: yes.
| Status | Response | Description |
|---|---|---|
201 |
CompanyResponse | Created |
400 |
ProblemDetails | Bad Request |
409 |
ProblemDetails | Conflict |
GET /api/v1/company/{companyId}
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
companyId |
path | integer (int64) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
| Status | Response | Description |
|---|---|---|
200 |
CompanyResponse | OK |
404 |
ProblemDetails | Not Found |
PUT /api/v1/company/{companyId}
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
companyId |
path | integer (int64) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
Cuerpo: UpdateCompanyRequest. Content-Type: application/json, application/*+json. Required: yes.
| Status | Response | Description |
|---|---|---|
200 |
CompanyResponse | OK |
400 |
ProblemDetails | Bad Request |
404 |
ProblemDetails | Not Found |
409 |
ProblemDetails | Conflict |
DELETE /api/v1/company/{companyId}
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
companyId |
path | integer (int64) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
| Status | Response | Description |
|---|---|---|
204 |
no declared schema | No Content |
404 |
ProblemDetails | Not Found |
409 |
ProblemDetails | Conflict |
FileType
GET /api/v1/file-type
| Status | Response | Description |
|---|---|---|
200 |
array of FileTypeResponse | OK |
GET /api/v1/file-type/{fileTypeId}
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
fileTypeId |
path | integer (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
| Status | Response | Description |
|---|---|---|
200 |
FileTypeResponse | OK |
404 |
ProblemDetails | Not Found |
Genre
GET /api/v1/genre
| Status | Response | Description |
|---|---|---|
200 |
array of GenreResponse | OK |
POST /api/v1/genre
Cuerpo: CreateGenreRequest. Content-Type: application/json, application/*+json. Required: yes.
| Status | Response | Description |
|---|---|---|
201 |
GenreResponse | Created |
400 |
ProblemDetails | Bad Request |
409 |
ProblemDetails | Conflict |
GET /api/v1/genre/{id}
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
id |
path | integer (int64) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
| Status | Response | Description |
|---|---|---|
200 |
GenreResponse | OK |
404 |
ProblemDetails | Not Found |
PUT /api/v1/genre/{id}
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
id |
path | integer (int64) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
Cuerpo: UpdateGenreRequest. Content-Type: application/json, application/*+json. Required: yes.
| Status | Response | Description |
|---|---|---|
200 |
GenreResponse | OK |
400 |
ProblemDetails | Bad Request |
404 |
ProblemDetails | Not Found |
409 |
ProblemDetails | Conflict |
DELETE /api/v1/genre/{id}
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
id |
path | integer (int64) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
| Status | Response | Description |
|---|---|---|
204 |
no declared schema | No Content |
404 |
ProblemDetails | Not Found |
409 |
ProblemDetails | Conflict |
Industry
GET /api/v1/traffic/industry
Gets all industries.
| Status | Response | Description |
|---|---|---|
200 |
array of IndustryResponse | Industry list. |
POST /api/v1/traffic/industry
Creates new industries.
Cuerpo: array of string. Content-Type: application/json, text/json, application/*+json. Required: yes.
| Status | Response | Description |
|---|---|---|
200 |
array of IndustryResponse | List of created industries. |
GET /api/v1/traffic/industry/{industryId}
Gets a specific industry by ID.
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
industryId |
path | integer (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
| Status | Response | Description |
|---|---|---|
200 |
IndustryResponse | Specific industry. |
PUT /api/v1/traffic/industry/{industryId}
Updates an existing industry.
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
industryId |
path | integer (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
Cuerpo: UpdateIndustryRequest. Content-Type: application/json, text/json, application/*+json. Required: yes.
| Status | Response | Description |
|---|---|---|
200 |
IndustryResponse | Industry updated. |
DELETE /api/v1/traffic/industry/{industryId}
Deletes an existing industry.
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
industryId |
path | integer (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
| Status | Response | Description |
|---|---|---|
200 |
no declared schema | Industry deleted. |
Media
GET /api/v1/material
Gets all media, with optional filters and pagination. Each CATEGORYMATERIAL row (master or link) is returned as a media item. By default, the recycle bin is excluded (isDeleted=false).
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
CategoryId |
query | integer or string (int64) | No | pattern ^-?(?:0|[1-9]\d*)$ |
Title |
query | string | No | |
Code |
query | string | No | |
MediaTypeId |
query | integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
MaterialStateId |
query | integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
HasFiles |
query | boolean | No | |
IsDeleted |
query | boolean | No | |
page |
query | integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$; predeterminado 1 |
pageSize |
query | integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$; predeterminado 50 |
| Status | Response | Description |
|---|---|---|
200 |
PagedResponseOfMaterialResponse | OK |
GET /api/v1/material/search
Searches media by free text across all relevant fields (title, code, comments, rdsText, tags, customFields, artist/author names, album, genre, company).
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
q |
query | string | No | |
page |
query | integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$; predeterminado 1 |
pageSize |
query | integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$; predeterminado 50 |
| Status | Response | Description |
|---|---|---|
200 |
PagedResponseOfMaterialResponse | OK |
GET /api/v1/material/{materialId}
Gets a media item by ID.
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
materialId |
path | integer (int64) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
| Status | Response | Description |
|---|---|---|
200 |
MaterialResponse | OK |
404 |
ProblemDetails | Not Found |
PUT /api/v1/material/{materialId}
Updates the metadata of an existing media item.
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
materialId |
path | integer (int64) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
Cuerpo: UpdateMaterialRequest. Content-Type: application/json, application/*+json. Required: yes.
| Status | Response | Description |
|---|---|---|
200 |
MaterialResponse | OK |
404 |
ProblemDetails | Not Found |
409 |
ProblemDetails | Conflict |
DELETE /api/v1/material/{materialId}
Deletes an entire media item: physical files, MATERIALFILE, FILE, CATEGORYMATERIAL, and finally MATERIAL. Sequential order is used to respect foreign keys.
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
materialId |
path | integer (int64) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
| Status | Response | Description |
|---|---|---|
204 |
no declared schema | No Content |
404 |
ProblemDetails | Not Found |
GET /api/v1/material/{materialId}/stream
Audio/video stream for frontend playback. Supports range requests for seeking.
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
materialId |
path | integer (int64) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
fileId |
query | integer or string (int64) | No | pattern ^-?(?:0|[1-9]\d*)$ |
| Status | Response | Description |
|---|---|---|
200 |
no declared schema | OK |
206 |
no declared schema | Partial Content |
401 |
ProblemDetails | Unauthorized |
404 |
ProblemDetails | Not Found |
416 |
ProblemDetails | Range Not Satisfiable |
POST /api/v1/material/placeholder
Creates a placeholder media item without audio.
Cuerpo: MaterialPlaceholderRequest. Content-Type: application/json, application/*+json. Required: yes.
| Status | Response | Description |
|---|---|---|
201 |
MaterialResponse | Created |
409 |
ProblemDetails | Conflict |
GET /api/v1/material/{materialId}/files
Gets all files associated with a media item.
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
materialId |
path | integer (int64) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
| Status | Response | Description |
|---|---|---|
200 |
array of MaterialFileResponse | OK |
404 |
ProblemDetails | Not Found |
PUT /api/v1/material/{materialId}/category/{categoryId}
Moves a media item to another category. Replaces all existing category links.
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
materialId |
path | integer (int64) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
categoryId |
path | integer (int64) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
| Status | Response | Description |
|---|---|---|
200 |
no declared schema | OK |
404 |
ProblemDetails | Not Found |
DELETE /api/v1/material/{materialId}/files/{fileId}
Deletes a file associated with a media item, including the physical file from storage.
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
materialId |
path | integer (int64) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
fileId |
path | integer (int64) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
| Status | Response | Description |
|---|---|---|
204 |
no declared schema | No Content |
404 |
ProblemDetails | Not Found |
POST /api/v1/material/batch-delete
Deletes multiple media items in a single sequential transaction to avoid deadlocks.
Cuerpo: BatchDeleteRequest. Content-Type: application/json, application/*+json. Required: yes.
| Status | Response | Description |
|---|---|---|
200 |
no declared schema | OK |
400 |
ProblemDetails | Bad Request |
POST /api/v1/material/fill
Attaches an audio or video file to an existing media item.
Cuerpo: multipart/form-data. Required: yes.
| Field | Type | Required | Description |
|---|---|---|---|
materialId |
integer or string (int64) | yes | |
file |
binary file | yes |
| Status | Response | Description |
|---|---|---|
201 |
MaterialFillResponse | Created |
400 |
ProblemDetails | Bad Request |
404 |
ProblemDetails | Not Found |
GET /api/v1/material/{materialId}/artists
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
materialId |
path | integer (int64) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
| Status | Response | Description |
|---|---|---|
200 |
array of MaterialArtistResponse | OK |
404 |
ProblemDetails | Not Found |
POST /api/v1/material/{materialId}/artists
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
materialId |
path | integer (int64) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
Cuerpo: LinkArtistRequest. Content-Type: application/json, application/*+json. Required: yes.
| Status | Response | Description |
|---|---|---|
201 |
MaterialArtistResponse | Created |
400 |
ProblemDetails | Bad Request |
404 |
ProblemDetails | Not Found |
409 |
ProblemDetails | Conflict |
DELETE /api/v1/material/{materialId}/artists/{personId}
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
materialId |
path | integer (int64) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
personId |
path | integer (int64) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
| Status | Response | Description |
|---|---|---|
204 |
no declared schema | No Content |
404 |
ProblemDetails | Not Found |
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
materialId |
path | integer (int64) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
| Status | Response | Description |
|---|---|---|
200 |
array of MaterialAuthorResponse | OK |
404 |
ProblemDetails | Not Found |
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
materialId |
path | integer (int64) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
Cuerpo: LinkAuthorRequest. Content-Type: application/json, application/*+json. Required: yes.
| Status | Response | Description |
|---|---|---|
201 |
MaterialAuthorResponse | Created |
400 |
ProblemDetails | Bad Request |
404 |
ProblemDetails | Not Found |
409 |
ProblemDetails | Conflict |
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
materialId |
path | integer (int64) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
personId |
path | integer (int64) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
| Status | Response | Description |
|---|---|---|
204 |
no declared schema | No Content |
404 |
ProblemDetails | Not Found |
MediaType
GET /api/v1/media-type
| Status | Response | Description |
|---|---|---|
200 |
array of MediaTypeResponse | OK |
GET /api/v1/media-type/{mediaTypeId}
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
mediaTypeId |
path | integer (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
| Status | Response | Description |
|---|---|---|
200 |
MediaTypeResponse | OK |
404 |
ProblemDetails | Not Found |
Order
GET /api/v1/traffic/order
| Status | Response | Description |
|---|---|---|
200 |
array of OrderResponse | OK |
POST /api/v1/traffic/order
Cuerpo: CreateOrderRequest. Content-Type: application/json, text/json, application/*+json. Required: yes.
| Status | Response | Description |
|---|---|---|
200 |
OrderResponse | OK |
GET /api/v1/traffic/order/{orderId}
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
orderId |
path | integer (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
| Status | Response | Description |
|---|---|---|
200 |
OrderResponse | OK |
PUT /api/v1/traffic/order/{orderId}
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
orderId |
path | integer (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
Cuerpo: UpdateOrderRequest. Content-Type: application/json, text/json, application/*+json. Required: yes.
| Status | Response | Description |
|---|---|---|
200 |
OrderResponse | OK |
DELETE /api/v1/traffic/order/{orderId}
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
orderId |
path | integer (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
| Status | Response | Description |
|---|---|---|
200 |
no declared schema | OK |
GET /api/v1/traffic/order/statuses
| Status | Response | Description |
|---|---|---|
200 |
no declared schema | OK |
GET /api/v1/traffic/order/position-types
| Status | Response | Description |
|---|---|---|
200 |
no declared schema | OK |
GET /api/v1/traffic/order/protection-levels
| Status | Response | Description |
|---|---|---|
200 |
no declared schema | OK |
Order Daypart
GET /api/v1/traffic/order_daypart
| Status | Response | Description |
|---|---|---|
200 |
array of OrderDaypartDto | OK |
POST /api/v1/traffic/order_daypart
Cuerpo: CreateOrderDaypartRequest. Content-Type: application/json, text/json, application/*+json. Required: yes.
| Status | Response | Description |
|---|---|---|
200 |
OrderDaypartDto | OK |
GET /api/v1/traffic/order_daypart/{id}
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
id |
path | integer (int64) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
| Status | Response | Description |
|---|---|---|
200 |
OrderDaypartDto | OK |
PUT /api/v1/traffic/order_daypart/{id}
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
id |
path | integer (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
Cuerpo: UpdateOrderDaypartRequest. Content-Type: application/json, text/json, application/*+json. Required: yes.
| Status | Response | Description |
|---|---|---|
200 |
OrderDaypartDto | OK |
DELETE /api/v1/traffic/order_daypart/{id}
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
id |
path | integer (int64) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
| Status | Response | Description |
|---|---|---|
200 |
no declared schema | OK |
Person
GET /api/v1/person
| Status | Response | Description |
|---|---|---|
200 |
array of PersonResponse | OK |
POST /api/v1/person
Cuerpo: CreatePersonRequest. Content-Type: application/json, application/*+json. Required: yes.
| Status | Response | Description |
|---|---|---|
201 |
PersonResponse | Created |
400 |
ProblemDetails | Bad Request |
409 |
ProblemDetails | Conflict |
GET /api/v1/person/{id}
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
id |
path | integer (int64) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
| Status | Response | Description |
|---|---|---|
200 |
PersonResponse | OK |
404 |
ProblemDetails | Not Found |
PUT /api/v1/person/{id}
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
id |
path | integer (int64) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
Cuerpo: UpdatePersonRequest. Content-Type: application/json, application/*+json. Required: yes.
| Status | Response | Description |
|---|---|---|
200 |
PersonResponse | OK |
400 |
ProblemDetails | Bad Request |
404 |
ProblemDetails | Not Found |
409 |
ProblemDetails | Conflict |
DELETE /api/v1/person/{id}
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
id |
path | integer (int64) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
| Status | Response | Description |
|---|---|---|
204 |
no declared schema | No Content |
404 |
ProblemDetails | Not Found |
409 |
ProblemDetails | Conflict |
PGM5
GET /api/v1/traffic/pgm5/all
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
FromDate |
query | string (date) | No | |
ToDate |
query | string (date) | No | |
Status |
query | integer or string (uint8) | No | pattern ^-?(?:0|[1-9]\d*)$ |
StationId |
query | integer or string (int64) | No | pattern ^-?(?:0|[1-9]\d*)$ |
| Status | Response | Description |
|---|---|---|
200 |
array of Pgm5SummaryResponse | OK |
400 |
ProblemDetails | Bad Request |
GET /api/v1/traffic/pgm5/{pgmId}
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
pgmId |
path | integer (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
| Status | Response | Description |
|---|---|---|
200 |
SchedulingResponse | OK |
400 |
ProblemDetails | Bad Request |
404 |
ProblemDetails | Not Found |
DELETE /api/v1/traffic/pgm5/{pgmId}
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
pgmId |
path | integer (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
| Status | Response | Description |
|---|---|---|
204 |
no declared schema | No Content |
400 |
ProblemDetails | Bad Request |
404 |
ProblemDetails | Not Found |
GET /api/v1/traffic/pgm5
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
stationId |
query | integer or string (int64) | No | pattern ^-?(?:0|[1-9]\d*)$ |
date |
query | string (date) | No |
| Status | Response | Description |
|---|---|---|
200 |
SchedulingResponse | OK |
400 |
ProblemDetails | Bad Request |
404 |
ProblemDetails | Not Found |
POST /api/v1/traffic/pgm5
Cuerpo: SavePgm5Request. Content-Type: application/json, text/json, application/*+json. Required: yes.
| Status | Response | Description |
|---|---|---|
200 |
SavePgm5Response | OK |
400 |
ProblemDetails | Bad Request |
GET /api/v1/traffic/pgm5/exists
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
stationId |
query | integer or string (int64) | No | pattern ^-?(?:0|[1-9]\d*)$ |
date |
query | string (date) | No |
| Status | Response | Description |
|---|---|---|
200 |
Pgm5ExistsResponse | OK |
400 |
ProblemDetails | Bad Request |
PATCH /api/v1/traffic/pgm5/{pgmId}/status
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
pgmId |
path | integer (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
Cuerpo: UpdatePgm5StatusRequest. Content-Type: application/json, text/json, application/*+json. Required: yes.
| Status | Response | Description |
|---|---|---|
200 |
Pgm5SummaryResponse | OK |
400 |
ProblemDetails | Bad Request |
404 |
ProblemDetails | Not Found |
PGM
GET /api/v1/pgm
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
StationId |
query | integer or string (int64) | No | pattern ^-?(?:0|[1-9]\d*)$ |
Date |
query | string | No | |
ProgrammingTypeId |
query | integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
Active |
query | boolean | No |
| Status | Response | Description |
|---|---|---|
200 |
no declared schema | OK |
400 |
ProblemDetails | Bad Request |
POST /api/v1/pgm
Cuerpo: CreatePgmRequest. Content-Type: application/json, text/json, application/*+json. Required: yes.
| Status | Response | Description |
|---|---|---|
201 |
PgmResponse | Created |
400 |
ProblemDetails | Bad Request |
GET /api/v1/pgm/types
| Status | Response | Description |
|---|---|---|
200 |
array of ProgrammingTypeResponse | OK |
GET /api/v1/pgm/conditions
| Status | Response | Description |
|---|---|---|
200 |
array of PgmConditionResponse | OK |
GET /api/v1/pgm/{pgmId}
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
pgmId |
path | integer (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
| Status | Response | Description |
|---|---|---|
200 |
PgmResponse | OK |
400 |
ProblemDetails | Bad Request |
404 |
ProblemDetails | Not Found |
PUT /api/v1/pgm/{pgmId}
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
pgmId |
path | integer (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
Cuerpo: UpdatePgmRequest. Content-Type: application/json, text/json, application/*+json. Required: yes.
| Status | Response | Description |
|---|---|---|
200 |
PgmResponse | OK |
400 |
ProblemDetails | Bad Request |
404 |
ProblemDetails | Not Found |
DELETE /api/v1/pgm/{pgmId}
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
pgmId |
path | integer (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
| Status | Response | Description |
|---|---|---|
204 |
no declared schema | No Content |
400 |
ProblemDetails | Bad Request |
404 |
ProblemDetails | Not Found |
PriorityType
GET /api/v1/priority-type
| Status | Response | Description |
|---|---|---|
200 |
array of PriorityTypeResponse | OK |
GET /api/v1/priority-type/{priorityTypeId}
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
priorityTypeId |
path | integer (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
| Status | Response | Description |
|---|---|---|
200 |
PriorityTypeResponse | OK |
404 |
ProblemDetails | Not Found |
Report
GET /api/v1/traffic/reports/programming
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
startDate |
query | string (date) | No | |
endDate |
query | string (date) | No | |
stationId |
query | integer or string (int64) | No | pattern ^-?(?:0|[1-9]\d*)$ |
clientId |
query | integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
orderId |
query | integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
| Status | Response | Description |
|---|---|---|
200 |
array of SchedulingResponse | OK |
400 |
ProblemDetails | Bad Request |
401 |
ProblemDetails | Unauthorized |
GET /api/v1/traffic/reports/orders
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
startDate |
query | string (date) | No | |
endDate |
query | string (date) | No | |
stationId |
query | integer or string (int64) | No | pattern ^-?(?:0|[1-9]\d*)$ |
clientId |
query | integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
orderId |
query | integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
| Status | Response | Description |
|---|---|---|
200 |
array of ReportOrdenesItem | OK |
400 |
ProblemDetails | Bad Request |
401 |
ProblemDetails | Unauthorized |
GET /api/v1/traffic/reports/schedule
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
startDate |
query | string (date) | No | |
endDate |
query | string (date) | No | |
stationId |
query | integer or string (int64) | No | pattern ^-?(?:0|[1-9]\d*)$ |
| Status | Response | Description |
|---|---|---|
200 |
array of ReportScheduleItem | OK |
400 |
ProblemDetails | Bad Request |
401 |
ProblemDetails | Unauthorized |
GET /api/v1/traffic/reports/break-occupancy
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
startDate |
query | string (date) | No | |
endDate |
query | string (date) | No | |
stationId |
query | integer or string (int64) | No | pattern ^-?(?:0|[1-9]\d*)$ |
| Status | Response | Description |
|---|---|---|
200 |
array of ReportBreakOccupancyItem | OK |
400 |
ProblemDetails | Bad Request |
401 |
ProblemDetails | Unauthorized |
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
startDate |
query | string (date) | No | |
endDate |
query | string (date) | No | |
stationId |
query | integer or string (int64) | No | pattern ^-?(?:0|[1-9]\d*)$ |
| Status | Response | Description |
|---|---|---|
200 |
array of ReportIndustryShareItem | OK |
400 |
ProblemDetails | Bad Request |
401 |
ProblemDetails | Unauthorized |
GET /api/v1/traffic/reports/audit
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
from |
query | string (date-time) | No | |
to |
query | string (date-time) | No | |
method |
query | string | No | |
statusCode |
query | integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
userId |
query | integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
limit |
query | integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
| Status | Response | Description |
|---|---|---|
200 |
array of ReportAuditLogItem | OK |
400 |
ProblemDetails | Bad Request |
401 |
ProblemDetails | Unauthorized |
RythmType
GET /api/v1/rythm-type
| Status | Response | Description |
|---|---|---|
200 |
array of RythmTypeResponse | OK |
GET /api/v1/rythm-type/{rythmTypeId}
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
rythmTypeId |
path | integer (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
| Status | Response | Description |
|---|---|---|
200 |
RythmTypeResponse | OK |
404 |
ProblemDetails | Not Found |
Settings
GET /api/v1/traffic/settings
| Status | Response | Description |
|---|---|---|
200 |
SettingsResponse | OK |
404 |
ProblemDetails | Not Found |
PATCH /api/v1/traffic/settings
Cuerpo: UpdateSettingsRequest. Content-Type: application/json, application/*+json. Required: yes.
| Status | Response | Description |
|---|---|---|
200 |
SettingsResponse | OK |
400 |
ProblemDetails | Bad Request |
404 |
ProblemDetails | Not Found |
Station
GET /api/v1/station
Get all stations
| Status | Response | Description |
|---|---|---|
200 |
array with no declared schema | OK |
401 |
ProblemDetails | Unauthorized |
GET /api/v1/station/{stationId}
Get station by ID
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
stationId |
path | integer (int64) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
| Status | Response | Description |
|---|---|---|
200 |
no declared schema | OK |
400 |
ProblemDetails | Bad Request |
401 |
ProblemDetails | Unauthorized |
404 |
ProblemDetails | Not Found |
Template
GET /api/v1/traffic/template
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
includeInactive |
query | boolean | No | predeterminado False |
| Status | Response | Description |
|---|---|---|
200 |
array of TemplateResponse | OK |
POST /api/v1/traffic/template
Cuerpo: CreateTemplateRequest. Content-Type: application/json, text/json, application/*+json. Required: yes.
| Status | Response | Description |
|---|---|---|
201 |
TemplateResponse | Created |
400 |
ProblemDetails | Bad Request |
GET /api/v1/traffic/template/{id}
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
id |
path | integer (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
| Status | Response | Description |
|---|---|---|
200 |
TemplateResponse | OK |
404 |
ProblemDetails | Not Found |
PUT /api/v1/traffic/template/{id}
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
id |
path | integer (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
Cuerpo: UpdateTemplateRequest. Content-Type: application/json, text/json, application/*+json. Required: yes.
| Status | Response | Description |
|---|---|---|
200 |
TemplateResponse | OK |
400 |
ProblemDetails | Bad Request |
404 |
ProblemDetails | Not Found |
DELETE /api/v1/traffic/template/{id}
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
id |
path | integer (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
| Status | Response | Description |
|---|---|---|
204 |
no declared schema | No Content |
404 |
ProblemDetails | Not Found |
DELETE /api/v1/traffic/template/{id}/hard
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
id |
path | integer (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
| Status | Response | Description |
|---|---|---|
204 |
no declared schema | No Content |
404 |
ProblemDetails | Not Found |
User
POST /api/v1/traffic/user/refreshusers
| Status | Response | Description |
|---|---|---|
200 |
no declared schema | OK |
GET /api/v1/traffic/users
Gets all users.
| Status | Response | Description |
|---|---|---|
200 |
no declared schema | OK |
GET /api/v1/traffic/user/{userid}
Gets a user by ID.
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
userid |
path | integer or string (int32) | yes | User ID. pattern ^-?(?:0|[1-9]\d*)$ |
| Status | Response | Description |
|---|---|---|
200 |
no declared schema | OK |
PUT /api/v1/traffic/user/{userid}
Updates a user's roleid (singular endpoint).
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
userid |
path | integer or string (int32) | yes | User ID. pattern ^-?(?:0|[1-9]\d*)$ |
Cuerpo: UpdateUserRoleDto. Content-Type: application/json, text/json, application/*+json. Required: yes.
| Status | Response | Description |
|---|---|---|
200 |
no declared schema | OK |
PUT /api/v1/traffic/users/{userid}
Updates a user's roleid (plural endpoint).
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
userid |
path | integer or string (int32) | yes | User ID. pattern ^-?(?:0|[1-9]\d*)$ |
Cuerpo: UpdateUserRoleDto. Content-Type: application/json, text/json, application/*+json. Required: yes.
| Status | Response | Description |
|---|---|---|
200 |
no declared schema | OK |
6. Data Models
The following names and types are derived directly from the OpenAPI contract. A property not marked as required may be absent; in addition, some legacy models allow null values even when the schema does not always mark them explicitly. Clients should deserialize tolerantly.
Model ActiveStage
Active stage of the scheduler. Controls which logic is enabled.
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
| `` | no declared schema | yes |
Model AgencyResponse
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
agencyId |
integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
name |
string | No | |
type |
integer or string (uint8) | No | pattern ^-?(?:0|[1-9]\d*)$ |
typeName |
null or string | No | |
contact |
null or string | No | |
phone |
null or string | No | |
email |
null or string | No | |
commission |
null or number or string (double) | No | pattern ^-?(?:0|[1-9]\d*)(?:\.\d+)?$ |
notes |
null or string | No | |
status |
integer or string (uint8) | No | pattern ^-?(?:0|[1-9]\d*)$ |
statusName |
null or string | No |
Model AlbumResponse
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
albumId |
integer or string (int64) | No | pattern ^-?(?:0|[1-9]\d*)$ |
albumName |
string | No | |
albumYear |
null or string | No | |
genreId |
null or integer or string (int64) | No | pattern ^-?(?:0|[1-9]\d*)$ |
catalogCode |
null or string | No | |
companyId |
null or integer or string (int64) | No | pattern ^-?(?:0|[1-9]\d*)$ |
comments |
null or string | No | |
imageFileId |
null or integer or string (int64) | No | pattern ^-?(?:0|[1-9]\d*)$ |
Model AssetTypeResponse
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
assetTypeId |
integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
assetTypeName |
null or string | No |
Model BatchDeleteRequest
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
materialIds |
array of integer or string (int64) | No |
Model BreakClipResponse
Clip fijo pre-asignado.
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
position |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
clipId |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
materialId |
integer or string (int64) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
assetTypeId |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
assetTypeName |
string | yes | |
title |
null or string | No | |
durationSeconds |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
playedDate |
null or string (date-time) | No | |
aired |
boolean | No |
Model BreakResponse
Information about a scheduled break.
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
breakId |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
templateId |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
name |
string | yes | |
startTime |
string (time) | yes | |
totalDuration |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
breakType |
string | yes | |
zones |
array of ZoneResponse | yes | |
clips |
array of BreakClipResponse | yes |
Model BreakTemplateClipResponse
Response DTO for a template clip.
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
clipId |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
materialId |
null or integer or string (int64) | No | pattern ^-?(?:0|[1-9]\d*)$ |
randomArtisticCategoryId |
null or integer or string (int64) | No | pattern ^-?(?:0|[1-9]\d*)$ |
assetTypeName |
null or string | No | |
title |
null or string | No | |
durationSeconds |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
position |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
Model BreakTemplateResponse
Response DTO for a break template.
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
breakTemplateId |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
templateId |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
stationId |
integer or string (int64) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
templateName |
string | yes | |
name |
string | yes | |
startTime |
string (time) | yes | |
dayOffset |
boolean | yes | |
totalDuration |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
breakType |
integer or string (uint8) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
breakTypeName |
null or string | yes | |
dayOfWeek |
integer or string (uint8) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
specificDate |
null or string (date) | No | |
isActive |
boolean | yes | |
utcCreated |
string (date-time) | yes | |
utcModified |
string (date-time) | yes | |
zones |
array of BreakTemplateZoneResponse | No | |
clips |
array of BreakTemplateClipResponse | No |
Model BreakTemplateZoneResponse
Response DTO for a template zone.
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
zoneId |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
scope |
Scope | yes | |
scopeName |
null or string | yes | |
maxDuration |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
position |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
Model CampaignResponse
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
campaignId |
integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
clientId |
integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
clientName |
null or string | No | |
agencyId |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
agencyName |
null or string | No | |
name |
string | No | |
startDate |
string (date) | No | |
endDate |
string (date) | No | |
status |
integer or string (uint8) | No | pattern ^-?(?:0|[1-9]\d*)$ |
statusName |
null or string | No | |
notes |
null or string | No |
Model CategoryResponse
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
categoryId |
integer or string (int64) | No | pattern ^-?(?:0|[1-9]\d*)$ |
categoryName |
string | No | |
nodeLevel |
null or string | No | |
description |
null or string | No | |
counter |
null or string | No | |
prefix |
null or string | No | |
isStorage |
null or boolean | No | |
assetTypeId |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
storageName |
null or string | No | |
utcCreatedDate |
null or string | No | |
utcCreatedTime |
null or string | No | |
utcModifiedDate |
null or string | No | |
utcModifiedTime |
null or string | No |
Model ClientResponse
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
clientId |
integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
companyName |
string | No | |
industries |
array of IndustryItem | No | |
contact |
null or string | No | |
phone |
null or string | No | |
email |
null or string | No | |
status |
integer or string (uint8) | No | pattern ^-?(?:0|[1-9]\d*)$ |
statusName |
null or string | No | |
notes |
null or string | No |
Model ClipMetadataResponse
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
clipMetadataId |
integer or string (int64) | No | pattern ^-?(?:0|[1-9]\d*)$ |
materialId |
integer or string (int64) | No | pattern ^-?(?:0|[1-9]\d*)$ |
orderId |
integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
Model ClipRequest
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
materialId |
integer or string (int64) | No | pattern ^-?(?:0|[1-9]\d*)$ |
Model ClipResponse
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
materialId |
integer or string (int64) | No | pattern ^-?(?:0|[1-9]\d*)$ |
code |
null or string | No | |
title |
null or string | No | |
duration |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
categoryId |
null or integer or string (int64) | No | pattern ^-?(?:0|[1-9]\d*)$ |
categoryName |
null or string | No |
Model CompanyResponse
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
companyId |
integer or string (int64) | No | pattern ^-?(?:0|[1-9]\d*)$ |
companyName |
string | No | |
utcCreatedDate |
null or string | No | |
utcCreatedTime |
null or string | No | |
utcModifiedDate |
null or string | No | |
utcModifiedTime |
null or string | No |
Model CreateAgencyRequest
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
name |
string | No | |
type |
integer or string (uint8) | No | pattern ^-?(?:0|[1-9]\d*)$ |
contact |
null or string | No | |
phone |
null or string | No | |
email |
null or string | No | |
commission |
null or number or string (double) | No | pattern ^-?(?:0|[1-9]\d*)(?:\.\d+)?$ |
notes |
null or string | No | |
status |
integer or string (uint8) | No | pattern ^-?(?:0|[1-9]\d*)$ |
Model CreateAlbumRequest
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
albumName |
string | yes | |
albumYear |
null or string | No | |
genreId |
null or integer or string (int64) | No | pattern ^-?(?:0|[1-9]\d*)$ |
catalogCode |
null or string | No | |
companyId |
null or integer or string (int64) | No | pattern ^-?(?:0|[1-9]\d*)$ |
comments |
null or string | No | |
imageFileId |
null or integer or string (int64) | No | pattern ^-?(?:0|[1-9]\d*)$ |
Model CreateBreakTemplateClipRequest
DTO for creating a clip within a template.
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
materialId |
null or integer or string (int64) | No | pattern ^-?(?:0|[1-9]\d*)$ |
randomArtisticCategoryId |
null or integer or string (int64) | No | pattern ^-?(?:0|[1-9]\d*)$ |
position |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
Model CreateBreakTemplateRequest
DTO for creating a new break template. Includes associated zones and clips.
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
templateId |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
name |
string | yes | |
startTime |
string (time) | yes | |
dayOffset |
boolean | yes | |
totalDuration |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
breakType |
integer or string (uint8) | No | pattern ^-?(?:0|[1-9]\d*)$ |
isActive |
boolean | No | |
zones |
array of CreateBreakTemplateZoneRequest | No | |
clips |
array of CreateBreakTemplateClipRequest | No |
Model CreateBreakTemplateZoneRequest
DTO for creating a zone within a template.
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
scope |
Scope | No | |
maxDuration |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
position |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
Model CreateBreakTypeRequest
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
name |
string | yes |
Model CreateCampaignRequest
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
clientId |
integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
agencyId |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
name |
string | No | |
startDate |
string (date) | No | |
endDate |
string (date) | No | |
status |
integer or string (uint8) | No | pattern ^-?(?:0|[1-9]\d*)$ |
notes |
null or string | No |
Model CreateCategoryRequest
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
categoryName |
string | No | |
parentCategoryId |
integer or string (int64) | No | pattern ^-?(?:0|[1-9]\d*)$ |
description |
null or string | No | |
assetTypeId |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
prefix |
null or string | No |
Model CreateClientRequest
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
companyName |
string | No | |
industryIds |
array of integer or string (int32) | No | |
contact |
null or string | No | |
phone |
null or string | No | |
email |
null or string | No | |
status |
integer or string (uint8) | No | pattern ^-?(?:0|[1-9]\d*)$ |
notes |
null or string | No |
Model CreateClipMetadataRequest
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
materialId |
integer or string (int64) | No | pattern ^-?(?:0|[1-9]\d*)$ |
Model CreateCompanyRequest
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
companyName |
string | yes |
Model CreateGenreRequest
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
genreName |
string | yes |
Model CreateOrderDaypartRequest
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
orderId |
integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
stationId |
integer or string (int64) | No | pattern ^-?(?:0|[1-9]\d*)$ |
fixedTime |
boolean | No | |
startTime |
string (time) | No | |
endTime |
string (time) | No | |
startDayOffset |
boolean | No | |
endDayOffset |
boolean | No | |
weekdays |
integer or string (uint8) | No | pattern ^-?(?:0|[1-9]\d*)$ |
orderRuns |
integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
Model CreateOrderRequest
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
campaignId |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
clientId |
integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
duration |
integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
startDate |
string (date) | No | |
endDate |
null or string (date) | No | |
priority |
integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
breakTypeFilter |
integer or string (uint8) | No | pattern ^-?(?:0|[1-9]\d*)$ |
positionType |
integer or string (uint8) | No | pattern ^-?(?:0|[1-9]\d*)$ |
manualPosition |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
scope |
integer or string (uint8) | No | pattern ^-?(?:0|[1-9]\d*)$ |
protectionLevel |
integer or string (uint8) | No | pattern ^-?(?:0|[1-9]\d*)$ |
minSeparation |
integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
maxFrequency |
integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
interleaveArtistic |
boolean | No | |
title |
null or string | No | |
status |
integer or string (uint8) | No | pattern ^-?(?:0|[1-9]\d*)$ |
dayparts |
array of OrderDaypartDto | No | |
clips |
array of ClipRequest | No | |
industryIds |
array of integer or string (int32) | No |
Model CreatePersonRequest
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
personName |
string | yes |
Model CreatePgmRequest
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
stationId |
integer or string (int64) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
date |
string | yes | |
programmingTypeId |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
active |
boolean | No | |
blocks |
array of PgmBlockRequest | yes |
Model CreateTemplateRequest
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
stationId |
integer or string (int64) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
name |
string | yes | |
dayOfWeek |
integer or string (uint8) | No | pattern ^-?(?:0|[1-9]\d*)$ |
startTime |
string (time) | yes | |
endTime |
string (time) | yes | |
endDayOffset |
boolean | yes | |
specificDate |
null or string (date) | No | |
isActive |
boolean | No |
Model FileTypeResponse
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
fileTypeId |
integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
fileTypeName |
null or string | No |
Model GenreResponse
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
genreId |
integer or string (int64) | No | pattern ^-?(?:0|[1-9]\d*)$ |
genreName |
string | No |
Model HdxLoginRequest
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
username |
string | No | |
password |
string | No |
Model IFormFile
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
| `` | no declared schema | yes |
Model IndustryItem
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
industryId |
integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
name |
string | No |
Model IndustryResponse
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
industryId |
integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
name |
string | No |
Model LinkArtistRequest
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
personId |
integer or string (int64) | No | pattern ^-?(?:0|[1-9]\d*)$ |
order |
integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
unique |
boolean | No |
Model LinkAuthorRequest
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
personId |
integer or string (int64) | No | pattern ^-?(?:0|[1-9]\d*)$ |
order |
integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
unique |
boolean | No |
Model LoginResponse
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
success |
boolean | No | |
message |
string | No | |
token |
null or string | No | |
refreshToken |
null or string | No |
Model MaterialArtistResponse
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
personId |
integer or string (int64) | No | pattern ^-?(?:0|[1-9]\d*)$ |
personName |
string | No | |
order |
integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
unique |
boolean | No |
Model MaterialAuthorResponse
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
personId |
integer or string (int64) | No | pattern ^-?(?:0|[1-9]\d*)$ |
personName |
string | No | |
order |
integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
unique |
boolean | No |
Model MaterialFileResponse
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
fileId |
integer or string (int64) | No | pattern ^-?(?:0|[1-9]\d*)$ |
fileName |
string | No | |
fileTypeId |
integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
subFolder |
string | No | |
mimeType |
null or string | No | |
fileSize |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
utcCreatedDate |
string | No | |
utcCreatedTime |
string | No | |
fullPath |
string | No |
Model MaterialFillResponse
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
materialId |
integer or string (int64) | No | pattern ^-?(?:0|[1-9]\d*)$ |
fileId |
integer or string (int64) | No | pattern ^-?(?:0|[1-9]\d*)$ |
Model MaterialPlaceholderRequest
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
rdsText |
null or string | yes | |
code |
string | yes | |
comments |
null or string | yes | |
title |
string | yes | |
categoryId |
integer or string (int64) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
assetTypeId |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
mediaTypeId |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
albumId |
null or integer or string (int64) | No | pattern ^-?(?:0|[1-9]\d*)$ |
companyId |
null or integer or string (int64) | No | pattern ^-?(?:0|[1-9]\d*)$ |
genreId |
null or integer or string (int64) | No | pattern ^-?(?:0|[1-9]\d*)$ |
rythmId |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
artistIds |
array of integer or string (int64) | No | |
authorIds |
array of integer or string (int64) | No |
Model MaterialResponse
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
materialId |
integer or string (int64) | No | pattern ^-?(?:0|[1-9]\d*)$ |
title |
null or string | No | |
code |
null or string | No | |
rdsText |
null or string | No | |
comments |
null or string | No | |
priorityId |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
assetTypeId |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
mediaTypeId |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
materialStateId |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
startPos |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
endPos |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
intro |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
outro |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
punchIn |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
punchOut |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
punchInFadeLength |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
punchOutFadeLength |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
punchInFadeTypeId |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
punchOutFadeTypeId |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
insertOver |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
length |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
contractStartDate |
null or string | No | |
contractEndDate |
null or string | No | |
utcCreatedDate |
null or string | No | |
utcCreatedTime |
null or string | No | |
utcModifiedDate |
null or string | No | |
utcModifiedTime |
null or string | No | |
contentTypeId |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
contentDate |
null or string | No | |
contentTime |
null or string | No | |
oldMaterialId |
null or integer or string (int64) | No | pattern ^-?(?:0|[1-9]\d*)$ |
vStandard |
null or string | No | |
archiveStateId |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
customField0 |
null or string | No | |
customField1 |
null or string | No | |
customField2 |
null or string | No | |
customField3 |
null or string | No | |
customField4 |
null or string | No | |
customField5 |
null or string | No | |
customField6 |
null or string | No | |
customField7 |
null or string | No | |
customField8 |
null or string | No | |
customField9 |
null or string | No | |
national |
boolean | No | |
independent |
boolean | No | |
skipSadaic |
boolean | No | |
useTypeId |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
recordingTypeId |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
personType |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
languageId |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
bpm |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
tags |
null or string | No | |
rythmId |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
utcDcsCuratedDate |
null or string | No | |
utcDcsCuratedTime |
null or string | No | |
acousticId |
null or string | No | |
companyId |
null or integer or string (int64) | No | pattern ^-?(?:0|[1-9]\d*)$ |
albumId |
null or integer or string (int64) | No | pattern ^-?(?:0|[1-9]\d*)$ |
genreId |
null or integer or string (int64) | No | pattern ^-?(?:0|[1-9]\d*)$ |
categoryId |
null or integer or string (int64) | No | pattern ^-?(?:0|[1-9]\d*)$ |
categoryName |
null or string | No | |
isDeleted |
null or boolean | No | |
master |
null or boolean | No |
Model MediaTypeResponse
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
mediaTypeId |
integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
mediaTypeName |
null or string | No |
Model NextCodeResponse
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
code |
string | No |
Model OrderDaypartDto
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
daypartId |
integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
orderId |
integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
stationId |
integer or string (int64) | No | pattern ^-?(?:0|[1-9]\d*)$ |
fixedTime |
boolean | No | |
startTime |
string (time) | No | |
endTime |
string (time) | No | |
startDayOffset |
boolean | No | |
endDayOffset |
boolean | No | |
weekdays |
integer or string (uint8) | No | pattern ^-?(?:0|[1-9]\d*)$ |
orderRuns |
integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
Model OrderResponse
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
orderId |
integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
campaignId |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
campaignName |
null or string | No | |
clientId |
integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
clientName |
null or string | No | |
duration |
integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
startDate |
string (date) | No | |
endDate |
null or string (date) | No | |
priority |
integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
breakTypeFilter |
integer or string (uint8) | No | pattern ^-?(?:0|[1-9]\d*)$ |
breakTypeFilterName |
null or string | No | |
positionType |
integer or string (uint8) | No | pattern ^-?(?:0|[1-9]\d*)$ |
positionTypeName |
null or string | No | |
manualPosition |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
scopeId |
integer or string (uint8) | No | pattern ^-?(?:0|[1-9]\d*)$ |
scopeName |
null or string | No | |
protectionLevel |
integer or string (uint8) | No | pattern ^-?(?:0|[1-9]\d*)$ |
protectionLevelName |
null or string | No | |
interleaveArtistic |
boolean | No | |
title |
null or string | No | |
status |
integer or string (uint8) | No | pattern ^-?(?:0|[1-9]\d*)$ |
statusName |
null or string | No | |
dayparts |
array of OrderDaypartDto | No | |
clips |
array of ClipResponse | No | |
industries |
array of IndustryResponse | No |
Model PagedResponseOfMaterialResponse
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
data |
array of MaterialResponse | No | |
total |
integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
Model PersonResponse
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
personId |
integer or string (int64) | No | pattern ^-?(?:0|[1-9]\d*)$ |
personName |
string | No |
Model Pgm5ExistsResponse
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
exists |
boolean | No | |
pgmId |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
status |
null or integer or string (uint8) | No | pattern ^-?(?:0|[1-9]\d*)$ |
statusName |
null or string | No |
Model Pgm5SummaryResponse
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
pgmId |
integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
stationId |
integer or string (int64) | No | pattern ^-?(?:0|[1-9]\d*)$ |
pgmDate |
string (date) | No | |
templateId |
integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
status |
integer or string (uint8) | No | pattern ^-?(?:0|[1-9]\d*)$ |
statusName |
null or string | No | |
reviewReasons |
array of string | No | |
unplaced |
integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
forced |
integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
conflict |
integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
Model PgmBlockRequest
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
description |
null or string | No | |
blockTime |
string | yes | |
events |
array of PgmEventRequest | yes |
Model PgmBlockResponse
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
description |
null or string | No | |
blockTime |
string | No | |
events |
array of PgmEventResponse | No |
Model PgmConditionResponse
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
condition |
integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
name |
string | No | |
description |
string | No |
Model PgmEventRequest
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
materialId |
integer or string (int64) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
condition |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
trafficCode |
null or string | No | |
trafficIndex |
null or string | No |
Model PgmEventResponse
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
materialId |
integer or string (int64) | No | pattern ^-?(?:0|[1-9]\d*)$ |
condition |
integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
trafficCode |
null or string | No | |
trafficIndex |
null or string | No |
Model PgmResponse
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
id |
integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
stationId |
integer or string (int64) | No | pattern ^-?(?:0|[1-9]\d*)$ |
date |
string | No | |
programmingTypeId |
integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
programmingTypeName |
null or string | No | |
active |
boolean | No | |
utcModifiedDate |
string | No | |
utcModifiedTime |
string | No | |
blocks |
array of PgmBlockResponse | No |
Model PriorityTypeResponse
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
priorityTypeId |
integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
priorityTypeName |
null or string | No |
Model ProblemDetails
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
type |
null or string | No | |
title |
null or string | No | |
status |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
detail |
null or string | No | |
instance |
null or string | No |
Model ProgrammingTypeResponse
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
id |
integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
name |
null or string | No |
Model RefreshTokenRequest
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
refreshToken |
string | No |
Model ReportAuditLogItem
Audit row for user actions.
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
id |
integer or string (int64) | No | pattern ^-?(?:0|[1-9]\d*)$ |
createdAt |
string (date-time) | No | |
userId |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
username |
null or string | No | |
method |
string | No | |
path |
string | No | |
action |
string | No | |
detail |
null or string | No | |
statusCode |
integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
elapsedMs |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
error |
null or string | No |
Model ReportBreakOccupancyItem
Average break occupancy by hour within the range.
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
hour |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
ocupacionPct |
number or string (double) | yes | pattern ^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?$ |
zonaUsadaSeg |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
zonaMaxSeg |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
zonas |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
Model ReportIndustryShareItem
Share by industry within the range.
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
rubro |
string | yes | |
segundos |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
spots |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
porcentaje |
number or string (double) | yes | pattern ^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?$ |
Model ReportOrdenesItem
Projected airings by order over a date range.
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
orderId |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
orderTitle |
null or string | No | |
clientId |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
clientName |
null or string | No | |
campaignId |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
campaignName |
null or string | No | |
duration |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
vecesQueSaldra |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
programadosReal |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
Model ReportScheduleItem
As-run log: one row per media playout (spot or clip) within the range.
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
playedDate |
null or string (date) | No | Actual air date (null if not aired yet). |
playedTime |
null or string (time) | No | Actual air time (null if not aired yet). |
orderTitle |
null or string | No | Advertising order title. |
clientName |
null or string | No | |
campaignName |
null or string | No | |
industry |
null or string | No | Advertiser industry. |
hdxMaterialName |
null or string | No | HDX material name. |
duration |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
aired |
boolean | No |
Model RythmTypeResponse
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
rythmTypeId |
integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
rythmTypeName |
null or string | No |
Model SaveBreakClipRequest
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
position |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
clipId |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
materialId |
integer or string (int64) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
assetTypeId |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
assetTypeName |
null or string | No | |
title |
null or string | No | |
durationSeconds |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
Model SaveBreakRequest
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
breakId |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
templateId |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
name |
string | yes | |
startTime |
string (time) | yes | |
totalDuration |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
breakType |
string | yes | |
zones |
array of SaveZoneRequest | yes | |
clips |
array of SaveBreakClipRequest | yes |
Model SavePgm5Request
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
pgmId |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
scheduleDate |
string (date) | yes | |
stationId |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
status |
null or integer or string (uint8) | No | pattern ^-?(?:0|[1-9]\d*)$ |
statusName |
null or string | No | |
reviewReasons |
array of string | No | |
breaks |
array of SaveBreakRequest | yes | |
summary |
SchedulingSummary | yes | |
unplaced |
array of SaveUnplacedRequest | yes | |
metrics |
SchedulingMetricsResponse | yes | |
statusId |
integer or string (uint8) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
reviewReason |
null or string | No |
Model SavePgm5Response
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
pgmId |
integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
stationId |
integer or string (int64) | No | pattern ^-?(?:0|[1-9]\d*)$ |
pgmDate |
string (date) | No | |
templateId |
integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
status |
integer or string (uint8) | No | pattern ^-?(?:0|[1-9]\d*)$ |
statusName |
null or string | No | |
breakCount |
integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
zoneCount |
integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
clipCount |
integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
spotCount |
integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
unplacedCount |
integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
overwritten |
boolean | No |
Model SaveSpotRequest
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
position |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
orderId |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
orderTitle |
null or string | No | |
campaignId |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
campaignName |
null or string | No | |
clientId |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
clientName |
null or string | No | |
industry |
null or string | No | |
materialId |
integer or string (int64) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
durationSeconds |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
assetTypeId |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
assetTypeName |
null or string | No | |
positionType |
null or string | No | |
lockState |
string | yes | |
conflictReason |
null or string | No |
Model SaveUnplacedRequest
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
instanceId |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
orderId |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
orderTitle |
null or string | No | |
campaignId |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
campaignName |
null or string | No | |
clientId |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
clientName |
null or string | No | |
industry |
null or string | No | |
materialId |
integer or string (int64) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
durationSeconds |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
assetTypeId |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
assetTypeName |
null or string | No | |
positionType |
null or string | No | |
probableCause |
string | yes |
Model SaveZoneRequest
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
zoneId |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
scopeId |
integer or string (uint8) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
scopeName |
string | yes | |
position |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
maxDuration |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
usedDuration |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
spots |
array of SaveSpotRequest | yes |
Model ScheduleRequest
Request to execute the scheduling algorithm.
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
stationId |
integer or string (int32) | yes | Station ID to schedule. pattern ^-?(?:0|[1-9]\d*)$ |
scheduleDate |
string (date) | yes | Date to schedule (commercial day). |
activeStage |
ActiveStage | No | Active algorithm stage (Stage1, Stage2, or Stage3). Default: Stage1. |
scoreWeights |
null or ScoreWeights | No | Custom scoring weights (optional). If null, uses default weights. |
ignoreSoftConstraints |
boolean | No | If true, ignores soft constraints (separation, frequency, competitive protection). Spots that violate soft constraints will be assigned with state CONFLICT. Default: false (respects all constraints). |
ignoreHardConstraints |
boolean | No | If true, ignores all constraints except physical duration. Spots will be assigned with state FORCED even if they violate hard constraints. Implies IgnoreSoftConstraints = true. Default: false (respects hard constraints). |
savePgm |
boolean | No | If true, persists the generated PGM5 in HDX. If false, only returns the generated result. |
Model SchedulingMetricsResponse
Result metrics.
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
totalConflicts |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
totalForced |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
totalUnplaced |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
overallFulfillmentPercentage |
number or string (double) | yes | pattern ^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?$ |
Model SchedulingResponse
Hierarchical response from the scheduling algorithm. Structure: Breaks → Zones → Spots
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
pgmId |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
scheduleDate |
string (date) | yes | |
stationId |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
status |
null or integer or string (uint8) | No | pattern ^-?(?:0|[1-9]\d*)$ |
statusName |
null or string | No | |
reviewReasons |
array of string | No | |
breaks |
array of BreakResponse | yes | |
summary |
SchedulingSummary | yes | |
unplaced |
array of UnplacedResponse | yes | |
metrics |
SchedulingMetricsResponse | yes |
Model SchedulingStats
Statistics about scheduling availability for a date.
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
stationId |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
scheduleDate |
string (date) | yes | |
breakCount |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
totalBreakDurationSeconds |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
campaignCount |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
orderCount |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
totalDesiredRuns |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
Model SchedulingSummary
Overall result summary.
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
totalBreaks |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
totalSpots |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
totalCommands |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
totalDuration |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
usedDuration |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
Model Scope
Scope of a spot or zone: National or Local.
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
| `` | no declared schema | yes |
Model ScoreWeights
Weights used to calculate candidate scores in the algorithm scoring.
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
w1_Priority |
number or string (double) | No | pattern ^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?$ |
w2_Separation |
number or string (double) | No | pattern ^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?$ |
w3_Distribution |
number or string (double) | No | pattern ^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?$ |
w4_Variety |
number or string (double) | No | pattern ^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?$ |
w5_Frequency |
number or string (double) | No | pattern ^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?$ |
w6_Occupation |
number or string (double) | No | pattern ^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?$ |
Model SettingsResponse
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
settingId |
integer or string (uint8) | No | pattern ^-?(?:0|[1-9]\d*)$ |
autoApprovePgm |
boolean | No | |
forceFullPlacement |
boolean | No | |
enableAdvancedLog |
boolean | No | |
materialCodeByCategory |
boolean | No | |
defaultArtisticCategoryId |
null or integer or string (int64) | No | pattern ^-?(?:0|[1-9]\d*)$ |
utcModified |
string (date-time) | No |
Model SpotResponse
Assigned spot (commercial/imaging).
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
position |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
orderId |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
orderTitle |
null or string | No | |
campaignId |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
campaignName |
null or string | No | |
clientId |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
clientName |
null or string | No | |
industry |
null or string | No | |
materialId |
integer or string (int64) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
durationSeconds |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
assetTypeId |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
assetTypeName |
string | yes | |
positionType |
null or string | No | |
lockState |
string | yes | |
conflictReason |
null or string | No | |
playedDate |
null or string (date-time) | No | |
aired |
boolean | No |
Model TemplateBreakTemplateSummaryResponse
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
breakTemplateId |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
name |
string | yes | |
startTime |
string (time) | yes | |
dayOffset |
boolean | yes | |
totalDuration |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
breakType |
integer or string (uint8) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
breakTypeName |
null or string | No | |
isActive |
boolean | yes |
Model TemplateResponse
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
templateId |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
stationId |
integer or string (int64) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
name |
string | yes | |
dayOfWeek |
integer or string (uint8) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
startTime |
string (time) | yes | |
endTime |
string (time) | yes | |
endDayOffset |
boolean | yes | |
specificDate |
null or string (date) | No | |
isActive |
boolean | yes | |
utcCreated |
string (date-time) | yes | |
utcModified |
string (date-time) | yes | |
breakTemplates |
array of TemplateBreakTemplateSummaryResponse | No |
Model UnplacedResponse
Spot that could not be assigned.
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
instanceId |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
orderId |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
orderTitle |
null or string | No | |
campaignId |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
campaignName |
null or string | No | |
clientId |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
clientName |
null or string | No | |
industry |
null or string | No | |
materialId |
integer or string (int64) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
durationSeconds |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
assetTypeId |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
assetTypeName |
string | yes | |
positionType |
null or string | No | |
probableCause |
string | yes |
Model UpdateAgencyRequest
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
name |
string | No | |
type |
integer or string (uint8) | No | pattern ^-?(?:0|[1-9]\d*)$ |
contact |
null or string | No | |
phone |
null or string | No | |
email |
null or string | No | |
commission |
null or number or string (double) | No | pattern ^-?(?:0|[1-9]\d*)(?:\.\d+)?$ |
notes |
null or string | No | |
status |
integer or string (uint8) | No | pattern ^-?(?:0|[1-9]\d*)$ |
Model UpdateAlbumRequest
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
albumName |
string | yes | |
albumYear |
null or string | No | |
genreId |
null or integer or string (int64) | No | pattern ^-?(?:0|[1-9]\d*)$ |
catalogCode |
null or string | No | |
companyId |
null or integer or string (int64) | No | pattern ^-?(?:0|[1-9]\d*)$ |
comments |
null or string | No | |
imageFileId |
null or integer or string (int64) | No | pattern ^-?(?:0|[1-9]\d*)$ |
Model UpdateBreakTemplateRequest
DTO for updating an existing template.
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
templateId |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
name |
string | yes | |
startTime |
string (time) | yes | |
dayOffset |
boolean | yes | |
totalDuration |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
breakType |
integer or string (uint8) | No | pattern ^-?(?:0|[1-9]\d*)$ |
isActive |
boolean | No | |
zones |
array of CreateBreakTemplateZoneRequest | No | |
clips |
array of CreateBreakTemplateClipRequest | No |
Model UpdateBreakTypeRequest
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
name |
string | yes |
Model UpdateCampaignRequest
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
clientId |
integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
agencyId |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
name |
string | No | |
startDate |
string (date) | No | |
endDate |
string (date) | No | |
status |
integer or string (uint8) | No | pattern ^-?(?:0|[1-9]\d*)$ |
notes |
null or string | No |
Model UpdateCategoryRequest
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
categoryName |
string | No | |
description |
null or string | No | |
prefix |
null or string | No | |
assetTypeId |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
Model UpdateClientRequest
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
companyName |
string | No | |
industryIds |
array of integer or string (int32) | No | |
contact |
null or string | No | |
phone |
null or string | No | |
email |
null or string | No | |
status |
integer or string (uint8) | No | pattern ^-?(?:0|[1-9]\d*)$ |
notes |
null or string | No |
Model UpdateCompanyRequest
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
companyName |
string | yes |
Model UpdateGenreRequest
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
genreName |
string | yes |
Model UpdateIndustryRequest
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
name |
string | No |
Model UpdateMaterialRequest
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
title |
null or string | No | |
code |
null or string | No | |
comments |
null or string | No | |
rdsText |
null or string | No | |
assetTypeId |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
mediaTypeId |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
albumId |
null or integer or string (int64) | No | pattern ^-?(?:0|[1-9]\d*)$ |
companyId |
null or integer or string (int64) | No | pattern ^-?(?:0|[1-9]\d*)$ |
genreId |
null or integer or string (int64) | No | pattern ^-?(?:0|[1-9]\d*)$ |
priorityId |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
materialStateId |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
startPos |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
endPos |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
intro |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
outro |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
punchIn |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
punchOut |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
punchInFadeLength |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
punchOutFadeLength |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
punchInFadeTypeId |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
punchOutFadeTypeId |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
insertOver |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
contractStartDate |
null or string | No | |
contractEndDate |
null or string | No | |
contentTypeId |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
contentDate |
null or string | No | |
contentTime |
null or string | No | |
vStandard |
null or string | No | |
archiveStateId |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
customField0 |
null or string | No | |
customField1 |
null or string | No | |
customField2 |
null or string | No | |
customField3 |
null or string | No | |
customField4 |
null or string | No | |
customField5 |
null or string | No | |
customField6 |
null or string | No | |
customField7 |
null or string | No | |
customField8 |
null or string | No | |
customField9 |
null or string | No | |
national |
null or boolean | No | |
independent |
null or boolean | No | |
skipSadaic |
null or boolean | No | |
useTypeId |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
recordingTypeId |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
personType |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
languageId |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
bpm |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
tags |
null or string | No | |
rythmId |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
Model UpdateOrderDaypartRequest
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
stationId |
integer or string (int64) | No | pattern ^-?(?:0|[1-9]\d*)$ |
fixedTime |
boolean | No | |
startTime |
string (time) | No | |
endTime |
string (time) | No | |
startDayOffset |
boolean | No | |
endDayOffset |
boolean | No | |
weekdays |
integer or string (uint8) | No | pattern ^-?(?:0|[1-9]\d*)$ |
orderRuns |
integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
Model UpdateOrderRequest
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
campaignId |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
clientId |
integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
duration |
integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
startDate |
string (date) | No | |
endDate |
null or string (date) | No | |
priority |
integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
breakTypeFilter |
integer or string (uint8) | No | pattern ^-?(?:0|[1-9]\d*)$ |
positionType |
integer or string (uint8) | No | pattern ^-?(?:0|[1-9]\d*)$ |
manualPosition |
null or integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
scope |
integer or string (uint8) | No | pattern ^-?(?:0|[1-9]\d*)$ |
protectionLevel |
integer or string (uint8) | No | pattern ^-?(?:0|[1-9]\d*)$ |
minSeparation |
integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
maxFrequency |
integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
interleaveArtistic |
boolean | No | |
title |
null or string | No | |
status |
integer or string (uint8) | No | pattern ^-?(?:0|[1-9]\d*)$ |
dayparts |
array of OrderDaypartDto | No | |
clips |
array of ClipRequest | No | |
industryIds |
array of integer or string (int32) | No |
Model UpdatePersonRequest
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
personName |
string | yes |
Model UpdatePgm5StatusRequest
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
statusId |
integer or string (uint8) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
reviewReason |
null or string | No |
Model UpdatePgmRequest
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
stationId |
integer or string (int64) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
date |
string | yes | |
programmingTypeId |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
active |
boolean | No | |
blocks |
array of PgmBlockRequest | yes |
Model UpdateSettingsRequest
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
autoApprovePgm |
null or boolean | No | |
forceFullPlacement |
null or boolean | No | |
enableAdvancedLog |
null or boolean | No | |
materialCodeByCategory |
null or boolean | No | |
defaultArtisticCategoryId |
null or integer or string (int64) | No | pattern ^-?(?:0|[1-9]\d*)$ |
Model UpdateTemplateRequest
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
stationId |
integer or string (int64) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
name |
string | yes | |
dayOfWeek |
integer or string (uint8) | No | pattern ^-?(?:0|[1-9]\d*)$ |
startTime |
string (time) | yes | |
endTime |
string (time) | yes | |
endDayOffset |
boolean | yes | |
specificDate |
null or string (date) | No | |
isActive |
boolean | No |
Model UpdateUserRoleDto
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
roleid |
integer or string (int32) | No | pattern ^-?(?:0|[1-9]\d*)$ |
Model ZoneResponse
Zone within a break.
| Property | Type | Required | Description and Constraints |
|---|---|---|---|
zoneId |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
scopeId |
integer or string (uint8) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
scopeName |
string | yes | |
position |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
maxDuration |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
usedDuration |
integer or string (int32) | yes | pattern ^-?(?:0|[1-9]\d*)$ |
spots |
array of SpotResponse | yes |
7. Flujos recomendados
On-Air Assistance Application
- Authenticate and keep the token out of logs.
- Use HARDATA ECP to obtain playlists,
playlistItemId,materialId, timers, and current/next changes. - Query
GET /api/v1/material/{materialId}for metadata and audio markers. - Query artists and authors through the endpoints associated with the media item when needed.
- Cache responses by
materialId, with reasonable invalidation; do not query on every timer event. - Make transport decisions exclusively from the authoritative HARDATA ECP state.
Traffic Management
- Create or query agencies, clients, campaigns, and orders.
- Configure dayparts, clips, industries, priorities, and constraints.
- Configure templates and break templates by station.
- Query algorithm statistics.
- Run scheduling and review conflicts, unplaced items, and metrics.
8. Security and Privacy
- Do not include users, passwords, JWTs, keys, or private URLs in source code, repositories, telemetry, or screenshots.
- Store secrets in the operating system's secure store or in a secrets manager.
- Avoid logging bodies that may contain personal data, contacts, emails, or tokens.
- Apply least privilege and separate read-only accounts from accounts with modification or deletion capabilities.
- Explicitly confirm destructive operations, especially hard delete, batch delete, and deletion of physical files.
- Do not expose the WebSocket broadcast endpoint to users without administrative authorization.
9. Implementation Checklist
- Configurable base URL and HTTPS in production.
- Login and token kept out of logs.
- Bearer sent only to the expected host.
- Timeouts, cancellation, and backoff implemented.
200,201,204,206,400,401,404,409,416and500manejados.- Pagination applied to media listings.
- Streaming implementa Range requests.
- Unknown mutations are not automatically retried.
- Physical deletions require confirmation.
- Models tolerate additional and null fields.
- HARDATA ECP is used as the authority for on-air state.