Docs

Reference data

Last updated: 2026-10-034 min read

Some tools take ids as input: a voice, an avatar, a track. You get them from the requests on this page. All of them are free GETs.

Voices

GET /voices - any key. Narration voices for POST /video/create, POST /avatar/video and the content pack (form.voiceId).

curl "https://developers.grem.capital/api/v1/voices?language=de" \
  -H "Authorization: Bearer gsk_live_xxx"

language (optional) - an ISO 639-1 code: keeps the voices that speak it.

FieldDescription
items[].voiceIdid for the voiceId field
items[].namevoice name
items[].gendermale or female
items[].descriptionvoice character
items[].languageslanguages the voice speaks well
items[].isDefaultthe default voice

Avatars

GET /avatar/avatars - scope tools:avatar. Every avatar your account can use in POST /avatar/video: your own, photo-based and the standard presenters.

FieldDescription
items[].avatarIdid for the avatarId field
items[].namename
items[].kindcustom (trained), photo (from a photo) or standard
items[].statusonly ready can be used
items[].genderfor standard presenters
items[].thumbnailUrlthumbnail

You create your own avatar in the cabinet, in the AI avatar tool; through the API you only use ready ones.

Music for video

GET /video/music - scope tools:video. Royalty-free tracks for the musicTrackId field.

FieldDescription
items[].trackIdtrack id
items[].title, items[].artisttitle and artist
items[].licenselicence
items[].genregenre
items[].durationSecduration
items[].previewPathlisten: https://developers.grem.capital/api/v1 + previewPath (needs the tools:artifacts scope)

Closing phrases for video

GET /video/endings?language=en - scope tools:video. Ready closing phrases in the video language for POST /video/create, and the maximum length of your own phrase (ctaText).

FieldDescription
languagephrase language
maxCustomCharsmaximum length of your own phrase
optionsready phrases
options[].intentphrase id - pass it as ctaIntent
options[].textthe phrase in the requested language

Tool availability

GET /tools/status - any key.

{ "tools": { "video/create": { "available": true }, "avatar/video": { "available": false } }, "requestId": "req_..." }

A tool with available: false currently answers 503 service_unavailable and charges nothing. Check it before a bulk run. Tools missing from the list have no availability gate.

Work history

GET /works - any key. Your account's results across all tools - both via the API and from the cabinet, newest first.

ParameterDescription
tooltool path: valuation/report, valuation/rent, valuation/review, content/generate, video/create, text/generate, pdf/create, floorplan/create, avatar/video, flyer/create, tour. Photo, site and draft results are not kept in the history
statusstatus filter
limititems per page, 1-50 (default 20)
cursornextCursor from the previous page; another value - 400
from, tocreated on or after / on or before this date

A known parameter with an invalid value is refused with 400 validation naming the field.

FieldDescription
items[].idwork id
items[].tooltool path
items[].status, items[].title, items[].languagestatus, title, language
items[].city, items[].countrylisting address, if any
items[].street, items[].streetNumberstreet and house number, if any
items[].previewUrl, items[].linkpreview image and the finished PDF, if any (download via GET /artifacts/{path}); a flyer preview is the image itself (data:image/...)
items[].objectthe listing the result was made for: id, kind, name, isDraft, photoUrl
items[].repeatIndex, items[].errorhow many times it was regenerated; a generic text when the job failed
items[].createdAtcreated at
nextCursorfor the next page; null - no more pages

Was this article helpful?