Download OpenAPI specification:
Metadata helper for gofastocloud_backend (wsfastocloud editor) + landing
Single-tenant metadata helper: one instance per customer. It assists content entry with per-vertical labels, entity dictionaries (autocomplete), a filter catalog, and optional content autofill (TMDB when a tmdb_key is configured, otherwise a local SQLite source). It never owns the customer's content — the customer fills that in themselves.
Two surfaces:
/api/* — admin/write, gated by the X-Api-Key header (the instance's
configured api_key).
/public/* — key-less reads consumed by gofastocloud_backend (the editor)
and the landing. Single-tenant, so no tenant selector is needed.
All responses use the shared envelope: success is { "data": ... }, failure is { "error": { "code": int, "message": string } }.
The vertical template the editor + landing need: the vertical wire enum, field relabelings, entity types, profile schema, and custom fields.
{- "data": {
- "vertical": 0,
- "mappings": {
- "property1": "string",
- "property2": "string"
}, - "entity_types": [
- "string"
], - "fields": {
- "property1": [
- {
- "key": "string",
- "label": "string",
- "type": "text"
}
], - "property2": [
- {
- "key": "string",
- "label": "string",
- "type": "text"
}
]
}, - "metadata_catalog": [
- {
- "key": "string",
- "type": "string",
- "options": [
- "string"
]
}
]
}
}Same payload as /public/config, behind the admin key.
{- "data": {
- "vertical": 0,
- "mappings": {
- "property1": "string",
- "property2": "string"
}, - "entity_types": [
- "string"
], - "fields": {
- "property1": [
- {
- "key": "string",
- "label": "string",
- "type": "text"
}
], - "property2": [
- {
- "key": "string",
- "label": "string",
- "type": "text"
}
]
}, - "metadata_catalog": [
- {
- "key": "string",
- "type": "string",
- "options": [
- "string"
]
}
]
}
}List all entities of a type, or search them for autocomplete when q is set.
| type | string Entity type filter (e.g. |
| q | string Search term. When empty on entities, all of the type are returned. |
{- "data": [
- {
- "type": "string",
- "name": "string",
- "photo": "string",
- "bio": "string",
- "meta": {
- "property1": "string",
- "property2": "string"
}, - "id": 0
}
]
}List all entities of a type, or search them when q is set.
| type | string Entity type filter (e.g. |
| q | string Search term. When empty on entities, all of the type are returned. |
{- "data": [
- {
- "type": "string",
- "name": "string",
- "photo": "string",
- "bio": "string",
- "meta": {
- "property1": "string",
- "property2": "string"
}, - "id": 0
}
]
}Add a dictionary entity (e.g. a fighter or coach).
| type required | string |
| name required | string |
| photo | string |
| bio | string |
object |
{- "type": "string",
- "name": "string",
- "photo": "string",
- "bio": "string",
- "meta": {
- "property1": "string",
- "property2": "string"
}
}{- "data": {
- "type": "string",
- "name": "string",
- "photo": "string",
- "bio": "string",
- "meta": {
- "property1": "string",
- "property2": "string"
}, - "id": 0
}
}Replace an existing entity by id.
| id required | integer <int64> |
| type required | string |
| name required | string |
| photo | string |
| bio | string |
object |
{- "type": "string",
- "name": "string",
- "photo": "string",
- "bio": "string",
- "meta": {
- "property1": "string",
- "property2": "string"
}
}{- "data": {
- "type": "string",
- "name": "string",
- "photo": "string",
- "bio": "string",
- "meta": {
- "property1": "string",
- "property2": "string"
}, - "id": 0
}
}Upsert a custom filter field by key.
| key required | string |
| type required | string Enum: "string" "number" "bool" |
| options | Array of strings |
{- "key": "string",
- "type": "string",
- "options": [
- "string"
]
}{- "data": {
- "key": "string",
- "type": "string",
- "options": [
- "string"
]
}
}Search the configured source for movies matching q.
| q | string Search term. When empty on entities, all of the type are returned. |
| lang | string Optional language override; falls back to the source's default. |
{- "data": [
- {
- "id": "string",
- "description": "string",
- "name": "string",
- "prime_date": 0,
- "tvg_logo": "string",
- "background_url": "string",
- "user_score": 0
}
]
}Full movie metadata for autofill (cast, directors, genres…).
| id required | string Source-specific content id (e.g. a TMDB id). |
| lang | string Optional language override; falls back to the source's default. |
{- "data": {
- "id": "string",
- "description": "string",
- "name": "string",
- "prime_date": 0,
- "tvg_logo": "string",
- "background_url": "string",
- "user_score": 0,
- "production": [
- "string"
], - "country": "string",
- "genres": [
- "string"
], - "duration": 0,
- "cast": [
- "string"
], - "directors": [
- "string"
]
}
}Search the configured source for series matching q.
| q | string Search term. When empty on entities, all of the type are returned. |
| lang | string Optional language override; falls back to the source's default. |
{- "data": [
- {
- "id": "string",
- "description": "string",
- "name": "string",
- "prime_date": 0,
- "tvg_logo": "string",
- "background_url": "string",
- "user_score": 0
}
]
}Full series metadata for autofill.
| id required | string Source-specific content id (e.g. a TMDB id). |
| lang | string Optional language override; falls back to the source's default. |
{- "data": {
- "id": "string",
- "description": "string",
- "name": "string",
- "prime_date": 0,
- "tvg_logo": "string",
- "background_url": "string",
- "user_score": 0,
- "production": [
- "string"
], - "country": "string",
- "genres": [
- "string"
], - "cast": [
- "string"
], - "directors": [
- "string"
]
}
}Season metadata for the given series.
| id required | string Source-specific content id (e.g. a TMDB id). |
| season required | integer |
| lang | string Optional language override; falls back to the source's default. |
{- "data": {
- "id": "string",
- "description": "string",
- "name": "string",
- "prime_date": 0,
- "tvg_logo": "string",
- "background_url": "string",
- "user_score": 0,
- "cast": [
- "string"
], - "directors": [
- "string"
]
}
}Episode metadata for the given series/season.
| id required | string Source-specific content id (e.g. a TMDB id). |
| season required | integer |
| episode required | integer |
| lang | string Optional language override; falls back to the source's default. |
{- "data": {
- "id": "string",
- "description": "string",
- "name": "string",
- "prime_date": 0,
- "tvg_logo": "string",
- "background_url": "string",
- "user_score": 0,
- "duration": 0,
- "cast": [
- "string"
], - "directors": [
- "string"
]
}
}Stores a multipart/form-data file (jpg/jpeg/png/webp/gif) and returns its relative URL (/uploads/<name>), host-agnostic so the landing can prefix it with the instance base URL.
| file required | string <binary> |
{- "data": {
- "url": "string"
}
}