Brix · Schema
MediaAsset
A media library item: an uploaded file, a web link, or an app-style asset.
Digital SignageSoftware-as-a-ServiceRestaurantEducationCorporatehardware integration
Properties
| Name | Type | Description |
|---|---|---|
| id | string | Media asset id. |
| spaceId | string | Workspace id. |
| name | string | |
| kind | string | Media kind: image, video, audio, pdf, powerpoint, web, dashboard, weather, rss, clock, qr, menu, directory, donor-wall, hall-of-fame, birthday-board, recognition, wayfinding, check-in, emergency, touc |
| url | string | Where the bytes live: a `/v1/media/ |
| bytes | integer | Stored size in bytes (0 for links and apps). |
| checksum | object | |
| active | boolean | False when archived. |
| folderId | object | |
| tags | object | Tags — a JSON array of strings for every row written by the API (decoded from storage; left as the raw text if the stored value is not valid JSON). |
| altText | object | |
| thumbnailUrl | object | |
| width | object | |
| height | object | |
| durationSec | object | Video/audio length in seconds. |
| pdfPageCount | object | |
| loopDurationMs | object | Animated image loop length. |
| fontFamily | object | |
| fontWeights | object | Font assets: the weights in the file (decoded JSON). |
| state | string | Processing state: `ready`, `processing`, `ready_with_warnings`, `blocked`, … |
| stateReason | object | |
| stateCode | object | |
| stateFault | object | |
| stateProgress | object | |
| codec | object | |
| playableRev | integer | Bumped whenever the playable bytes change. |
| loopState | object | |
| loopCodecs | object | |
| loopRev | object | |
| loopRotation | object | |
| loopBytes | object | |
| seqState | object | Playlist-sequencer rendition state (video only; minted when the video plays in a run of consecutive videos). |
| seqCodecs | object | |
| seqRev | object | |
| seqRotation | object | |
| seqBytes | object | |
| seqConform | object | |
| masterKey | object | |
| masterBytes | object | |
| masterProbe | object | |
| rendition4k | object | |
| frameLumaMean | object | |
| frameLumaVariance | object | |
| frameEdgeDensity | object | |
| startsAt | object | Plays only from this time. |
| expiresAt | object | Stops playing after this time. |
| autoArchiveOnExpiry | boolean | |
| qr | object | QR overlay settings (decoded JSON). |
| webConfig | object | Web link settings — refresh, zoom, header auth, … (decoded JSON). |
| replayState | object | |
| lastReplayAt | object | |
| lastReplaySuccessAt | object | |
| lastFailedStep | object | |
| lastFailedReason | object | |
| autoCaption | boolean | |
| captionTrackKey | object | |
| captionState | object | |
| showCaptions | boolean | |
| audioEnabled | boolean | |
| focalRegion | object | Smart-fit focal region, as stored JSON text. |
| fit | string | How the asset fills a box. |
| autoSmartFit | boolean | |
| rotation | integer | Clockwise rotation in degrees. |
| originalFormat | object | |
| packageEntry | object | |
| packageFiles | object | |
| packageBytes | object | |
| importSourceId | object | |
| nodeId | object | Home location; null = workspace library root. |
| recalledAt | object | |
| recalledBy | object | |
| createdAt | string | ISO-8601 timestamp (UTC). |
| updatedAt | string | ISO-8601 timestamp (UTC). |
| deletedAt | object | |
| usageCount | integer | Playlists, schedules, layouts, creatives, boards and screens that use this asset. |
| uploadedByName | object | Who uploaded it, from the audit log. |
| uploadSource | object | How it was uploaded. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/brixsignage-com/json-schema/brixsignage-com-media-asset-schema.json",
"title": "MediaAsset",
"description": "A media library item: an uploaded file, a web link, or an app-style asset.",
"x-generated": "2026-11-03",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/brixsignage-com-openapi.json#/components/schemas/MediaAsset",
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Media asset id."
},
"spaceId": {
"type": "string",
"description": "Workspace id."
},
"name": {
"type": "string"
},
"kind": {
"type": "string",
"description": "Media kind: image, video, audio, pdf, powerpoint, web, dashboard, weather, rss, clock, qr, menu, directory, donor-wall, hall-of-fame, birthday-board, recognition, wayfinding, check-in, emergency, touch-kiosk, package, font. Free text in storage, so a very old row may carry another value."
},
"url": {
"type": "string",
"description": "Where the bytes live: a `/v1/media/<id>/file` path, an `https` URL, `r2://…`, or (for a web link) the page address."
},
"bytes": {
"type": "integer",
"description": "Stored size in bytes (0 for links and apps)."
},
"checksum": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"active": {
"type": "boolean",
"description": "False when archived."
},
"folderId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"tags": {
"description": "Tags — a JSON array of strings for every row written by the API (decoded from storage; left as the raw text if the stored value is not valid JSON)."
},
"altText": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"thumbnailUrl": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"width": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"height": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"durationSec": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Video/audio length in seconds."
},
"pdfPageCount": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"loopDurationMs": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"description": "Animated image loop length."
},
"fontFamily": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"fontWeights": {
"anyOf": [
{},
{
"type": "null"
}
],
"description": "Font assets: the weights in the file (decoded JSON)."
},
"state": {
"type": "string",
"description": "Processing state: `ready`, `processing`, `ready_with_warnings`, `blocked`, …"
},
"stateReason": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"stateCode": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"stateFault": {
"anyOf": [
{
"type": "string",
"enum": [
"user",
"platform"
]
},
{
"type": "null"
}
]
},
"stateProgress": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"codec": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"playableRev": {
"type": "integer",
"description": "Bumped whenever the playable bytes change."
},
"loopState": {
"anyOf": [
{
"type": "string",
"enum": [
"queued",
"ready",
"failed"
]
},
{
"type": "null"
}
]
},
"loopCodecs": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"loopRev": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"loopRotation": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"loopBytes": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"seqState": {
"anyOf": [
{
"type": "string",
"enum": [
"queued",
"ready",
"failed"
]
},
{
"type": "null"
}
],
"description": "Playlist-sequencer rendition state (video only; minted when the video plays in a run of consecutive videos)."
},
"seqCodecs": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"seqRev": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"seqRotation": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"seqBytes": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"seqConform": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"masterKey": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"masterBytes": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"masterProbe": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"rendition4k": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"frameLumaMean": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"frameLumaVariance": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"frameEdgeDensity": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"startsAt": {
"anyOf": [
{
"type": "string",
"description": "ISO-8601 timestamp (UTC)."
},
{
"type": "null"
}
],
"description": "Plays only from this time."
},
"expiresAt": {
"anyOf": [
{
"type": "string",
"description": "ISO-8601 timestamp (UTC)."
},
{
"type": "null"
}
],
"description": "Stops playing after this time."
},
"autoArchiveOnExpiry": {
"type": "boolean"
},
"qr": {
"anyOf": [
{},
{
"type": "null"
}
],
"description": "QR overlay settings (decoded JSON)."
},
"webConfig": {
"anyOf": [
{},
{
"type": "null"
}
],
"description": "Web link settings — refresh, zoom, header auth, … (decoded JSON)."
},
"replayState": {
"anyOf": [
{
"type": "string",
"enum": [
"healthy",
"replay_pending",
"replay_failed"
]
},
{
"type": "null"
}
]
},
"lastReplayAt": {
"anyOf": [
{
"type": "string",
"description": "ISO-8601 timestamp (UTC)."
},
{
"type": "null"
}
]
},
"lastReplaySuccessAt": {
"anyOf": [
{
"type": "string",
"description": "ISO-8601 timestamp (UTC)."
},
{
"type": "null"
}
]
},
"lastFailedStep": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"lastFailedReason": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"autoCaption": {
"type": "boolean"
},
"captionTrackKey": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"captionState": {
"anyOf": [
{
"type": "string",
"enum": [
"pending",
"ready",
"failed"
]
},
{
"type": "null"
}
]
},
"showCaptions": {
"type": "boolean"
},
"audioEnabled": {
"type": "boolean"
},
"focalRegion": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Smart-fit focal region, as stored JSON text."
},
"fit": {
"type": "string",
"enum": [
"contain",
"cover",
"fill",
"blur-fill"
],
"description": "How the asset fills a box."
},
"autoSmartFit": {
"type": "boolean"
},
"rotation": {
"type": "integer",
"description": "Clockwise rotation in degrees."
},
"originalFormat": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"packageEntry": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"packageFiles": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"packageBytes": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"importSourceId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"nodeId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Home location; null = workspace library root."
},
"recalledAt": {
"anyOf": [
{
"type": "string",
"description": "ISO-8601 timestamp (UTC)."
},
{
"type": "null"
}
]
},
"recalledBy": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"createdAt": {
"type": "string",
"description": "ISO-8601 timestamp (UTC)."
},
"updatedAt": {
"type": "string",
"description": "ISO-8601 timestamp (UTC)."
},
"deletedAt": {
"anyOf": [
{
"type": "string",
"description": "ISO-8601 timestamp (UTC)."
},
{
"type": "null"
}
]
},
"usageCount": {
"type": "integer",
"description": "Playlists, schedules, layouts, creatives, boards and screens that use this asset."
},
"uploadedByName": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Who uploaded it, from the audit log."
},
"uploadSource": {
"anyOf": [
{
"type": "string",
"enum": [
"ui",
"api",
"mcp"
]
},
{
"type": "null"
}
],
"description": "How it was uploaded."
}
},
"required": [
"id",
"spaceId",
"name",
"kind",
"url",
"bytes",
"checksum",
"active",
"folderId",
"tags",
"altText",
"thumbnailUrl",
"width",
"height",
"durationSec",
"pdfPageCount",
"loopDurationMs",
"fontFamily",
"fontWeights",
"state",
"stateReason",
"stateCode",
"stateFault",
"stateProgress",
"codec",
"playableRev",
"loopState",
"loopCodecs",
"loopRev",
"loopRotation",
"loopBytes",
"seqState",
"seqCodecs",
"seqRev",
"seqRotation",
"seqBytes",
"seqConform",
"masterKey",
"masterBytes",
"masterProbe",
"rendition4k",
"frameLumaMean",
"frameLumaVariance",
"frameEdgeDensity",
"startsAt",
"expiresAt",
"autoArchiveOnExpiry",
"qr",
"webConfig",
"replayState",
"lastReplayAt",
"lastReplaySuccessAt",
"lastFailedStep",
"lastFailedReason",
"autoCaption",
"captionTrackKey",
"captionState",
"showCaptions",
"audioEnabled",
"focalRegion",
"fit",
"autoSmartFit",
"rotation",
"originalFormat",
"packageEntry",
"packageFiles",
"packageBytes",
"importSourceId",
"nodeId",
"recalledAt",
"recalledBy",
"createdAt",
"updatedAt",
"deletedAt",
"usageCount",
"uploadedByName",
"uploadSource"
]
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/brixsignage-com-media-asset"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.