Images, videos and files uploaded to the site, stored in cloud storage and referenced by ID from pages, products and everything else.
Endpoints that need a token: the site owner creates it in their admin (Developers > API reference). AI assistants: how to ask the user for one.
72 endpoints in 6 parts: Media, File Route, Qr Code, Video, Video Interaction, AI builder.
Add an add media quality.
Needs the token of a signed-in user.
The add media quality's media id.
The add media quality's transcode.
The add media quality's type.
curl -X POST 'http://multibeton-bulgaria.com/add-media-quality?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "media_id": "...", "transcode": "...", "type": "..." }'{
"file": "example",
"file_path": "example",
"alt": "example",
"filename": "Example",
"filetype": "example",
"vimeo_uri": "example",
"vimeo_picture": "example",
"duration": 1,
"vimeo_url": "example-item",
"youtube_url": "example-item",
"youtube_picture": "example",
"thumbnail": "example",
"gcs_url": "example-item",
"gcs_480_30_url": "example-item",
"gcs_720_30_url": "example-item",
"gcs_1080_30_url": "example-item",
"picture_gcs_url": "example-item",
"transcode_status": "not_started",
"owner_id": "6543210fedcba98765432100",
"source_url": "example-item",
"origin": "example",
"width": 1,
"height": 1,
"_id": "6543210fedcba98765432100",
"sequence": {
"status": "example",
"started_at": "example",
"updated_at": "example",
"step": "example",
"done": 0,
"total": 0,
"ext": "example",
"trim_start": 0,
"trim_end": 0,
"build_id": "example",
"previous_base": "example",
"frame_count": 0
}
}Check a video.
Needs the token of a signed-in user.
The ID of the video.
curl -X GET 'http://multibeton-bulgaria.com/check-video/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"file": "example",
"file_path": "example",
"alt": "example",
"filename": "Example",
"filetype": "example",
"vimeo_uri": "example",
"vimeo_picture": "example",
"duration": 1,
"vimeo_url": "example-item",
"youtube_url": "example-item",
"youtube_picture": "example",
"thumbnail": "example",
"gcs_url": "example-item",
"gcs_480_30_url": "example-item",
"gcs_720_30_url": "example-item",
"gcs_1080_30_url": "example-item",
"picture_gcs_url": "example-item",
"transcode_status": "not_started",
"owner_id": "6543210fedcba98765432100",
"source_url": "example-item",
"origin": "example",
"width": 1,
"height": 1,
"_id": "6543210fedcba98765432100",
"sequence": {
"status": "example",
"started_at": "example",
"updated_at": "example",
"step": "example",
"done": 0,
"total": 0,
"ext": "example",
"trim_start": 0,
"trim_end": 0,
"build_id": "example",
"previous_base": "example",
"frame_count": 0
}
}Create a storage folder from a prompt, written by the AI builder.
Needs the token of a signed-in user.
The storage folder's name.
curl -X POST 'http://multibeton-bulgaria.com/create-storage-folder?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "name": "..." }'Returns one download media, found by its ID.
Public - no token needed.
The ID of the download media.
Returns the Media object.
curl -X GET 'http://multibeton-bulgaria.com/download-media/{id}?ionic=true'{
"file": "example",
"file_path": "example",
"alt": "example",
"filename": "Example",
"filetype": "example",
"vimeo_uri": "example",
"vimeo_picture": "example",
"duration": 1,
"vimeo_url": "example-item",
"youtube_url": "example-item",
"youtube_picture": "example",
"thumbnail": "example",
"gcs_url": "example-item",
"gcs_480_30_url": "example-item",
"gcs_720_30_url": "example-item",
"gcs_1080_30_url": "example-item",
"picture_gcs_url": "example-item",
"transcode_status": "not_started",
"owner_id": "6543210fedcba98765432100",
"source_url": "example-item",
"origin": "example",
"width": 1,
"height": 1,
"_id": "6543210fedcba98765432100",
"sequence": {
"status": "example",
"started_at": "example",
"updated_at": "example",
"step": "example",
"done": 0,
"total": 0,
"ext": "example",
"trim_start": 0,
"trim_end": 0,
"build_id": "example",
"previous_base": "example",
"frame_count": 0
}
}Returns the media cdn.
Needs the token of a signed-in user.
Only media cdns with this without path.
curl -X GET 'http://multibeton-bulgaria.com/get-media-cdn?ionic=true&without_path=...' \ -H 'Authorization: Bearer <TOKEN>'
Upload a media signed url.
Needs the token of a signed-in user.
The media signed url's name.
The media signed url's type.
The media signed url's duration.
The media signed url's save owner.
curl -X POST 'http://multibeton-bulgaria.com/get-media-upload-signed-url?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "name": "...", "type": "...", "duration": "...", "saveOwner": "..." }'{
"file": "example",
"file_path": "example",
"alt": "example",
"filename": "Example",
"filetype": "example",
"vimeo_uri": "example",
"vimeo_picture": "example",
"duration": 1,
"vimeo_url": "example-item",
"youtube_url": "example-item",
"youtube_picture": "example",
"thumbnail": "example",
"gcs_url": "example-item",
"gcs_480_30_url": "example-item",
"gcs_720_30_url": "example-item",
"gcs_1080_30_url": "example-item",
"picture_gcs_url": "example-item",
"transcode_status": "not_started",
"owner_id": "6543210fedcba98765432100",
"source_url": "example-item",
"origin": "example",
"width": 1,
"height": 1,
"_id": "6543210fedcba98765432100",
"sequence": {
"status": "example",
"started_at": "example",
"updated_at": "example",
"step": "example",
"done": 0,
"total": 0,
"ext": "example",
"trim_start": 0,
"trim_end": 0,
"build_id": "example",
"previous_base": "example",
"frame_count": 0
}
}Upload a storage signed url.
Needs the token of a signed-in user.
The storage signed url's name.
The storage signed url's type.
curl -X POST 'http://multibeton-bulgaria.com/get-storage-upload-signed-url?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "name": "...", "type": "..." }'Creates a vimeo form from the fields sent.
Needs the token of a signed-in user.
curl -X POST 'http://multibeton-bulgaria.com/get-vimeo-form?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
{
"file": "example",
"file_path": "example",
"alt": "example",
"filename": "Example",
"filetype": "example",
"vimeo_uri": "example",
"vimeo_picture": "example",
"duration": 1,
"vimeo_url": "example-item",
"youtube_url": "example-item",
"youtube_picture": "example",
"thumbnail": "example",
"gcs_url": "example-item",
"gcs_480_30_url": "example-item",
"gcs_720_30_url": "example-item",
"gcs_1080_30_url": "example-item",
"picture_gcs_url": "example-item",
"transcode_status": "not_started",
"owner_id": "6543210fedcba98765432100",
"source_url": "example-item",
"origin": "example",
"width": 1,
"height": 1,
"_id": "6543210fedcba98765432100",
"sequence": {
"status": "example",
"started_at": "example",
"updated_at": "example",
"step": "example",
"done": 0,
"total": 0,
"ext": "example",
"trim_start": 0,
"trim_end": 0,
"build_id": "example",
"previous_base": "example",
"frame_count": 0
}
}Import medias.
Needs the token of a signed-in user.
Returns the Media object.
curl -X POST 'http://multibeton-bulgaria.com/import-medias?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
{
"file": "example",
"file_path": "example",
"alt": "example",
"filename": "Example",
"filetype": "example",
"vimeo_uri": "example",
"vimeo_picture": "example",
"duration": 1,
"vimeo_url": "example-item",
"youtube_url": "example-item",
"youtube_picture": "example",
"thumbnail": "example",
"gcs_url": "example-item",
"gcs_480_30_url": "example-item",
"gcs_720_30_url": "example-item",
"gcs_1080_30_url": "example-item",
"picture_gcs_url": "example-item",
"transcode_status": "not_started",
"owner_id": "6543210fedcba98765432100",
"source_url": "example-item",
"origin": "example",
"width": 1,
"height": 1,
"_id": "6543210fedcba98765432100",
"sequence": {
"status": "example",
"started_at": "example",
"updated_at": "example",
"step": "example",
"done": 0,
"total": 0,
"ext": "example",
"trim_start": 0,
"trim_end": 0,
"build_id": "example",
"previous_base": "example",
"frame_count": 0
}
}Import medias from site.
Needs the token of a signed-in user.
The medias from site's media.
The ID of the medias from site.
The medias from site's URL slug, as in its address on the site.
curl -X POST 'http://multibeton-bulgaria.com/import-medias-from-site?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "media": "...", "_id": "...", "url": "..." }'{
"file": "example",
"file_path": "example",
"alt": "example",
"filename": "Example",
"filetype": "example",
"vimeo_uri": "example",
"vimeo_picture": "example",
"duration": 1,
"vimeo_url": "example-item",
"youtube_url": "example-item",
"youtube_picture": "example",
"thumbnail": "example",
"gcs_url": "example-item",
"gcs_480_30_url": "example-item",
"gcs_720_30_url": "example-item",
"gcs_1080_30_url": "example-item",
"picture_gcs_url": "example-item",
"transcode_status": "not_started",
"owner_id": "6543210fedcba98765432100",
"source_url": "example-item",
"origin": "example",
"width": 1,
"height": 1,
"_id": "6543210fedcba98765432100",
"sequence": {
"status": "example",
"started_at": "example",
"updated_at": "example",
"step": "example",
"done": 0,
"total": 0,
"ext": "example",
"trim_start": 0,
"trim_end": 0,
"build_id": "example",
"previous_base": "example",
"frame_count": 0
}
}Get a 150 width version of the logo.
Public - no token needed.
Only logos with this size.
curl -X GET 'http://multibeton-bulgaria.com/logo?ionic=true&size=...'
{
"zip_code": "example",
"city": "example",
"address": "example",
"contact": "example",
"email": "jane@example.com",
"google_app": "example",
"workhours": "example",
"logo": "6543210fedcba98765432100",
"site_name": "Example",
"domain": "example",
"stock_domain": "example",
"isMarket": false,
"forbidden_collections": [
{
"collection_id": "6543210fedcba98765432100",
"_id": "6543210fedcba98765432100"
}
],
"isInit": false,
"template": "0000",
"lang": "en",
"favicon": "6543210fedcba98765432100",
"cacheEnabled": false,
"has_completed_startup_prompt": true,
"gmb_location": "example",
"ga_property": "example",
"site_generated_at": "2026-11-04T12:00:00.000Z",
"admin_first_opened_at": "2026-11-04T12:00:00.000Z",
"admin_last_opened_at": "2026-11-04T12:00:00.000Z",
"allowedComponents": {
"services": false,
"products": false,
"blogposts": false,
"programs": false
}
}Import media sections.
Public - no token needed.
The ID of the media section.
curl -X GET 'http://multibeton-bulgaria.com/media-about-section-import/{id}?ionic=true'{
"title": "Example",
"url": "example-item",
"media": "example",
"metadata": "example",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}Returns the media instagram.
Public - no token needed.
The media instagram's URL slug, as in its address on the site.
curl -X GET 'http://multibeton-bulgaria.com/media-instagram?ionic=true&url=...'
Make a scroll animation's video with AI, from an idea and up to 3 of the user's pictures. The idea is rewritten into a scroll-friendly, safe video prompt first (utils/ai-builder/scroll-sequence-ai). Answers at once with an AsyncJob to poll (GET /async-jobs/:id); when it completes, its jobContext holds { media, summary, prompt } - the video, already cut into frames - or { error, refused }.
Needs a site admin token.
The media sequence generate's idea.
The media sequence generate's media ids.
The media sequence generate's quality.
curl -X POST 'http://multibeton-bulgaria.com/media-sequence-generate?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "idea": "...", "mediaIds": "...", "quality": "..." }'What an AI scroll-animation video costs, in credits, by quality - and the user's. balance (null when the wallet cannot be read).
Needs a site admin token.
curl -X GET 'http://multibeton-bulgaria.com/media-sequence-generate/cost?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
The frames of a scroll animation - status, count, size and CDN. URLs. Public: the live site's player reads it.
Public - no token needed.
The ID of the media sequence.
curl -X GET 'http://multibeton-bulgaria.com/media-sequence/{id}?ionic=true'{
"file": "example",
"file_path": "example",
"alt": "example",
"filename": "Example",
"filetype": "example",
"vimeo_uri": "example",
"vimeo_picture": "example",
"duration": 1,
"vimeo_url": "example-item",
"youtube_url": "example-item",
"youtube_picture": "example",
"thumbnail": "example",
"gcs_url": "example-item",
"gcs_480_30_url": "example-item",
"gcs_720_30_url": "example-item",
"gcs_1080_30_url": "example-item",
"picture_gcs_url": "example-item",
"transcode_status": "not_started",
"owner_id": "6543210fedcba98765432100",
"source_url": "example-item",
"origin": "example",
"width": 1,
"height": 1,
"_id": "6543210fedcba98765432100",
"sequence": {
"status": "example",
"started_at": "example",
"updated_at": "example",
"step": "example",
"done": 0,
"total": 0,
"ext": "example",
"trim_start": 0,
"trim_end": 0,
"build_id": "example",
"previous_base": "example",
"frame_count": 0
}
}Cut a stored video into the still frames a scroll animation plays. Starts the build and answers 202 { status: 'processing' } at once; follow it with while a build runs, it answers the same (no second build) unless ?force.
Needs a site admin token.
The ID of the media sequence.
Only media sequences with this force.
The media sequence's trim start.
curl -X POST 'http://multibeton-bulgaria.com/media-sequence/{id}?ionic=true&force=...' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "trim_start": "..." }'{
"file": "example",
"file_path": "example",
"alt": "example",
"filename": "Example",
"filetype": "example",
"vimeo_uri": "example",
"vimeo_picture": "example",
"duration": 1,
"vimeo_url": "example-item",
"youtube_url": "example-item",
"youtube_picture": "example",
"thumbnail": "example",
"gcs_url": "example-item",
"gcs_480_30_url": "example-item",
"gcs_720_30_url": "example-item",
"gcs_1080_30_url": "example-item",
"picture_gcs_url": "example-item",
"transcode_status": "not_started",
"owner_id": "6543210fedcba98765432100",
"source_url": "example-item",
"origin": "example",
"width": 1,
"height": 1,
"_id": "6543210fedcba98765432100",
"sequence": {
"status": "example",
"started_at": "example",
"updated_at": "example",
"step": "example",
"done": 0,
"total": 0,
"ext": "example",
"trim_start": 0,
"trim_end": 0,
"build_id": "example",
"previous_base": "example",
"frame_count": 0
}
}The browser could not finish (and says why) - so the build is not left "processing".
Needs a site admin token.
The ID of the media sequence.
The media sequence's error.
curl -X POST 'http://multibeton-bulgaria.com/media-sequence/{id}/client-fail?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "error": "..." }'{
"file": "example",
"file_path": "example",
"alt": "example",
"filename": "Example",
"filetype": "example",
"vimeo_uri": "example",
"vimeo_picture": "example",
"duration": 1,
"vimeo_url": "example-item",
"youtube_url": "example-item",
"youtube_picture": "example",
"thumbnail": "example",
"gcs_url": "example-item",
"gcs_480_30_url": "example-item",
"gcs_720_30_url": "example-item",
"gcs_1080_30_url": "example-item",
"picture_gcs_url": "example-item",
"transcode_status": "not_started",
"owner_id": "6543210fedcba98765432100",
"source_url": "example-item",
"origin": "example",
"width": 1,
"height": 1,
"_id": "6543210fedcba98765432100",
"sequence": {
"status": "example",
"started_at": "example",
"updated_at": "example",
"step": "example",
"done": 0,
"total": 0,
"ext": "example",
"trim_start": 0,
"trim_end": 0,
"build_id": "example",
"previous_base": "example",
"frame_count": 0
}
}The frames are up: check them and mark the animation ready.
Needs a site admin token.
The ID of the media sequence.
curl -X POST 'http://multibeton-bulgaria.com/media-sequence/{id}/client-finish?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"file": "example",
"file_path": "example",
"alt": "example",
"filename": "Example",
"filetype": "example",
"vimeo_uri": "example",
"vimeo_picture": "example",
"duration": 1,
"vimeo_url": "example-item",
"youtube_url": "example-item",
"youtube_picture": "example",
"thumbnail": "example",
"gcs_url": "example-item",
"gcs_480_30_url": "example-item",
"gcs_720_30_url": "example-item",
"gcs_1080_30_url": "example-item",
"picture_gcs_url": "example-item",
"transcode_status": "not_started",
"owner_id": "6543210fedcba98765432100",
"source_url": "example-item",
"origin": "example",
"width": 1,
"height": 1,
"_id": "6543210fedcba98765432100",
"sequence": {
"status": "example",
"started_at": "example",
"updated_at": "example",
"step": "example",
"done": 0,
"total": 0,
"ext": "example",
"trim_start": 0,
"trim_end": 0,
"build_id": "example",
"previous_base": "example",
"frame_count": 0
}
}The admin's heartbeat while it builds: frames done so far.
Needs a site admin token.
The ID of the media sequence.
curl -X POST 'http://multibeton-bulgaria.com/media-sequence/{id}/client-progress?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"file": "example",
"file_path": "example",
"alt": "example",
"filename": "Example",
"filetype": "example",
"vimeo_uri": "example",
"vimeo_picture": "example",
"duration": 1,
"vimeo_url": "example-item",
"youtube_url": "example-item",
"youtube_picture": "example",
"thumbnail": "example",
"gcs_url": "example-item",
"gcs_480_30_url": "example-item",
"gcs_720_30_url": "example-item",
"gcs_1080_30_url": "example-item",
"picture_gcs_url": "example-item",
"transcode_status": "not_started",
"owner_id": "6543210fedcba98765432100",
"source_url": "example-item",
"origin": "example",
"width": 1,
"height": 1,
"_id": "6543210fedcba98765432100",
"sequence": {
"status": "example",
"started_at": "example",
"updated_at": "example",
"step": "example",
"done": 0,
"total": 0,
"ext": "example",
"trim_start": 0,
"trim_end": 0,
"build_id": "example",
"previous_base": "example",
"frame_count": 0
}
}Signed upload links for every frame the admin is about to make.
Needs a site admin token.
The ID of the media sequence.
The media sequence's force.
curl -X POST 'http://multibeton-bulgaria.com/media-sequence/{id}/client-start?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "force": "..." }'{
"file": "example",
"file_path": "example",
"alt": "example",
"filename": "Example",
"filetype": "example",
"vimeo_uri": "example",
"vimeo_picture": "example",
"duration": 1,
"vimeo_url": "example-item",
"youtube_url": "example-item",
"youtube_picture": "example",
"thumbnail": "example",
"gcs_url": "example-item",
"gcs_480_30_url": "example-item",
"gcs_720_30_url": "example-item",
"gcs_1080_30_url": "example-item",
"picture_gcs_url": "example-item",
"transcode_status": "not_started",
"owner_id": "6543210fedcba98765432100",
"source_url": "example-item",
"origin": "example",
"width": 1,
"height": 1,
"_id": "6543210fedcba98765432100",
"sequence": {
"status": "example",
"started_at": "example",
"updated_at": "example",
"step": "example",
"done": 0,
"total": 0,
"ext": "example",
"trim_start": 0,
"trim_end": 0,
"build_id": "example",
"previous_base": "example",
"frame_count": 0
}
}Returns one media tracker, found by its ID.
Public - no token needed.
The ID of the media tracker.
curl -X GET 'http://multibeton-bulgaria.com/media-tracker/{id}?ionic=true'{
"score": "example",
"user_id": "6543210fedcba98765432100",
"media": "example",
"additional_fields": {},
"goal": {},
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}Create new media.
Needs the token of a signed-in user.
Only medias with this skip owner id.
The media's body.
The media's alt.
The media's youtube url.
The media's vimeo url.
The media's picture gcs url.
Returns the Media object.
curl -X POST 'http://multibeton-bulgaria.com/medias?ionic=true&skip_owner_id=...' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "body": "...", "alt": "...", "youtube_url": "...", "vimeo_url": "...", "picture_gcs_url": "..." }'{
"file": "example",
"file_path": "example",
"alt": "example",
"filename": "Example",
"filetype": "example",
"vimeo_uri": "example",
"vimeo_picture": "example",
"duration": 1,
"vimeo_url": "example-item",
"youtube_url": "example-item",
"youtube_picture": "example",
"thumbnail": "example",
"gcs_url": "example-item",
"gcs_480_30_url": "example-item",
"gcs_720_30_url": "example-item",
"gcs_1080_30_url": "example-item",
"picture_gcs_url": "example-item",
"transcode_status": "not_started",
"owner_id": "6543210fedcba98765432100",
"source_url": "example-item",
"origin": "example",
"width": 1,
"height": 1,
"_id": "6543210fedcba98765432100",
"sequence": {
"status": "example",
"started_at": "example",
"updated_at": "example",
"step": "example",
"done": 0,
"total": 0,
"ext": "example",
"trim_start": 0,
"trim_end": 0,
"build_id": "example",
"previous_base": "example",
"frame_count": 0
}
}Returns one medias avatar, found by its ID.
Public - no token needed.
The ID of the medias avatar.
curl -X GET 'http://multibeton-bulgaria.com/medias-avatar/{id}?ionic=true'{
"file": "example",
"file_path": "example",
"alt": "example",
"filename": "Example",
"filetype": "example",
"vimeo_uri": "example",
"vimeo_picture": "example",
"duration": 1,
"vimeo_url": "example-item",
"youtube_url": "example-item",
"youtube_picture": "example",
"thumbnail": "example",
"gcs_url": "example-item",
"gcs_480_30_url": "example-item",
"gcs_720_30_url": "example-item",
"gcs_1080_30_url": "example-item",
"picture_gcs_url": "example-item",
"transcode_status": "not_started",
"owner_id": "6543210fedcba98765432100",
"source_url": "example-item",
"origin": "example",
"width": 1,
"height": 1,
"_id": "6543210fedcba98765432100",
"sequence": {
"status": "example",
"started_at": "example",
"updated_at": "example",
"step": "example",
"done": 0,
"total": 0,
"ext": "example",
"trim_start": 0,
"trim_end": 0,
"build_id": "example",
"previous_base": "example",
"frame_count": 0
}
}Count medias.
Needs the token of a signed-in user.
Returns a list of Media objects.
curl -X GET 'http://multibeton-bulgaria.com/medias-count?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
[
{
"file": "example",
"file_path": "example",
"alt": "example",
"filename": "Example",
"filetype": "example",
"vimeo_uri": "example",
"vimeo_picture": "example",
"duration": 1,
"vimeo_url": "example-item",
"youtube_url": "example-item",
"youtube_picture": "example",
"thumbnail": "example",
"gcs_url": "example-item",
"gcs_480_30_url": "example-item",
"gcs_720_30_url": "example-item",
"gcs_1080_30_url": "example-item",
"picture_gcs_url": "example-item",
"transcode_status": "not_started",
"owner_id": "6543210fedcba98765432100",
"source_url": "example-item",
"origin": "example",
"width": 1,
"height": 1,
"_id": "6543210fedcba98765432100",
"sequence": {
"status": "example",
"started_at": "example",
"updated_at": "example",
"step": "example",
"done": 0,
"total": 0,
"ext": "example",
"trim_start": 0,
"trim_end": 0,
"build_id": "example",
"previous_base": "example",
"frame_count": 0
}
}
]Returns one medias form, found by its ID.
Public - no token needed.
The medias form's form id.
The medias form's img index.
Returns the Form object.
curl -X GET 'http://multibeton-bulgaria.com/medias-form/{form_id}&{img_index}?ionic=true'{
"name": "Example",
"email": "jane@example.com",
"subject": "example",
"body": "Text shown on the site.",
"medias": [],
"additional": [
{
"title": "Example",
"option": "example",
"_id": "6543210fedcba98765432100"
}
],
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}Get a 1200px width version of the image.
Public - no token needed.
The ID of the medias large.
curl -X GET 'http://multibeton-bulgaria.com/medias-large/{id}?ionic=true'{
"file": "example",
"file_path": "example",
"alt": "example",
"filename": "Example",
"filetype": "example",
"vimeo_uri": "example",
"vimeo_picture": "example",
"duration": 1,
"vimeo_url": "example-item",
"youtube_url": "example-item",
"youtube_picture": "example",
"thumbnail": "example",
"gcs_url": "example-item",
"gcs_480_30_url": "example-item",
"gcs_720_30_url": "example-item",
"gcs_1080_30_url": "example-item",
"picture_gcs_url": "example-item",
"transcode_status": "not_started",
"owner_id": "6543210fedcba98765432100",
"source_url": "example-item",
"origin": "example",
"width": 1,
"height": 1,
"_id": "6543210fedcba98765432100",
"sequence": {
"status": "example",
"started_at": "example",
"updated_at": "example",
"step": "example",
"done": 0,
"total": 0,
"ext": "example",
"trim_start": 0,
"trim_end": 0,
"build_id": "example",
"previous_base": "example",
"frame_count": 0
}
}Returns one medias marker, found by its ID.
Public - no token needed.
The ID of the medias marker.
Only medias markers with this size.
curl -X GET 'http://multibeton-bulgaria.com/medias-marker/{id}?ionic=true&size=...'{
"file": "example",
"file_path": "example",
"alt": "example",
"filename": "Example",
"filetype": "example",
"vimeo_uri": "example",
"vimeo_picture": "example",
"duration": 1,
"vimeo_url": "example-item",
"youtube_url": "example-item",
"youtube_picture": "example",
"thumbnail": "example",
"gcs_url": "example-item",
"gcs_480_30_url": "example-item",
"gcs_720_30_url": "example-item",
"gcs_1080_30_url": "example-item",
"picture_gcs_url": "example-item",
"transcode_status": "not_started",
"owner_id": "6543210fedcba98765432100",
"source_url": "example-item",
"origin": "example",
"width": 1,
"height": 1,
"_id": "6543210fedcba98765432100",
"sequence": {
"status": "example",
"started_at": "example",
"updated_at": "example",
"step": "example",
"done": 0,
"total": 0,
"ext": "example",
"trim_start": 0,
"trim_end": 0,
"build_id": "example",
"previous_base": "example",
"frame_count": 0
}
}Get a 850px width version of the image.
Public - no token needed.
The ID of the medias medium.
curl -X GET 'http://multibeton-bulgaria.com/medias-medium/{id}?ionic=true'{
"file": "example",
"file_path": "example",
"alt": "example",
"filename": "Example",
"filetype": "example",
"vimeo_uri": "example",
"vimeo_picture": "example",
"duration": 1,
"vimeo_url": "example-item",
"youtube_url": "example-item",
"youtube_picture": "example",
"thumbnail": "example",
"gcs_url": "example-item",
"gcs_480_30_url": "example-item",
"gcs_720_30_url": "example-item",
"gcs_1080_30_url": "example-item",
"picture_gcs_url": "example-item",
"transcode_status": "not_started",
"owner_id": "6543210fedcba98765432100",
"source_url": "example-item",
"origin": "example",
"width": 1,
"height": 1,
"_id": "6543210fedcba98765432100",
"sequence": {
"status": "example",
"started_at": "example",
"updated_at": "example",
"step": "example",
"done": 0,
"total": 0,
"ext": "example",
"trim_start": 0,
"trim_end": 0,
"build_id": "example",
"previous_base": "example",
"frame_count": 0
}
}Get a Media object.
Needs the token of a signed-in user.
The ID of the medias object.
curl -X GET 'http://multibeton-bulgaria.com/medias-object/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"file": "example",
"file_path": "example",
"alt": "example",
"filename": "Example",
"filetype": "example",
"vimeo_uri": "example",
"vimeo_picture": "example",
"duration": 1,
"vimeo_url": "example-item",
"youtube_url": "example-item",
"youtube_picture": "example",
"thumbnail": "example",
"gcs_url": "example-item",
"gcs_480_30_url": "example-item",
"gcs_720_30_url": "example-item",
"gcs_1080_30_url": "example-item",
"picture_gcs_url": "example-item",
"transcode_status": "not_started",
"owner_id": "6543210fedcba98765432100",
"source_url": "example-item",
"origin": "example",
"width": 1,
"height": 1,
"_id": "6543210fedcba98765432100",
"sequence": {
"status": "example",
"started_at": "example",
"updated_at": "example",
"step": "example",
"done": 0,
"total": 0,
"ext": "example",
"trim_start": 0,
"trim_end": 0,
"build_id": "example",
"previous_base": "example",
"frame_count": 0
}
}Get a 1200x630px version of the logo.
Public - no token needed.
The ID of the medias og.
curl -X GET 'http://multibeton-bulgaria.com/medias-og/{id}?ionic=true'{
"file": "example",
"file_path": "example",
"alt": "example",
"filename": "Example",
"filetype": "example",
"vimeo_uri": "example",
"vimeo_picture": "example",
"duration": 1,
"vimeo_url": "example-item",
"youtube_url": "example-item",
"youtube_picture": "example",
"thumbnail": "example",
"gcs_url": "example-item",
"gcs_480_30_url": "example-item",
"gcs_720_30_url": "example-item",
"gcs_1080_30_url": "example-item",
"picture_gcs_url": "example-item",
"transcode_status": "not_started",
"owner_id": "6543210fedcba98765432100",
"source_url": "example-item",
"origin": "example",
"width": 1,
"height": 1,
"_id": "6543210fedcba98765432100",
"sequence": {
"status": "example",
"started_at": "example",
"updated_at": "example",
"step": "example",
"done": 0,
"total": 0,
"ext": "example",
"trim_start": 0,
"trim_end": 0,
"build_id": "example",
"previous_base": "example",
"frame_count": 0
}
}Get a 1920px width version of the image.
Public - no token needed.
The ID of the medias responsive.
Only medias responsives with this size.
Only medias responsives with this is fluid.
curl -X GET 'http://multibeton-bulgaria.com/medias-responsive/{id}?ionic=true&size=...&isFluid=...'{
"file": "example",
"file_path": "example",
"alt": "example",
"filename": "Example",
"filetype": "example",
"vimeo_uri": "example",
"vimeo_picture": "example",
"duration": 1,
"vimeo_url": "example-item",
"youtube_url": "example-item",
"youtube_picture": "example",
"thumbnail": "example",
"gcs_url": "example-item",
"gcs_480_30_url": "example-item",
"gcs_720_30_url": "example-item",
"gcs_1080_30_url": "example-item",
"picture_gcs_url": "example-item",
"transcode_status": "not_started",
"owner_id": "6543210fedcba98765432100",
"source_url": "example-item",
"origin": "example",
"width": 1,
"height": 1,
"_id": "6543210fedcba98765432100",
"sequence": {
"status": "example",
"started_at": "example",
"updated_at": "example",
"step": "example",
"done": 0,
"total": 0,
"ext": "example",
"trim_start": 0,
"trim_end": 0,
"build_id": "example",
"previous_base": "example",
"frame_count": 0
}
}Returns the medias storage.
Needs the token of a signed-in user.
curl -X GET 'http://multibeton-bulgaria.com/medias-storage?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
Returns one medias thumbnail, found by its ID.
Public - no token needed.
The ID of the medias thumbnail.
curl -X GET 'http://multibeton-bulgaria.com/medias-thumbnail/{id}?ionic=true'{
"file": "example",
"file_path": "example",
"alt": "example",
"filename": "Example",
"filetype": "example",
"vimeo_uri": "example",
"vimeo_picture": "example",
"duration": 1,
"vimeo_url": "example-item",
"youtube_url": "example-item",
"youtube_picture": "example",
"thumbnail": "example",
"gcs_url": "example-item",
"gcs_480_30_url": "example-item",
"gcs_720_30_url": "example-item",
"gcs_1080_30_url": "example-item",
"picture_gcs_url": "example-item",
"transcode_status": "not_started",
"owner_id": "6543210fedcba98765432100",
"source_url": "example-item",
"origin": "example",
"width": 1,
"height": 1,
"_id": "6543210fedcba98765432100",
"sequence": {
"status": "example",
"started_at": "example",
"updated_at": "example",
"step": "example",
"done": 0,
"total": 0,
"ext": "example",
"trim_start": 0,
"trim_end": 0,
"build_id": "example",
"previous_base": "example",
"frame_count": 0
}
}Get a 1920px width version of the image.
Public - no token needed.
The ID of the medias xlarge.
curl -X GET 'http://multibeton-bulgaria.com/medias-xlarge/{id}?ionic=true'{
"file": "example",
"file_path": "example",
"alt": "example",
"filename": "Example",
"filetype": "example",
"vimeo_uri": "example",
"vimeo_picture": "example",
"duration": 1,
"vimeo_url": "example-item",
"youtube_url": "example-item",
"youtube_picture": "example",
"thumbnail": "example",
"gcs_url": "example-item",
"gcs_480_30_url": "example-item",
"gcs_720_30_url": "example-item",
"gcs_1080_30_url": "example-item",
"picture_gcs_url": "example-item",
"transcode_status": "not_started",
"owner_id": "6543210fedcba98765432100",
"source_url": "example-item",
"origin": "example",
"width": 1,
"height": 1,
"_id": "6543210fedcba98765432100",
"sequence": {
"status": "example",
"started_at": "example",
"updated_at": "example",
"step": "example",
"done": 0,
"total": 0,
"ext": "example",
"trim_start": 0,
"trim_end": 0,
"build_id": "example",
"previous_base": "example",
"frame_count": 0
}
}Get a 500px width version of the image.
Public - no token needed.
The ID of the media.
Returns the Media object.
curl -X GET 'http://multibeton-bulgaria.com/medias/{id}?ionic=true'{
"file": "example",
"file_path": "example",
"alt": "example",
"filename": "Example",
"filetype": "example",
"vimeo_uri": "example",
"vimeo_picture": "example",
"duration": 1,
"vimeo_url": "example-item",
"youtube_url": "example-item",
"youtube_picture": "example",
"thumbnail": "example",
"gcs_url": "example-item",
"gcs_480_30_url": "example-item",
"gcs_720_30_url": "example-item",
"gcs_1080_30_url": "example-item",
"picture_gcs_url": "example-item",
"transcode_status": "not_started",
"owner_id": "6543210fedcba98765432100",
"source_url": "example-item",
"origin": "example",
"width": 1,
"height": 1,
"_id": "6543210fedcba98765432100",
"sequence": {
"status": "example",
"started_at": "example",
"updated_at": "example",
"step": "example",
"done": 0,
"total": 0,
"ext": "example",
"trim_start": 0,
"trim_end": 0,
"build_id": "example",
"previous_base": "example",
"frame_count": 0
}
}Update Media by id.
Needs the token of a signed-in user.
The ID of the media.
The media's alt.
The media's filename.
The media's thumbnail.
Returns the Media object.
curl -X PATCH 'http://multibeton-bulgaria.com/medias/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "alt": "...", "filename": "...", "thumbnail": "..." }'{
"file": "example",
"file_path": "example",
"alt": "example",
"filename": "Example",
"filetype": "example",
"vimeo_uri": "example",
"vimeo_picture": "example",
"duration": 1,
"vimeo_url": "example-item",
"youtube_url": "example-item",
"youtube_picture": "example",
"thumbnail": "example",
"gcs_url": "example-item",
"gcs_480_30_url": "example-item",
"gcs_720_30_url": "example-item",
"gcs_1080_30_url": "example-item",
"picture_gcs_url": "example-item",
"transcode_status": "not_started",
"owner_id": "6543210fedcba98765432100",
"source_url": "example-item",
"origin": "example",
"width": 1,
"height": 1,
"_id": "6543210fedcba98765432100",
"sequence": {
"status": "example",
"started_at": "example",
"updated_at": "example",
"step": "example",
"done": 0,
"total": 0,
"ext": "example",
"trim_start": 0,
"trim_end": 0,
"build_id": "example",
"previous_base": "example",
"frame_count": 0
}
}Delete Media record by id.
Needs the token of a signed-in user.
The ID of the media.
Returns an empty answer on success.
curl -X DELETE 'http://multibeton-bulgaria.com/medias/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'Returns the app logo.
Public - no token needed.
Only app logos with this media id.
Only app logos with this size.
curl -X GET 'http://multibeton-bulgaria.com/pwa-logo?ionic=true&media_id=...&size=...'
{
"name": "Example",
"short_name": "Example",
"logo": "6543210fedcba98765432100",
"background_color": "#3557c4",
"description": "Text shown on the site.",
"screenshots": [
{
"media": "6543210fedcba98765432100",
"is_mobile_preview": false,
"_id": "6543210fedcba98765432100"
}
],
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}Returns one app media, found by its ID.
Public - no token needed.
The ID of the app media.
Only app medias with this size x.
Only app medias with this size y.
Returns the Media object.
curl -X GET 'http://multibeton-bulgaria.com/pwa-media/{id}?ionic=true&size_x=...&size_y=...'{
"file": "example",
"file_path": "example",
"alt": "example",
"filename": "Example",
"filetype": "example",
"vimeo_uri": "example",
"vimeo_picture": "example",
"duration": 1,
"vimeo_url": "example-item",
"youtube_url": "example-item",
"youtube_picture": "example",
"thumbnail": "example",
"gcs_url": "example-item",
"gcs_480_30_url": "example-item",
"gcs_720_30_url": "example-item",
"gcs_1080_30_url": "example-item",
"picture_gcs_url": "example-item",
"transcode_status": "not_started",
"owner_id": "6543210fedcba98765432100",
"source_url": "example-item",
"origin": "example",
"width": 1,
"height": 1,
"_id": "6543210fedcba98765432100",
"sequence": {
"status": "example",
"started_at": "example",
"updated_at": "example",
"step": "example",
"done": 0,
"total": 0,
"ext": "example",
"trim_start": 0,
"trim_end": 0,
"build_id": "example",
"previous_base": "example",
"frame_count": 0
}
}Returns one QR code code media, found by its ID.
Public - no token needed.
The ID of the QR code code media.
curl -X GET 'http://multibeton-bulgaria.com/qr-code-medias/{id}?ionic=true'{
"event": "6543210fedcba98765432100",
"date": 1,
"section": 1,
"subsection": 1,
"row": 1,
"seat": 1,
"row_index_formated": 1,
"seat_index_formated": 1,
"lead_id": "6543210fedcba98765432100",
"socket_id": "example",
"status": "frozen",
"expiration_time": "2026-11-04T12:00:00.000Z",
"qr_code": "6543210fedcba98765432100",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z",
"tier": {
"name": "Example",
"price": 0
}
}Remove a remove media quality.
Needs the token of a signed-in user.
The remove media quality's media id.
The remove media quality's transcode.
curl -X PATCH 'http://multibeton-bulgaria.com/remove-media-quality?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "media_id": "...", "transcode": "..." }'{
"file": "example",
"file_path": "example",
"alt": "example",
"filename": "Example",
"filetype": "example",
"vimeo_uri": "example",
"vimeo_picture": "example",
"duration": 1,
"vimeo_url": "example-item",
"youtube_url": "example-item",
"youtube_picture": "example",
"thumbnail": "example",
"gcs_url": "example-item",
"gcs_480_30_url": "example-item",
"gcs_720_30_url": "example-item",
"gcs_1080_30_url": "example-item",
"picture_gcs_url": "example-item",
"transcode_status": "not_started",
"owner_id": "6543210fedcba98765432100",
"source_url": "example-item",
"origin": "example",
"width": 1,
"height": 1,
"_id": "6543210fedcba98765432100",
"sequence": {
"status": "example",
"started_at": "example",
"updated_at": "example",
"step": "example",
"done": 0,
"total": 0,
"ext": "example",
"trim_start": 0,
"trim_end": 0,
"build_id": "example",
"previous_base": "example",
"frame_count": 0
}
}Changes the fields sent; the others stay as they are.
Needs the token of a signed-in user.
The storage file's file.
curl -X PATCH 'http://multibeton-bulgaria.com/storage-file?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "file": "..." }'Returns the site's storage files, newest first unless a sort is given.
Needs a site admin token.
Only storage files with this folder path.
curl -X GET 'http://multibeton-bulgaria.com/storage-files?ionic=true&folder_path=...' \ -H 'Authorization: Bearer <TOKEN>'
Returns the site's file routes, newest first unless a sort is given.
Needs a site admin token.
Returns a list of FileRoute objects.
curl -X GET 'http://multibeton-bulgaria.com/file-routes?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
[
{
"url": "example-item",
"content_type": "Text shown on the site.",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}
]Create new file route.
Needs a site admin token.
The file route's URL slug, as in its address on the site.
The file route's content type.
Returns the FileRoute object.
curl -X POST 'http://multibeton-bulgaria.com/file-routes?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "url": "...", "content_type": "..." }'{
"url": "example-item",
"content_type": "Text shown on the site.",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}Update FileRoute by id.
Needs a site admin token.
The ID of the file route.
The file route's URL slug, as in its address on the site.
The file route's content type.
Returns the FileRoute object.
curl -X PATCH 'http://multibeton-bulgaria.com/file-routes/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "url": "...", "content_type": "..." }'{
"url": "example-item",
"content_type": "Text shown on the site.",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}Delete FileRoute record by id.
Needs a site admin token.
The ID of the file route.
Returns an empty answer on success.
curl -X DELETE 'http://multibeton-bulgaria.com/file-routes/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'Returns the QR code code.
Needs a site admin token.
curl -X GET 'http://multibeton-bulgaria.com/qr-code?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
Create new qr-code.
Needs a site admin token.
curl -X POST 'http://multibeton-bulgaria.com/qr-code?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
{
"ticket": "6543210fedcba98765432100",
"status": "used",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}Returns one QR code code, found by its ID.
Needs a site admin token.
The ID of the QR code code.
curl -X GET 'http://multibeton-bulgaria.com/qr-code/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"ticket": "6543210fedcba98765432100",
"status": "used",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}Update Alert by id.
Needs a site admin token.
The ID of the QR code code.
curl -X PATCH 'http://multibeton-bulgaria.com/qr-code/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"ticket": "6543210fedcba98765432100",
"status": "used",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}Returns one single video, found by its ID.
Works without a token; with a user token the answer is personal.
The ID of the single video.
Returns the Video object.
curl -X GET 'http://multibeton-bulgaria.com/single-video/{id}?ionic=true'{
"name": "Example",
"link": "example-item",
"collection_id": "6543210fedcba98765432100",
"media_id": "6543210fedcba98765432100",
"selected": false,
"custom_1": "example",
"custom_2": "example",
"custom_3": "example",
"suitability_price_plans": [
"6543210fedcba98765432101"
],
"isSuitable": false,
"views": [
"6543210fedcba98765432101"
],
"total_views": 0,
"times_showed": 0,
"owner_id": "6543210fedcba98765432100",
"requiresLogin": false,
"requiresSubscription": false,
"price_plan_ids": [
"example"
],
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}Returns the site's videos, newest first unless a sort is given.
Needs a signed-in user whose plan grants access.
Only videos with this published.
The order of the results.
Only results in this collection.
Returns a list of Video objects.
curl -X GET 'http://multibeton-bulgaria.com/videos?ionic=true&published=...&sortBy=...&collection=...' \ -H 'Authorization: Bearer <TOKEN>'
[
{
"name": "Example",
"link": "example-item",
"collection_id": "6543210fedcba98765432100",
"media_id": "6543210fedcba98765432100",
"selected": false,
"custom_1": "example",
"custom_2": "example",
"custom_3": "example",
"suitability_price_plans": [
"6543210fedcba98765432101"
],
"isSuitable": false,
"views": [
"6543210fedcba98765432101"
],
"total_views": 0,
"times_showed": 0,
"owner_id": "6543210fedcba98765432100",
"requiresLogin": false,
"requiresSubscription": false,
"price_plan_ids": [
"example"
],
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}
]Creates a video from the fields sent.
Needs the token of a signed-in user.
Returns the Video object.
curl -X POST 'http://multibeton-bulgaria.com/videos?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
{
"name": "Example",
"link": "example-item",
"collection_id": "6543210fedcba98765432100",
"media_id": "6543210fedcba98765432100",
"selected": false,
"custom_1": "example",
"custom_2": "example",
"custom_3": "example",
"suitability_price_plans": [
"6543210fedcba98765432101"
],
"isSuitable": false,
"views": [
"6543210fedcba98765432101"
],
"total_views": 0,
"times_showed": 0,
"owner_id": "6543210fedcba98765432100",
"requiresLogin": false,
"requiresSubscription": false,
"price_plan_ids": [
"example"
],
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}Deletes the video. This cannot be undone.
Needs the token of a signed-in user.
The video's delete ids.
Returns an empty answer on success.
curl -X DELETE 'http://multibeton-bulgaria.com/videos-multiple/{delete_ids}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'Changes the fields sent; the others stay as they are.
Needs the token of a signed-in user.
The video's patch ids.
The collection id - the ID of a collection.
The video's updates.
Returns the Video object.
curl -X PATCH 'http://multibeton-bulgaria.com/videos-multiple/{patch_ids}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "collection_id": "...", "updates": "..." }'{
"name": "Example",
"link": "example-item",
"collection_id": "6543210fedcba98765432100",
"media_id": "6543210fedcba98765432100",
"selected": false,
"custom_1": "example",
"custom_2": "example",
"custom_3": "example",
"suitability_price_plans": [
"6543210fedcba98765432101"
],
"isSuitable": false,
"views": [
"6543210fedcba98765432101"
],
"total_views": 0,
"times_showed": 0,
"owner_id": "6543210fedcba98765432100",
"requiresLogin": false,
"requiresSubscription": false,
"price_plan_ids": [
"example"
],
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}Returns one video, found by its ID.
Works without a token; with a user token the answer is personal.
The ID of the video.
Returns the Video object.
curl -X GET 'http://multibeton-bulgaria.com/videos/{id}?ionic=true'{
"name": "Example",
"link": "example-item",
"collection_id": "6543210fedcba98765432100",
"media_id": "6543210fedcba98765432100",
"selected": false,
"custom_1": "example",
"custom_2": "example",
"custom_3": "example",
"suitability_price_plans": [
"6543210fedcba98765432101"
],
"isSuitable": false,
"views": [
"6543210fedcba98765432101"
],
"total_views": 0,
"times_showed": 0,
"owner_id": "6543210fedcba98765432100",
"requiresLogin": false,
"requiresSubscription": false,
"price_plan_ids": [
"example"
],
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}Changes the fields sent; the others stay as they are.
Needs the token of a signed-in user.
The ID of the video.
Returns the Video object.
curl -X PATCH 'http://multibeton-bulgaria.com/videos/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"name": "Example",
"link": "example-item",
"collection_id": "6543210fedcba98765432100",
"media_id": "6543210fedcba98765432100",
"selected": false,
"custom_1": "example",
"custom_2": "example",
"custom_3": "example",
"suitability_price_plans": [
"6543210fedcba98765432101"
],
"isSuitable": false,
"views": [
"6543210fedcba98765432101"
],
"total_views": 0,
"times_showed": 0,
"owner_id": "6543210fedcba98765432100",
"requiresLogin": false,
"requiresSubscription": false,
"price_plan_ids": [
"example"
],
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}Deletes the video. This cannot be undone.
Needs the token of a signed-in user.
The ID of the video.
Returns an empty answer on success.
curl -X DELETE 'http://multibeton-bulgaria.com/videos/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'Returns the site's videos, newest first unless a sort is given.
Works without a token; with a user token the answer is personal.
curl -X GET 'http://multibeton-bulgaria.com/videos/playlists?ionic=true'
{
"name": "Example",
"parent_collection": "6543210fedcba98765432100",
"picture": "6543210fedcba98765432100",
"about_page": "6543210fedcba98765432100",
"match_to_option": false,
"is_color": false,
"color": "#3557c4",
"position": 1,
"items": [
"6543210fedcba98765432101"
],
"thumbnail": "6543210fedcba98765432100",
"_id": "6543210fedcba98765432100"
}Create new video_interaction.
Needs the token of a signed-in user.
The video viewer - the ID of a user.
Returns the VideoInteraction object.
curl -X POST 'http://multibeton-bulgaria.com/video-interaction?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "video_viewer": "..." }'{
"start": 1,
"end": 1,
"watch_time": 1,
"video_viewer": "6543210fedcba98765432100",
"video_id": "6543210fedcba98765432100",
"video_owner": "6543210fedcba98765432100",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}Create an image from a prompt, written by the AI builder.
Needs the token of a signed-in user.
What the AI should do with the image, in plain words - any language.
The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat.
Which version of the AI builder to use; leave it out for the current one.
curl -X POST 'http://multibeton-bulgaria.com/create-new-image?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "prompt": "...", "chatId": "...", "aiVersion": "..." }'{
"chat_id": "6543210fedcba98765432100",
"role": "user",
"text": "Text shown on the site.",
"target_url": "example-item",
"action": "RESPONSE",
"options": [
"example"
],
"medias": [
{
"media": "6543210fedcba98765432100",
"gcs_url": "example-item",
"gemini_uri": "example",
"gemini_interaction_id": "example",
"_id": "6543210fedcba98765432100"
}
],
"products": [
"6543210fedcba98765432101"
],
"services": [
"6543210fedcba98765432101"
],
"blogposts": [
"6543210fedcba98765432101"
],
"programs": [
"6543210fedcba98765432101"
],
"suggestions": [
{
"text": "Text shown on the site.",
"route": "example",
"item_id": "6543210fedcba98765432100",
"medias": [],
"picture": "6543210fedcba98765432100",
"_id": "6543210fedcba98765432100"
}
],
"is_system": false,
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z",
"data": {
"object": "example",
"object_type": "example",
"edit_summary": "example",
"edit_diff": "example",
"undo_record": "example",
"hero_animation_offer": "example",
"preview_state": "example",
"pending_credit_cost": 0,
"target_restore": "example",
"media_request": "example",
"item_request": "example",
"reference_request": "example"
}
}Create a video from a prompt, written by the AI builder.
Needs the token of a signed-in user.
The video's duration.
What the AI should do with the video, in plain words - any language.
The video's media ids.
The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat.
The video's aspect ratio.
Which version of the AI builder to use; leave it out for the current one.
curl -X POST 'http://multibeton-bulgaria.com/create-new-video?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "duration": "...", "prompt": "...", "mediaIds": "...", "chatId": "...", "aspect_ratio": "..." }'{
"chat_id": "6543210fedcba98765432100",
"role": "user",
"text": "Text shown on the site.",
"target_url": "example-item",
"action": "RESPONSE",
"options": [
"example"
],
"medias": [
{
"media": "6543210fedcba98765432100",
"gcs_url": "example-item",
"gemini_uri": "example",
"gemini_interaction_id": "example",
"_id": "6543210fedcba98765432100"
}
],
"products": [
"6543210fedcba98765432101"
],
"services": [
"6543210fedcba98765432101"
],
"blogposts": [
"6543210fedcba98765432101"
],
"programs": [
"6543210fedcba98765432101"
],
"suggestions": [
{
"text": "Text shown on the site.",
"route": "example",
"item_id": "6543210fedcba98765432100",
"medias": [],
"picture": "6543210fedcba98765432100",
"_id": "6543210fedcba98765432100"
}
],
"is_system": false,
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z",
"data": {
"object": "example",
"object_type": "example",
"edit_summary": "example",
"edit_diff": "example",
"undo_record": "example",
"hero_animation_offer": "example",
"preview_state": "example",
"pending_credit_cost": 0,
"target_restore": "example",
"media_request": "example",
"item_request": "example",
"reference_request": "example"
}
}Use it to create a new image using only a text description.
Needs the token of a signed-in user.
What the AI should do with the image, in plain words - any language.
The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat.
curl -X POST 'http://multibeton-bulgaria.com/generate-image?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "prompt": "...", "chatId": "..." }'Use it to create or generate a specific video right now.
Needs the token of a signed-in user.
What the AI should do with the image to video, in plain words - any language.
The image to video's aspect ratio.
The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat.
curl -X POST 'http://multibeton-bulgaria.com/generate-image-to-video?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "prompt": "...", "aspect_ratio": "...", "chatId": "..." }'Use it to create or generate a specific video right now using a text description.
Needs the token of a signed-in user.
What the AI should do with the text to video, in plain words - any language.
The text to video's aspect ratio.
The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat.
curl -X POST 'http://multibeton-bulgaria.com/generate-text-to-video?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "prompt": "...", "aspect_ratio": "...", "chatId": "..." }'Use it to modify or extend an AI-generated video that was just created.
Needs the token of a signed-in user.
What the AI should do with the video to video, in plain words - any language.
The video to video's aspect ratio.
The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat.
curl -X POST 'http://multibeton-bulgaria.com/generate-video-to-video?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "prompt": "...", "aspect_ratio": "...", "chatId": "..." }'Use it to modify last AI-generated image.
Needs the token of a signed-in user.
What the AI should do with the AI image, in plain words - any language.
The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat.
curl -X POST 'http://multibeton-bulgaria.com/modify-ai-image?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "prompt": "...", "chatId": "..." }'Use it to modify last AI-generated image from the chat.
Needs the token of a signed-in user.
What the AI should do with the AI user image, in plain words - any language.
The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat.
curl -X POST 'http://multibeton-bulgaria.com/modify-ai-user-image?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "prompt": "...", "chatId": "..." }'Use it to generate new image or modify existing only when the user provided media.
Needs the token of a signed-in user.
What the AI should do with the user image, in plain words - any language.
The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat.
curl -X POST 'http://multibeton-bulgaria.com/modify-user-image?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "prompt": "...", "chatId": "..." }'Update an image from a prompt, written by the AI builder.
Needs the token of a signed-in user.
What the AI should do with the image, in plain words - any language.
The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat.
The image's media ids.
Which version of the AI builder to use; leave it out for the current one.
curl -X POST 'http://multibeton-bulgaria.com/update-image?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "prompt": "...", "chatId": "...", "mediaIds": "...", "aiVersion": "..." }'{
"file": "example",
"file_path": "example",
"alt": "example",
"filename": "Example",
"filetype": "example",
"vimeo_uri": "example",
"vimeo_picture": "example",
"duration": 1,
"vimeo_url": "example-item",
"youtube_url": "example-item",
"youtube_picture": "example",
"thumbnail": "example",
"gcs_url": "example-item",
"gcs_480_30_url": "example-item",
"gcs_720_30_url": "example-item",
"gcs_1080_30_url": "example-item",
"picture_gcs_url": "example-item",
"transcode_status": "not_started",
"owner_id": "6543210fedcba98765432100",
"source_url": "example-item",
"origin": "example",
"width": 1,
"height": 1,
"_id": "6543210fedcba98765432100",
"sequence": {
"status": "example",
"started_at": "example",
"updated_at": "example",
"step": "example",
"done": 0,
"total": 0,
"ext": "example",
"trim_start": 0,
"trim_end": 0,
"build_id": "example",
"previous_base": "example",
"frame_count": 0
}
}