GlianaAI — prepaid balance API (1)

Download OpenAPI specification:

The full GlianaAI catalog, called with an API key against a prepaid balance. Send Authorization: Bearer gk_… and the cost of each call is deducted from your balance — no payment handshake, no per-call signing. Top up in rupiah and manage keys at https://dashboard.glianalabs.com. Every response carries x-gliana-charged-micro-usd and x-gliana-balance-micro-usd, so you can track spend without a second request. Prices are identical to the pay-per-call rail.

media

Generative media inference.

Run any of 90+ generative models pay-per-call.

$0.0001–$60 per call, depending on model and input, deducted from your prepaid balance. Quote it first with GET /v1/price?model=; the exact amount charged comes back in x-gliana-charged-micro-usd.

One endpoint for the whole catalog: send { model, ...modelInput } — pick any model from GET /v1/models (90+ across image, video, image-to-video, text-to-speech, speech-to-text, music).

Authorizations:
glianaKey
Request Body schema: application/json
required
model
required
string

Model id or full run id (see GET /v1/models).

prompt
string

Most models take a text prompt; STT/some take a file/url instead.

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "model": "grok-imagine-image",
  • "prompt": "a red apple on a table"
}

Response samples

Content type
application/json
{}

Run any of 100+ models over a payment channel (pay-as-you-go).

$0.0001–$60 per call, depending on model and input, deducted from your prepaid balance. Quote it first with GET /v1/price?model=; the exact amount charged comes back in x-gliana-charged-micro-usd.

Open one Tempo channel and pay many calls with off-chain vouchers; settle on close. Non-custodial — the deposit stays in the on-chain escrow.

Authorizations:
glianaKey
Request Body schema: application/json
required
model
required
string

Model id or full run id.

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "model": "string"
}

Response samples

Content type
application/json
{}

image-to-video

Run any of 90+ generative models pay-per-call.

$0.0001–$60 per call, depending on model and input, deducted from your prepaid balance. Quote it first with GET /v1/price?model=; the exact amount charged comes back in x-gliana-charged-micro-usd.

One endpoint for the whole catalog: send { model, ...modelInput } — pick any model from GET /v1/models (90+ across image, video, image-to-video, text-to-speech, speech-to-text, music).

Authorizations:
glianaKey
Request Body schema: application/json
required
model
required
string

Model id or full run id (see GET /v1/models).

prompt
string

Most models take a text prompt; STT/some take a file/url instead.

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "model": "grok-imagine-image",
  • "prompt": "a red apple on a table"
}

Response samples

Content type
application/json
{}

Generate a video from a text prompt or an image.

$0.0001–$60 per call, depending on model and input, deducted from your prepaid balance. Quote it first with GET /v1/price?model=; the exact amount charged comes back in x-gliana-charged-micro-usd.

Capability endpoint — pick any matching model with GET /v1/models and pass it as { model }.

Authorizations:
glianaKey
Request Body schema: application/json
required
model
required
string

Model id or full run id (see GET /v1/models).

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "model": "wan-2.7-i2v",
  • "prompt": "a timelapse of clouds over mountains"
}

Response samples

Content type
application/json
{}

Run any of 100+ models over a payment channel (pay-as-you-go).

$0.0001–$60 per call, depending on model and input, deducted from your prepaid balance. Quote it first with GET /v1/price?model=; the exact amount charged comes back in x-gliana-charged-micro-usd.

Open one Tempo channel and pay many calls with off-chain vouchers; settle on close. Non-custodial — the deposit stays in the on-chain escrow.

Authorizations:
glianaKey
Request Body schema: application/json
required
model
required
string

Model id or full run id.

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "model": "string"
}

Response samples

Content type
application/json
{}

music

Run any of 90+ generative models pay-per-call.

$0.0001–$60 per call, depending on model and input, deducted from your prepaid balance. Quote it first with GET /v1/price?model=; the exact amount charged comes back in x-gliana-charged-micro-usd.

One endpoint for the whole catalog: send { model, ...modelInput } — pick any model from GET /v1/models (90+ across image, video, image-to-video, text-to-speech, speech-to-text, music).

Authorizations:
glianaKey
Request Body schema: application/json
required
model
required
string

Model id or full run id (see GET /v1/models).

prompt
string

Most models take a text prompt; STT/some take a file/url instead.

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "model": "grok-imagine-image",
  • "prompt": "a red apple on a table"
}

Response samples

Content type
application/json
{}

Generate music from a text prompt with any model.

$0.0001–$60 per call, depending on model and input, deducted from your prepaid balance. Quote it first with GET /v1/price?model=; the exact amount charged comes back in x-gliana-charged-micro-usd.

Capability endpoint — pick any matching model with GET /v1/models and pass it as { model }.

Authorizations:
glianaKey
Request Body schema: application/json
required
model
required
string

Model id or full run id (see GET /v1/models).

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "model": "music-2.6",
  • "prompt": "a calm lo-fi beat"
}

Response samples

Content type
application/json
{}

Run any of 100+ models over a payment channel (pay-as-you-go).

$0.0001–$60 per call, depending on model and input, deducted from your prepaid balance. Quote it first with GET /v1/price?model=; the exact amount charged comes back in x-gliana-charged-micro-usd.

Open one Tempo channel and pay many calls with off-chain vouchers; settle on close. Non-custodial — the deposit stays in the on-chain escrow.

Authorizations:
glianaKey
Request Body schema: application/json
required
model
required
string

Model id or full run id.

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "model": "string"
}

Response samples

Content type
application/json
{}

stt

Run any of 90+ generative models pay-per-call.

$0.0001–$60 per call, depending on model and input, deducted from your prepaid balance. Quote it first with GET /v1/price?model=; the exact amount charged comes back in x-gliana-charged-micro-usd.

One endpoint for the whole catalog: send { model, ...modelInput } — pick any model from GET /v1/models (90+ across image, video, image-to-video, text-to-speech, speech-to-text, music).

Authorizations:
glianaKey
Request Body schema: application/json
required
model
required
string

Model id or full run id (see GET /v1/models).

prompt
string

Most models take a text prompt; STT/some take a file/url instead.

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "model": "grok-imagine-image",
  • "prompt": "a red apple on a table"
}

Response samples

Content type
application/json
{}

Transcribe audio to text with any STT model.

$0.0001–$60 per call, depending on model and input, deducted from your prepaid balance. Quote it first with GET /v1/price?model=; the exact amount charged comes back in x-gliana-charged-micro-usd.

Capability endpoint — pick any matching model with GET /v1/models and pass it as { model }. FILE INPUT: if the audio file is already on the web or your own storage, pass audio_url — we fetch it server-side at datacenter speed, which is the fastest option by far. Sending it inline as audio_base64 is simplest and stores nothing anywhere, but base64 adds ~33% to the bytes and you pay your own upload speed, so it is best under ~1MB. For a large local file, upload the RAW bytes to POST /v1/media (free, ≤40MB) and pass the URL: same transfer as base64 minus the 33%, and identity endpoints delete the object as soon as they have read it.

Authorizations:
glianaKey
Request Body schema: application/json
required
model
required
string

Model id or full run id (see GET /v1/models).

property name*
additional property
any

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{}

Run any of 100+ models over a payment channel (pay-as-you-go).

$0.0001–$60 per call, depending on model and input, deducted from your prepaid balance. Quote it first with GET /v1/price?model=; the exact amount charged comes back in x-gliana-charged-micro-usd.

Open one Tempo channel and pay many calls with off-chain vouchers; settle on close. Non-custodial — the deposit stays in the on-chain escrow.

Authorizations:
glianaKey
Request Body schema: application/json
required
model
required
string

Model id or full run id.

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "model": "string"
}

Response samples

Content type
application/json
{}

text-to-image

Run any of 90+ generative models pay-per-call.

$0.0001–$60 per call, depending on model and input, deducted from your prepaid balance. Quote it first with GET /v1/price?model=; the exact amount charged comes back in x-gliana-charged-micro-usd.

One endpoint for the whole catalog: send { model, ...modelInput } — pick any model from GET /v1/models (90+ across image, video, image-to-video, text-to-speech, speech-to-text, music).

Authorizations:
glianaKey
Request Body schema: application/json
required
model
required
string

Model id or full run id (see GET /v1/models).

prompt
string

Most models take a text prompt; STT/some take a file/url instead.

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "model": "grok-imagine-image",
  • "prompt": "a red apple on a table"
}

Response samples

Content type
application/json
{}

Generate an image from a text prompt with any model.

$0.0001–$60 per call, depending on model and input, deducted from your prepaid balance. Quote it first with GET /v1/price?model=; the exact amount charged comes back in x-gliana-charged-micro-usd.

Capability endpoint — pick any matching model with GET /v1/models and pass it as { model }.

Authorizations:
glianaKey
Request Body schema: application/json
required
model
required
string

Model id or full run id (see GET /v1/models).

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "model": "flux-2-pro-preview",
  • "prompt": "a red apple on a wooden table"
}

Response samples

Content type
application/json
{}

Run any of 100+ models over a payment channel (pay-as-you-go).

$0.0001–$60 per call, depending on model and input, deducted from your prepaid balance. Quote it first with GET /v1/price?model=; the exact amount charged comes back in x-gliana-charged-micro-usd.

Open one Tempo channel and pay many calls with off-chain vouchers; settle on close. Non-custodial — the deposit stays in the on-chain escrow.

Authorizations:
glianaKey
Request Body schema: application/json
required
model
required
string

Model id or full run id.

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "model": "string"
}

Response samples

Content type
application/json
{}

text-to-video

Run any of 90+ generative models pay-per-call.

$0.0001–$60 per call, depending on model and input, deducted from your prepaid balance. Quote it first with GET /v1/price?model=; the exact amount charged comes back in x-gliana-charged-micro-usd.

One endpoint for the whole catalog: send { model, ...modelInput } — pick any model from GET /v1/models (90+ across image, video, image-to-video, text-to-speech, speech-to-text, music).

Authorizations:
glianaKey
Request Body schema: application/json
required
model
required
string

Model id or full run id (see GET /v1/models).

prompt
string

Most models take a text prompt; STT/some take a file/url instead.

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "model": "grok-imagine-image",
  • "prompt": "a red apple on a table"
}

Response samples

Content type
application/json
{}

Generate a video from a text prompt or an image.

$0.0001–$60 per call, depending on model and input, deducted from your prepaid balance. Quote it first with GET /v1/price?model=; the exact amount charged comes back in x-gliana-charged-micro-usd.

Capability endpoint — pick any matching model with GET /v1/models and pass it as { model }.

Authorizations:
glianaKey
Request Body schema: application/json
required
model
required
string

Model id or full run id (see GET /v1/models).

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "model": "wan-2.7-i2v",
  • "prompt": "a timelapse of clouds over mountains"
}

Response samples

Content type
application/json
{}

Run any of 100+ models over a payment channel (pay-as-you-go).

$0.0001–$60 per call, depending on model and input, deducted from your prepaid balance. Quote it first with GET /v1/price?model=; the exact amount charged comes back in x-gliana-charged-micro-usd.

Open one Tempo channel and pay many calls with off-chain vouchers; settle on close. Non-custodial — the deposit stays in the on-chain escrow.

Authorizations:
glianaKey
Request Body schema: application/json
required
model
required
string

Model id or full run id.

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "model": "string"
}

Response samples

Content type
application/json
{}

tts

Run any of 90+ generative models pay-per-call.

$0.0001–$60 per call, depending on model and input, deducted from your prepaid balance. Quote it first with GET /v1/price?model=; the exact amount charged comes back in x-gliana-charged-micro-usd.

One endpoint for the whole catalog: send { model, ...modelInput } — pick any model from GET /v1/models (90+ across image, video, image-to-video, text-to-speech, speech-to-text, music).

Authorizations:
glianaKey
Request Body schema: application/json
required
model
required
string

Model id or full run id (see GET /v1/models).

prompt
string

Most models take a text prompt; STT/some take a file/url instead.

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "model": "grok-imagine-image",
  • "prompt": "a red apple on a table"
}

Response samples

Content type
application/json
{}

Convert text to speech with any TTS model.

$0.0001–$60 per call, depending on model and input, deducted from your prepaid balance. Quote it first with GET /v1/price?model=; the exact amount charged comes back in x-gliana-charged-micro-usd.

Capability endpoint — pick any matching model with GET /v1/models and pass it as { model }.

Authorizations:
glianaKey
Request Body schema: application/json
required
model
required
string

Model id or full run id (see GET /v1/models).

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "model": "grok-tts",
  • "input": "Hello from GlianaAI."
}

Response samples

Content type
application/json
{}

Run any of 100+ models over a payment channel (pay-as-you-go).

$0.0001–$60 per call, depending on model and input, deducted from your prepaid balance. Quote it first with GET /v1/price?model=; the exact amount charged comes back in x-gliana-charged-micro-usd.

Open one Tempo channel and pay many calls with off-chain vouchers; settle on close. Non-custodial — the deposit stays in the on-chain escrow.

Authorizations:
glianaKey
Request Body schema: application/json
required
model
required
string

Model id or full run id.

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "model": "string"
}

Response samples

Content type
application/json
{}

video-to-video

Run any of 90+ generative models pay-per-call.

$0.0001–$60 per call, depending on model and input, deducted from your prepaid balance. Quote it first with GET /v1/price?model=; the exact amount charged comes back in x-gliana-charged-micro-usd.

One endpoint for the whole catalog: send { model, ...modelInput } — pick any model from GET /v1/models (90+ across image, video, image-to-video, text-to-speech, speech-to-text, music).

Authorizations:
glianaKey
Request Body schema: application/json
required
model
required
string

Model id or full run id (see GET /v1/models).

prompt
string

Most models take a text prompt; STT/some take a file/url instead.

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "model": "grok-imagine-image",
  • "prompt": "a red apple on a table"
}

Response samples

Content type
application/json
{}

Generate a video from a text prompt or an image.

$0.0001–$60 per call, depending on model and input, deducted from your prepaid balance. Quote it first with GET /v1/price?model=; the exact amount charged comes back in x-gliana-charged-micro-usd.

Capability endpoint — pick any matching model with GET /v1/models and pass it as { model }.

Authorizations:
glianaKey
Request Body schema: application/json
required
model
required
string

Model id or full run id (see GET /v1/models).

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "model": "wan-2.7-i2v",
  • "prompt": "a timelapse of clouds over mountains"
}

Response samples

Content type
application/json
{}

Run any of 100+ models over a payment channel (pay-as-you-go).

$0.0001–$60 per call, depending on model and input, deducted from your prepaid balance. Quote it first with GET /v1/price?model=; the exact amount charged comes back in x-gliana-charged-micro-usd.

Open one Tempo channel and pay many calls with off-chain vouchers; settle on close. Non-custodial — the deposit stays in the on-chain escrow.

Authorizations:
glianaKey
Request Body schema: application/json
required
model
required
string

Model id or full run id.

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "model": "string"
}

Response samples

Content type
application/json
{}

text

Run any of 90+ generative models pay-per-call.

$0.0001–$60 per call, depending on model and input, deducted from your prepaid balance. Quote it first with GET /v1/price?model=; the exact amount charged comes back in x-gliana-charged-micro-usd.

One endpoint for the whole catalog: send { model, ...modelInput } — pick any model from GET /v1/models (90+ across image, video, image-to-video, text-to-speech, speech-to-text, music).

Authorizations:
glianaKey
Request Body schema: application/json
required
model
required
string

Model id or full run id (see GET /v1/models).

prompt
string

Most models take a text prompt; STT/some take a file/url instead.

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "model": "grok-imagine-image",
  • "prompt": "a red apple on a table"
}

Response samples

Content type
application/json
{}

Generate chat completions with any LLM pay-per-call.

$0.0001–$60 per call, depending on model and input, deducted from your prepaid balance. Quote it first with GET /v1/price?model=; the exact amount charged comes back in x-gliana-charged-micro-usd.

Drop-in for the OpenAI chat completions API: swap the base URL, keep your SDK. Pick any text model from GET /v1/models (category "text"). Billing is a pre-charged ceiling — (estimated input tokens + max_tokens) at the model’s per-1M rates — so set max_tokens to bound spend; the response returns real usage. Supports messages (required), max_tokens, temperature, top_p, stream: true (SSE, OpenAI chunk format), tools/tool_choice (OpenAI function calling — tool_calls + role:"tool" round-trip), and vision (content parts with image_url on vision-capable models). FILE INPUT: if the image is already on the web or your own storage, pass image_url — we fetch it server-side at datacenter speed, which is the fastest option by far. Sending it inline as image_base64 is simplest and stores nothing anywhere, but base64 adds ~33% to the bytes and you pay your own upload speed, so it is best under ~1MB. For a large local file, upload the RAW bytes to POST /v1/media (free, ≤40MB) and pass the URL: same transfer as base64 minus the 33%, and identity endpoints delete the object as soon as they have read it.

Authorizations:
glianaKey
Request Body schema: application/json
required
model
required
string

Text model id (see GET /v1/models, category "text").

required
Array of objects

OpenAI-style chat messages: [{ role: "user"|"assistant"|"system"|"tool", content }].

max_tokens
integer

Output cap — bounds the pre-charged ceiling. Default 1024.

Array of objects

OpenAI function tools; response returns tool_calls.

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "model": "grok-4.3",
  • "messages": [
    ],
  • "max_tokens": 256
}

Run any of 100+ models over a payment channel (pay-as-you-go).

$0.0001–$60 per call, depending on model and input, deducted from your prepaid balance. Quote it first with GET /v1/price?model=; the exact amount charged comes back in x-gliana-charged-micro-usd.

Open one Tempo channel and pay many calls with off-chain vouchers; settle on close. Non-custodial — the deposit stays in the on-chain escrow.

Authorizations:
glianaKey
Request Body schema: application/json
required
model
required
string

Model id or full run id.

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "model": "string"
}

Response samples

Content type
application/json
{}

image

Generate an image from a text prompt with any model.

$0.0001–$60 per call, depending on model and input, deducted from your prepaid balance. Quote it first with GET /v1/price?model=; the exact amount charged comes back in x-gliana-charged-micro-usd.

Capability endpoint — pick any matching model with GET /v1/models and pass it as { model }.

Authorizations:
glianaKey
Request Body schema: application/json
required
model
required
string

Model id or full run id (see GET /v1/models).

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "model": "flux-2-pro-preview",
  • "prompt": "a red apple on a wooden table"
}

Response samples

Content type
application/json
{}

recipe

Generate a video from text via an image step.

$0.445550 per call, deducted from your prepaid balance. Charged only on success.

Recipe: text → image → animated video (cheapest path to a video; better subject control). Multi-model pipeline from { prompt }. Override steps with { imageModel, videoModel }; { motionPrompt, duration, resolution } tune the video. Returns each step's output + the final url.

Authorizations:
glianaKey
Request Body schema: application/json
required
prompt
required
string

Text description of the subject/scene the pipeline should generate.

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "prompt": "an italian-brainrot cat-shark hybrid, 3d meme",
  • "motionPrompt": "it dances and spins"
}

Generate a video with audio from a text prompt.

$0.844300 per call, deducted from your prepaid balance. Charged only on success.

Recipe: text → image → video with native AUDIO. Multi-model pipeline from { prompt }. Override steps with { imageModel, videoModel }; { motionPrompt, duration, resolution } tune the video. Returns each step's output + the final url.

Authorizations:
glianaKey
Request Body schema: application/json
required
prompt
required
string

Text description of the subject/scene the pipeline should generate.

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "prompt": "an italian-brainrot cat-shark hybrid, 3d meme",
  • "motionPrompt": "it dances and spins"
}

Generate an HD video from text via an image.

$0.470750 per call, deducted from your prepaid balance. Charged only on success.

Recipe: text → higher-fidelity image → animated video. Multi-model pipeline from { prompt }. Override steps with { imageModel, videoModel }; { motionPrompt, duration, resolution } tune the video. Returns each step's output + the final url.

Authorizations:
glianaKey
Request Body schema: application/json
required
prompt
required
string

Text description of the subject/scene the pipeline should generate.

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "prompt": "an italian-brainrot cat-shark hybrid, 3d meme",
  • "motionPrompt": "it dances and spins"
}

Generate a random brainrot character video.

$0.997500 per call, deducted from your prepaid balance. Charged only on success.

Recipe: random Italian-brainrot character → animated video with audio (also the brainrot-video model). Multi-model pipeline. Override steps with { imageModel, videoModel }; { motionPrompt, duration, resolution } tune the video. Returns each step's output + the final url.

Authorizations:
glianaKey
Request Body schema: application/json
optional
prompt
string

Text description of the subject/scene the pipeline should generate.

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "motionPrompt": "it dances and bounces"
}

utility

Send a JSON-RPC call to a supported chain.

$0.002000 per call, deducted from your prepaid balance. Charged only on success.

Multi-chain JSON-RPC proxy — { chain, method, params }.

Authorizations:
glianaKey
Request Body schema: application/json
required
chain
required
string

Chain to query, e.g. base, ethereum, solana.

method
required
string

JSON-RPC method name, e.g. "eth_blockNumber".

params
required
Array of arrays

JSON-RPC parameters, as an array.

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "chain": "base",
  • "method": "eth_blockNumber",
  • "params": [ ]
}

Response samples

Content type
application/json
{
  • "tool": "tools/rpc",
  • "costMicroUsd": 2000,
  • "chain": "base",
  • "result": "0x1a2b3c"
}

Search the web and return ranked results.

$0.005000 per call, deducted from your prepaid balance. Charged only on success.

Web search — { q, count?: 1-20, country?: "ID", lang?: "id" }. Returns title, url and snippet per hit, plus which upstream answered. Providers are tried in order, so one being rate-limited falls through rather than failing the call.

Authorizations:
glianaKey
Request Body schema: application/json
required
q
required
string

The search query.

count
required
number

How many results to return.

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "q": "x402 payment protocol",
  • "count": 5
}

Response samples

Content type
application/json
{
  • "tool": "tools/search",
  • "costMicroUsd": 5000,
  • "query": "x402 payment protocol",
  • "provider": "brave",
  • "count": 2,
  • "results": [
    ]
}

Convert text into embedding vectors.

$0.001000 per call, deducted from your prepaid balance. Charged only on success.

Text embeddings for search, clustering and RAG — { texts: ["..."] } or { text: "..." }. Up to 100 texts and 32,000 characters per call. Multilingual by default, so Indonesian and English embed into the same space and can be compared directly. Returns the model id and dimensions alongside the vectors.

Authorizations:
glianaKey
Request Body schema: application/json
required
texts
required
Array of arrays

Array of strings to embed, one vector per entry.

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "texts": [
    ]
}

Response samples

Content type
application/json
{
  • "tool": "tools/embed",
  • "costMicroUsd": 1000,
  • "model": "@cf/baai/bge-m3",
  • "count": 2,
  • "dimensions": 1024,
  • "embeddings": [
    ]
}

Check text for unsafe content categories.

$0.001000 per call, deducted from your prepaid balance. Charged only on success.

Safety check for user-supplied text — { text }, up to 8,000 characters. Returns flagged plus the guard model hazard categories and its raw verdict. The verdict is that model judgement, not a legal determination: treat it as a signal in your own moderation flow.

Authorizations:
glianaKey
Request Body schema: application/json
required
text
required
string

The text to classify for unsafe content.

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "text": "I will find where you live."
}

Response samples

Content type
application/json
{
  • "tool": "tools/moderate",
  • "costMicroUsd": 1000,
  • "model": "@cf/meta/llama-guard-3-8b",
  • "flagged": true,
  • "categories": [
    ],
  • "verdict": "unsafe\nS1",
  • "chars": 27
}

Fetch spot token prices by ticker symbol.

$0.002000 per call, deducted from your prepaid balance. Charged only on success.

Spot token prices — { symbols: "BTC,ETH", vs? } (CoinGecko ids also accepted via the same field or { ids }).

Authorizations:
glianaKey
Request Body schema: application/json
required
symbols
required
string

Comma-separated ticker symbols, e.g. "BTC,ETH".

vs
required
string

Quote currency for the price, e.g. "usd".

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "symbols": "BTC,ETH",
  • "vs": "usd"
}

Response samples

Content type
application/json
{
  • "tool": "tools/token-price",
  • "costMicroUsd": 2000,
  • "vs": "USD",
  • "prices": {
    },
  • "sources": {
    }
}

Get prices, gas and DeFi TVL in one call.

$0.030000 per call, deducted from your prepaid balance. Charged only on success.

Composed market snapshot — { chain?: "base", symbols?: "BTC,ETH,SOL", protocol?: "aave" }. One request instead of four: spot prices, gas on the chain you are about to transact on (including the USD cost of a transfer), total DeFi TVL with the largest chains, and a specific protocol TVL when asked. Each section degrades independently — a dead upstream nulls its own field and is named in degraded rather than failing the brief.

Authorizations:
glianaKey
Request Body schema: application/json
required
chain
required
string

Chain whose gas and DEX activity to include.

symbols
required
string

Comma-separated ticker symbols, e.g. "BTC,ETH".

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "chain": "base",
  • "symbols": "BTC,ETH,SOL"
}

Response samples

Content type
application/json
{
  • "tool": "tools/market-brief",
  • "costMicroUsd": 30000,
  • "as_of": "2026-08-07T09:00:00.000Z",
  • "prices": {
    },
  • "gas": {
    },
  • "defi": {
    }
}

List DEX pools for a token by liquidity.

$0.010000 per call, deducted from your prepaid balance. Charged only on success.

On-chain DEX liquidity for a token — { query: "WIF" | "", chain?, limit?: 1-20 }. Returns the pools sorted by liquidity descending with price, liquidity, 24h volume, 24h change and the pair address. Ticker searches can match impostor tokens, so pass the contract address when you have it and treat a thin pool as untradeable.

Authorizations:
glianaKey
Request Body schema: application/json
required
query
required
string

Token symbol, name or contract address to look up.

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "query": "WIF"
}

Response samples

Content type
application/json
{
  • "tool": "tools/dex-pairs",
  • "costMicroUsd": 10000,
  • "query": "WIF",
  • "matched": 30,
  • "pairs": [
    ],
  • "source": "dexscreener"
}

Get DeFi value locked by protocol or chain.

$0.010000 per call, deducted from your prepaid balance. Charged only on success.

Total value locked from DefiLlama — { protocol?: "aave", chain?: "Ethereum", limit? }. With a protocol: TVL, 1d/7d change, market cap and the per-chain split. With a chain: its TVL and rank. With neither: the largest chains plus the total. Borrowed and staking rows are excluded so the figure is not double-counted.

Authorizations:
glianaKey
Request Body schema: application/json
required
protocol
required
string

DefiLlama protocol slug, e.g. "aave".

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "protocol": "aave"
}

Response samples

Content type
application/json
{
  • "tool": "tools/defi-tvl",
  • "costMicroUsd": 10000,
  • "protocol": "Aave",
  • "symbol": "AAVE",
  • "tvl_usd": 14741707588,
  • "change_1d_pct": -0.5,
  • "change_7d_pct": 2.1,
  • "chains": [
    ],
  • "source": "defillama"
}

Read EVM gas price in gwei and dollars.

$0.010000 per call, deducted from your prepaid balance. Charged only on success.

Current gas on an EVM chain — { chain: "base", gasLimit? }. Supports ethereum, base, arbitrum, optimism, bsc and polygon. Returns gas price in gwei, the priority fee where reported, and the estimated cost of a transaction in both the native token and USD. The base fee moves every block, so this is a quote.

Authorizations:
glianaKey
Request Body schema: application/json
required
chain
required
string

Chain to query, e.g. base, ethereum, solana.

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "chain": "base"
}

Response samples

Content type
application/json
{
  • "tool": "tools/gas-price",
  • "costMicroUsd": 10000,
  • "chain": "base",
  • "gas_price_gwei": 0.006,
  • "native_symbol": "ETH",
  • "gas_limit": 21000,
  • "estimated_cost_native": 1.26e-7,
  • "estimated_cost_usd": 0.000241
}

List Hyperliquid perps with funding and OI.

$0.002000 per call, deducted from your prepaid balance. Charged only on success.

Hyperliquid perpetual futures in one call — { coins?: "BTC,ETH,SOL", sort?: "volume" | "open_interest" | "funding" | "change", limit?: 1-50 }. Returns mark and oracle price, 24h change, hourly funding with its annualised rate, open interest in coins and USD, 24h volume and max leverage per market, plus not_found for requested symbols with no market. Funding is paid hourly; the annual rate is the current hour annualised, not a forecast.

Authorizations:
glianaKey
Request Body schema: application/json
required
coins
string

Comma-separated Hyperliquid symbols, e.g. "BTC,ETH,SOL" (up to 20). Omit for the whole market, sorted.

sort
string

volume (default), open_interest, funding (largest absolute funding first) or change (largest absolute 24h move first).

limit
number

How many markets to return, 1-50. Default 10.

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "coins": "BTC,ETH,SOL",
  • "sort": "volume"
}

Response samples

Content type
application/json
{
  • "tool": "tools/perp-markets",
  • "costMicroUsd": 2000,
  • "venue": "hyperliquid",
  • "sort": "volume",
  • "count": 2,
  • "total_markets": 229,
  • "not_found": [ ],
  • "funding_interval": "1h",
  • "markets": [
    ]
}

Convert fiat currencies at mid-market rates.

$0.002000 per call, deducted from your prepaid balance. Charged only on success.

Mid-market fiat exchange rates — { from?: "USD", to?: "IDR,EUR", amount? }. Omit to for every currency. Non-USD pairs are cross-rated via USD; reference rates, not dealable quotes.

Authorizations:
glianaKey
Request Body schema: application/json
required
from
required
string

Currency code to convert FROM, e.g. "USD".

to
required
string

Currency code(s) to convert TO — comma-separated for several, e.g. "IDR,EUR".

amount
required
number

Amount in the from currency to convert.

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "from": "USD",
  • "to": "IDR,EUR",
  • "amount": 100
}

Response samples

Content type
application/json
{
  • "tool": "tools/exchange-rate",
  • "costMicroUsd": 2000,
  • "base": "USD",
  • "rates": {
    },
  • "amount": 100,
  • "converted": {
    },
  • "as_of": "30 Jul 2026",
  • "source": "open.er-api.com",
  • "note": "Mid-market reference rates, not dealable quotes."
}

Look up domain registration, age and DNS.

$0.002000 per call, deducted from your prepaid balance. Charged only on success.

Registration and DNS for a domain in one call — { domain: "example.com" | "", records?: ["A","AAAA","MX","NS","TXT","CNAME","CAA"] }. Registrar, creation and expiry dates, age in days, status, nameservers and DNSSEC come from the registry own RDAP server; DNS answers by type; plus SPF, DMARC and the DMARC policy. registered is false when the registry has no such domain. TLDs that publish no RDAP (e.g. .io, .co) return registration null, named in degraded, with DNS still answered.

Authorizations:
glianaKey
Request Body schema: application/json
required
domain
required
string

Domain to look up, e.g. "example.com". A full URL is accepted and reduced to its hostname.

records
Array of arrays

DNS record types to resolve: any of A, AAAA, MX, NS, TXT, CNAME, CAA. Default A, AAAA, MX, NS, TXT.

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "domain": "glianalabs.com"
}

Response samples

Content type
application/json
{
  • "tool": "tools/domain-lookup",
  • "costMicroUsd": 2000,
  • "domain": "glianalabs.com",
  • "registered": true,
  • "registration": {
    },
  • "dns": {
    },
  • "email": {
    },
  • "degraded": [ ],
  • "sources": {}
}

Parse an Indonesian address into components.

$0.003000 per call, deducted from your prepaid balance. Charged only on success.

Parse a messy Indonesian address into components — { address }. kabupaten_kota and provinsi are resolved from official Kepmendagri data rather than from a model, so they cannot be invented, and verified reports where the model disagreed. Returns jalan, nomor, rt, rw, kelurahan, kecamatan, kabupaten_kota, provinsi, kode_pos, the official kode with coordinates, and a confidence. kecamatan/kelurahan/kode_pos are as written and unverified.

Authorizations:
glianaKey
Request Body schema: application/json
required
address
required
string

The free-text address to parse.

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "address": "Jl. Merdeka No. 12 RT 03/RW 05, Gedong Air, Tanjung Karang Barat, Bandar Lampung 35152"
}

Response samples

Content type
application/json
{
  • "tool": "tools/address-id",
  • "costMicroUsd": 3000,
  • "input": "Jl. Merdeka No. 12 RT 03/RW 05, Gedong Air, Tanjung Karang Barat, Bandar Lampung 35152",
  • "parsed": {
    },
  • "wilayah": {
    },
  • "verified": {
    },
  • "confidence": "high",
  • "notes": [ ]
}

Generate marketplace listing copy from a photo.

$0.008000 per call, deducted from your prepaid balance. Charged only on success.

Turn a product photo into ready-to-post marketplace copy — { image_url | image_base64 }. Returns title and description in BOTH Indonesian and English, plus category, condition, material, colours and search tags. Written from what is visible only: brands, sizes, materials and warranties are never inferred, and anything the photo does not show is null. Nothing is stored. FILE INPUT: if the image is already on the web or your own storage, pass image_url — we fetch it server-side at datacenter speed, which is the fastest option by far. Sending it inline as image_base64 is simplest and stores nothing anywhere, but base64 adds ~33% to the bytes and you pay your own upload speed, so it is best under ~1MB. For a large local file, upload the RAW bytes to POST /v1/media (free, ≤40MB) and pass the URL: same transfer as base64 minus the 33%, and identity endpoints delete the object as soon as they have read it.

Authorizations:
glianaKey
Request Body schema: application/json
required
image_url
required
string

https URL of the product photo.

property name*
additional property
any

Responses

Request samples

Content type
application/json

Response samples

Content type
application/json
{
  • "tool": "tools/product-listing",
  • "costMicroUsd": 8000,
  • "listing": {
    },
  • "model": "@cf/mistralai/mistral-small-3.1-24b-instruct"
}

Read an ID document into structured JSON.

$0.005000 per call, deducted from your prepaid balance. Charged only on success.

Read an identity document (Indonesian KTP/SIM/KK/NPWP, foreign passport or driving licence) into structured JSON — { image_url | image_base64 }. Indonesian documents also get structural NIK verification (region code, encoded birth date and gender) as a confidence signal, not proof of authenticity. Nothing is stored, and no face matching is performed. FILE INPUT: if the image is already on the web or your own storage, pass image_url — we fetch it server-side at datacenter speed, which is the fastest option by far. Sending it inline as image_base64 is simplest and stores nothing anywhere, but base64 adds ~33% to the bytes and you pay your own upload speed, so it is best under ~1MB. For a large local file, upload the RAW bytes to POST /v1/media (free, ≤40MB) and pass the URL: same transfer as base64 minus the 33%, and identity endpoints delete the object as soon as they have read it.

Authorizations:
glianaKey
Request Body schema: application/json
required
image_url
required
string

https URL of the identity document to read.

property name*
additional property
any

Responses

Request samples

Content type
application/json

Response samples

Content type
application/json
{
  • "tool": "tools/ocr-id",
  • "costMicroUsd": 5000,
  • "fields": {
    },
  • "verification": {
    },
  • "model": "@cf/mistralai/mistral-small-3.1-24b-instruct"
}

Detect faces with boxes, age and gender.

$0.003000 per call, deducted from your prepaid balance. Charged only on success.

Detect faces → boxes + score + age/gender, no embeddings — { image_url | image_base64 }. FILE INPUT: if the image is already on the web or your own storage, pass image_url — we fetch it server-side at datacenter speed, which is the fastest option by far. Sending it inline as image_base64 is simplest and stores nothing anywhere, but base64 adds ~33% to the bytes and you pay your own upload speed, so it is best under ~1MB. For a large local file, upload the RAW bytes to POST /v1/media (free, ≤40MB) and pass the URL: same transfer as base64 minus the 33%, and identity endpoints delete the object as soon as they have read it.

Authorizations:
glianaKey
Request Body schema: application/json
required
image_url
required
string

https URL of the image to read. Use image_base64 instead to send bytes inline.

property name*
additional property
any

Responses

Request samples

Content type
application/json

Response samples

Content type
application/json
{
  • "tool": "tools/face-detect",
  • "costMicroUsd": 3000
}

Extract a 512-d embedding for each face.

$0.006000 per call, deducted from your prepaid balance. Charged only on success.

Detect every face → 512-d ArcFace embedding per face (+ bbox, score, age/gender) — { image_url | image_base64 }. FILE INPUT: if the image is already on the web or your own storage, pass image_url — we fetch it server-side at datacenter speed, which is the fastest option by far. Sending it inline as image_base64 is simplest and stores nothing anywhere, but base64 adds ~33% to the bytes and you pay your own upload speed, so it is best under ~1MB. For a large local file, upload the RAW bytes to POST /v1/media (free, ≤40MB) and pass the URL: same transfer as base64 minus the 33%, and identity endpoints delete the object as soon as they have read it.

Authorizations:
glianaKey
Request Body schema: application/json
required
image_url
required
string

https URL of the image to read. Use image_base64 instead to send bytes inline.

property name*
additional property
any

Responses

Request samples

Content type
application/json

Response samples

Content type
application/json
{
  • "tool": "tools/face-embed",
  • "costMicroUsd": 6000
}

Compare two faces for similarity and match.

$0.011000 per call, deducted from your prepaid balance. Charged only on success.

Compare two faces → cosine similarity + match — { a:{image_url|image_base64}, b:{image_url|image_base64} }. FILE INPUT: if the image is already on the web or your own storage, pass image_url — we fetch it server-side at datacenter speed, which is the fastest option by far. Sending it inline as image_base64 is simplest and stores nothing anywhere, but base64 adds ~33% to the bytes and you pay your own upload speed, so it is best under ~1MB. For a large local file, upload the RAW bytes to POST /v1/media (free, ≤40MB) and pass the URL: same transfer as base64 minus the 33%, and identity endpoints delete the object as soon as they have read it.

Authorizations:
glianaKey
Request Body schema: application/json
required
a
required
object

First face to compare: { image_url } or { image_base64 }.

b
required
object

Second face to compare: { image_url } or { image_base64 }.

property name*
additional property
any

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{
  • "tool": "tools/face-compare",
  • "costMicroUsd": 11000
}

Read an ID document and match it to a selfie.

$0.015000 per call, deducted from your prepaid balance. Charged only on success.

Onboarding in one call: read an identity document AND compare the photo on it against a selfie — { id_image:{image_url|image_base64}, selfie:{image_url|image_base64} }. Cheaper than tools/ocr-id plus tools/face-compare separately, and the document is fetched once instead of twice. Returns { document:{fields,verification}, face:{similarity,match,threshold} } — measurements only, NO pass/fail verdict, because the threshold that matters is yours. There is no liveness check, so a photo of a photo can match: treat the result as a signal for your own decision, not proof of identity. Nothing is stored. FILE INPUT: if the image is already on the web or your own storage, pass image_url — we fetch it server-side at datacenter speed, which is the fastest option by far. Sending it inline as image_base64 is simplest and stores nothing anywhere, but base64 adds ~33% to the bytes and you pay your own upload speed, so it is best under ~1MB. For a large local file, upload the RAW bytes to POST /v1/media (free, ≤40MB) and pass the URL: same transfer as base64 minus the 33%, and identity endpoints delete the object as soon as they have read it.

Authorizations:
glianaKey
Request Body schema: application/json
required
id_image
required
object

The identity document: { image_url } or { image_base64 }.

selfie
required
object

The selfie to match against the document: { image_url } or { image_base64 }.

property name*
additional property
any

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{
  • "tool": "tools/kyc-verify",
  • "costMicroUsd": 15000,
  • "document": {
    },
  • "face": {
    },
  • "model": "@cf/mistralai/mistral-small-3.1-24b-instruct"
}

Fetch reported financials from SEC filings.

$0.010000 per call, deducted from your prepaid balance. Charged only on success.

What a US public company reported to the SEC — { ticker, concept?, limit? }. Revenue, net income, assets, liabilities, cash and shares outstanding per fiscal period, newest first, parsed from XBRL. concept narrows to one us-gaap tag. Returns company { name, ticker, cik } and facts[] with concept, unit, period, end, value and the form it came from. NOT a share price.

Authorizations:
glianaKey
Request Body schema: application/json
required
ticker
required
string

US stock ticker, e.g. AAPL. Case-insensitive.

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "ticker": "AAPL"
}

Response samples

Content type
application/json
{
  • "tool": "tools/stock-fundamentals",
  • "costMicroUsd": 10000,
  • "company": {
    },
  • "facts": [
    ]
}

List recent SEC filings for a company.

$0.005000 per call, deducted from your prepaid balance. Charged only on success.

Source documents for a US public company — { ticker, form?, limit? }. Newest first, each with form type, filing date and a direct link. form filters to one type such as 10-K, 10-Q, 8-K or 4. Returns company { name, ticker, cik, sic } and filings[]. An empty list for a valid form is an answer, not an error.

Authorizations:
glianaKey
Request Body schema: application/json
required
ticker
required
string

US stock ticker, e.g. AAPL. Case-insensitive.

form
required
string

Optional SEC form type to filter to, e.g. 10-K, 10-Q, 8-K, 4. Omit for all forms.

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "ticker": "AAPL",
  • "form": "10-K"
}

Response samples

Content type
application/json
{}

Summarize a US company from SEC filings.

$0.012000 per call, deducted from your prepaid balance. Charged only on success.

Profile, latest reported figures and recent filings in one call — { ticker }. Replaces stock-fundamentals plus stock-filings when sizing up a company, and each section degrades on its own so a slow upstream nulls one field rather than failing the brief. Returns company, latest{} keyed by metric, and filings[]. Reported figures only, no market price.

Authorizations:
glianaKey
Request Body schema: application/json
required
ticker
required
string

US stock ticker, e.g. AAPL. Case-insensitive.

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "ticker": "AAPL"
}

Response samples

Content type
application/json
{
  • "tool": "tools/stock-brief",
  • "costMicroUsd": 12000,
  • "company": {
    },
  • "latest": {
    },
  • "filings": []
}

List insider trades from SEC Form 4 filings.

$0.015000 per call, deducted from your prepaid balance. Charged only on success.

Who inside a US public company bought or sold its stock — { ticker, limit? }. Parsed from the Form 4s officers, directors and 10% owners must file. Returns trades[] with person, relationship, date, the action in words (sale, open-market purchase, grant, option exercise), shares, price per share and total value, plus the filing URL. limit is Form 4 filings read, default 5, max 20 — each is a separate fetch. Reported trades, not a signal: a Form 4 may be filed up to two business days after the trade.

Authorizations:
glianaKey
Request Body schema: application/json
required
ticker
required
string

US stock ticker, e.g. AAPL. Case-insensitive.

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "ticker": "AAPL"
}

Response samples

Content type
application/json
{
  • "tool": "tools/insider-trades",
  • "costMicroUsd": 15000,
  • "company": {
    },
  • "trades": []
}

Search the full text of SEC filings since 2001.

$0.005000 per call, deducted from your prepaid balance. Charged only on success.

Filings by what they say — { query, ticker?, form?, from?, to?, limit? }. query takes words, quoted phrases, OR and -exclusions; ticker narrows to one company, form to one or more types, from/to to filing dates. Returns total and filings[] with form, filed date, period, companies, the matched document and a direct link, one row per filing.

Authorizations:
glianaKey
Request Body schema: application/json
required
query
required
string

What to find in filing text. Words, "quoted phrases", OR and -exclusions, up to 200 characters.

ticker
string

Optional US stock ticker to search one company's filings only, e.g. AAPL.

form
string

Optional SEC form type, or up to 5 as an array or comma list, e.g. 10-K or ["8-K", "10-Q"].

from
string

Optional earliest filing date, YYYY-MM-DD, 2001-01-01 or later.

to
string

Optional latest filing date, YYYY-MM-DD.

limit
integer

Max filings to return. Default 10, max 100.

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "query": "\"artificial intelligence\""
}

Response samples

Content type
application/json
{
  • "tool": "tools/filing-search",
  • "costMicroUsd": 5000,
  • "query": "\"artificial intelligence\"",
  • "total": 876,
  • "totalIsLowerBound": false,
  • "filings": [
    ]
}

List material events from SEC Form 8-K filings.

$0.005000 per call, deducted from your prepaid balance. Charged only on success.

What happened at a US public company — { ticker, item?, limit? }. Each 8-K with its item codes named in words: officer departures (5.02), material agreements (1.01), results (2.02), auditor changes (4.01), cybersecurity incidents (1.05). item narrows to one code. Returns company and events[] with form, filed and event dates, items[] and a link.

Authorizations:
glianaKey
Request Body schema: application/json
required
ticker
required
string

US stock ticker, e.g. AAPL. Case-insensitive.

item
string

Optional Form 8-K item code to filter to, e.g. 5.02 (officer changes) or 1.01 (material agreements).

limit
integer

Max 8-K filings to return, newest first. Default 10, max 50.

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "ticker": "AAPL"
}

Response samples

Content type
application/json
{
  • "tool": "tools/filing-events",
  • "costMicroUsd": 5000,
  • "company": {
    },
  • "events": []
}

List 5% ownership stakes from SEC 13D and 13G filings.

$0.010000 per call, deducted from your prepaid balance. Charged only on success.

Who holds more than 5% of a US public company — { ticker, type?, limit? }. 13D marks a holder that may seek influence (activist), 13G a passive stake. Returns stakes[] with form, activist, filed and event dates, holders[] with shares and percent, the stated purpose for a 13D, and a link. limit is filings read, default 5, max 10. Pre-December-2024 filings return holder names only.

Authorizations:
glianaKey
Request Body schema: application/json
required
ticker
required
string

US stock ticker, e.g. AAPL. Case-insensitive.

type
string

Optional: "13d" for activist stakes or "13g" for passive ones. Omit for both.

limit
integer

Max filings to read, newest first. Default 5, max 10 — each one is a separate fetch.

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "ticker": "AAPL"
}

Response samples

Content type
application/json
{
  • "tool": "tools/ownership-changes",
  • "costMicroUsd": 10000,
  • "company": {
    },
  • "stakes": []
}

List fund manager holdings from SEC Form 13F filings.

$0.010000 per call, deducted from your prepaid balance. Charged only on success.

What an investment manager held at a quarter end — { manager, quarter?, issuer?, limit? }. manager is a name or CIK; quarter like 2026Q2, default latest; issuer filters by name or CUSIP. Returns manager, period, totalValue, positions and holdings[] with issuer, cusip, value, shares and percent of portfolio, largest first. Keyed by manager: it does not answer who owns a given company.

Authorizations:
glianaKey
Request Body schema: application/json
required
manager
required
string

The investment manager: its name as filed with the SEC (e.g. Berkshire Hathaway) or its CIK.

quarter
string

Optional quarter of the report, e.g. 2026Q2. Default: the latest 13F filed.

issuer
string

Optional filter: a company name fragment (e.g. APPLE) or a 9-character CUSIP.

limit
integer

Max holdings to return, largest first. Default 25, max 200.

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "manager": "Berkshire Hathaway"
}

Response samples

Content type
application/json
{
  • "tool": "tools/institutional-holders",
  • "costMicroUsd": 10000,
  • "manager": {
    },
  • "period": "2026-06-30",
  • "filed": "2026-08-14",
  • "totalValue": 299253556246,
  • "positions": 29,
  • "holdings": [
    ],
}

List planned insider sales from SEC Form 144 notices.

$0.010000 per call, deducted from your prepaid balance. Charged only on success.

Insiders who intend to sell a US public company stock — { ticker, limit? }. Form 144 is filed on or before the sale, so it looks forward where insider-trades looks back. Returns notices[] with person, relationship, shares, market value, percent of outstanding, approximate sale date, broker, how the shares were acquired, 10b5-1 plan adoption dates, sales in the past 3 months and a link. limit is notices read, default 5, max 20.

Authorizations:
glianaKey
Request Body schema: application/json
required
ticker
required
string

US stock ticker, e.g. AAPL. Case-insensitive.

limit
integer

Max Form 144 notices to read, newest first. Default 5, max 20 — each one is a separate fetch.

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "ticker": "AAPL"
}

Response samples

Content type
application/json
{
  • "tool": "tools/planned-insider-sales",
  • "costMicroUsd": 10000,
  • "company": {
    },
  • "notices": [
    ],
  • "noticesRead": 5
}

Answer questions about an SEC filing with quoted passages.

$0.100000 per call, deducted from your prepaid balance. Charged only on success.

A model reads a US public company filing and answers from it — { ticker, form?, accession?, question?, compare_to_prior? }. form defaults to 10-K; compare_to_prior also reads the previous filing of the same form and reports what changed. Returns answer, passages[] each matched verbatim against the filing, and links. Flat price for up to 700,000 characters of filing text; larger filings are refused before payment. Never investment advice.

Authorizations:
glianaKey
Request Body schema: application/json
required
ticker
required
string

US stock ticker, e.g. AAPL. Case-insensitive.

form
string

Optional form to read, newest first: 10-K (default), 10-Q, 20-F, 40-F, 8-K, 6-K, DEF 14A, S-1 or F-1.

accession
string

Optional accession number of one specific filing, e.g. 0000320193-25-000079. Overrides form.

question
string

Optional question to answer from the filing, up to 500 characters. Omit for the most important disclosures.

compare_to_prior
boolean

Optional. true also reads the previous filing of the same form and reports what changed. Both must fit the 700,000-character cap together.

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "ticker": "AAPL"
}

Response samples

Content type
application/json
{
  • "tool": "tools/filing-digest",
  • "costMicroUsd": 100000,
  • "company": {
    },
  • "filing": {},
  • "question": "What does the filing say about tariffs?",
  • "answer": "Apple names new and higher tariffs as a risk to its costs and margins, and says trade measures can affect its supply chain and demand.",
  • "passages": [
    ],
  • "charsRead": 209892,
  • "model": "gemini-3.5-flash-lite"
}

Summarize a YouTube video up to 60 minutes.

$0.150000 per call, deducted from your prepaid balance. Charged only on success.

Summarize a YouTube video (Gemini watches the URL) — { url, style?: bullets|paragraph|chapters, language? }; videos ≤60 min.

Authorizations:
glianaKey
Request Body schema: application/json
required
url
required
string

The YouTube video URL to summarise.

style
required
string

Output style, e.g. "bullets".

property name*
additional property
any

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{
  • "tool": "tools/youtube-summary",
  • "costMicroUsd": 150000,
  • "summary": "- The video explains ...\n- It then shows ...",
  • "video": {
    }
}

Extract typed JSON from a page by schema.

$0.010000 per call, deducted from your prepaid balance. Charged only on success.

Render a page and return JSON matching a schema you declare — { url, schema, prompt? }. schema is { field: "description" } or { field: { type, description } }, type one of string|number|boolean|string[]. Values are coerced to the declared types; anything the page does not state is null and listed in missing rather than invented.

Authorizations:
glianaKey
Request Body schema: application/json
required
url
required
string

https URL of the page to extract from.

schema
required
object

Object describing the fields to extract: { field: "what it is" }.

property name*
additional property
any

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{
  • "tool": "tools/extract",
  • "costMicroUsd": 10000,
  • "data": {
    },
  • "missing": [ ]
}

Scrape a rendered page to clean markdown.

$0.005000 per call, deducted from your prepaid balance. Charged only on success.

Render a page (JS) → clean markdown — { url }.

Authorizations:
glianaKey
Request Body schema: application/json
required
url
required
string

https URL of the page to fetch as markdown.

property name*
additional property
any

Responses

Request samples

Content type
application/json

Response samples

Content type
application/json
{
  • "tool": "tools/scrape",
  • "costMicroUsd": 5000,
  • "markdown": "# Example\n\nSome page text..."
}

Capture a page screenshot as a hosted PNG.

$0.005000 per call, deducted from your prepaid balance. Charged only on success.

Capture a page as PNG → hosted URL — { url, fullPage? }.

Authorizations:
glianaKey
Request Body schema: application/json
required
url
required
string

https URL of the page to capture.

fullPage
boolean

Capture the whole scrollable page rather than the viewport.

width
number

Viewport width in pixels (320-1920).

height
number

Viewport height in pixels (320-1920).

property name*
additional property
any

Responses

Request samples

Content type
application/json

Response samples

Content type
application/json
{}

Render a branded 1200x630 OG card as a PNG.

$0.020000 per call, deducted from your prepaid balance. Charged only on success.

Render a 1200×630 branded OG/social card from a title → PNG URL.

Authorizations:
glianaKey
Request Body schema: application/json
required
title
required
string

Headline text, rendered largest.

subtitle
required
string

Secondary line under the title.

theme
string

Visual theme for the card.

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "title": "Your headline",
  • "subtitle": "a short tagline"
}

Response samples

Content type
application/json
{}

Render a 1280x720 YouTube thumbnail as a PNG.

$0.020000 per call, deducted from your prepaid balance. Charged only on success.

Render a 1280×720 YouTube thumbnail (bold title over an optional background image) → PNG URL.

Authorizations:
glianaKey
Request Body schema: application/json
required
title
required
string

Headline text, rendered largest.

subtitle
required
string

Secondary line under the title.

background
string

https URL of a photo to use as the background. Strongly recommended — text on a plain gradient reads as a blog header, not a thumbnail.

accent
string

Accent bar colour as a hex value, e.g. #f59e0b.

property name*
additional property
any

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{}

Render a shareable quote image as a PNG.

$0.020000 per call, deducted from your prepaid balance. Charged only on success.

Render a 1200×630 shareable quote image → PNG URL.

Authorizations:
glianaKey
Request Body schema: application/json
required
quote
required
string

The quotation to render.

author
required
string

Who the quotation is attributed to.

theme
string

Visual theme for the card.

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "quote": "Make it work, make it right, make it fast.",
  • "author": "Kent Beck"
}

Response samples

Content type
application/json
{}

Render a code snippet as a dark window PNG.

$0.020000 per call, deducted from your prepaid balance. Charged only on success.

Render a code snippet as a clean dark window image → PNG URL.

Authorizations:
glianaKey
Request Body schema: application/json
required
code
required
string

The source code to render.

title
required
string

Filename shown in the window chrome, e.g. "app.js".

language
string

Language for syntax highlighting, e.g. ts, py.

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "code": "console.log('hello')",
  • "title": "app.js"
}

Response samples

Content type
application/json
{}

Render a tweet-style card image as a PNG.

$0.020000 per call, deducted from your prepaid balance. Charged only on success.

Render a tweet-style card → PNG URL.

Authorizations:
glianaKey
Request Body schema: application/json
required
text
required
string

The tweet body to render.

name
required
string

Display name shown on the card.

handle
required
string

Account handle shown under the name, without the @.

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "text": "shipping > talking",
  • "name": "GlianaAI",
  • "handle": "glianalabs"
}

Response samples

Content type
application/json
{}

Render meme text over an image as a PNG.

$0.020000 per call, deducted from your prepaid balance. Charged only on success.

Top/bottom Impact text over an image → PNG URL.

Authorizations:
glianaKey
Request Body schema: application/json
required
image
required
string

https URL of the background image.

top
required
string

Caption rendered across the top.

bottom
required
string

Caption rendered across the bottom.

property name*
additional property
any

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{}

Render a social card sized by preset as PNG.

$0.020000 per call, deducted from your prepaid balance. Charged only on success.

Templated social card sized by preset (og/instagram-square/story/linkedin/podcast) → PNG URL.

Authorizations:
glianaKey
Request Body schema: application/json
required
preset
required
string

Layout preset.

title
required
string

Headline text, rendered largest.

subtitle
required
string

Secondary line under the title.

background
string

https URL of a background photo.

accent
string

Accent colour as a hex value.

theme
string

Visual theme for the card.

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "preset": "instagram-square",
  • "title": "Big news",
  • "subtitle": "we shipped it"
}

Response samples

Content type
application/json
{}

Scrape a URL title and render an OG card PNG.

$0.030000 per call, deducted from your prepaid balance. Charged only on success.

Scrape a URL's title + render a branded OG card from it → PNG URL.

Authorizations:
glianaKey
Request Body schema: application/json
required
url
required
string

https URL to read and build a social card from.

property name*
additional property
any

Responses

Request samples

Content type
application/json

Response samples

Content type
application/json
{}

List Indonesian provinces and regencies.

Free — costs nothing against your balance.

No charge. Official Indonesian administrative regions — 38 provinsi and 514 kabupaten/kota per Kepmendagri No. 300.2.2-2430 Tahun 2025, with the official kode, capital, centroid, timezone, area and population. Call with ?kode=18 for one region (a provinsi also returns its regencies), ?q=bandung to search by name, ?induk=18 to list one province, or no params for all 38 provinces. Level 1-2 only — kecamatan and desa are not included.

query Parameters
kode
string

Official code, e.g. 18 (provinsi) or 18.71 (kabupaten/kota).

q
string

Name search; best match first, kota preferred over kabupaten for an ambiguous name.

induk
string

Parent provinsi code — lists every kabupaten/kota inside it.

level
string
Enum: "provinsi" "kabupaten_kota"

Restrict to provinsi or kabupaten_kota.

Responses

Request samples

curl "https://api.glianalabs.com/v1/tools/wilayah"
# Free — no key required.

Response samples

Content type
application/json
{
  • "source": "Kepmendagri No. 300.2.2-2430 Tahun 2025 (via github.com/cahyadsn/wilayah)",
  • "scope": "provinsi + kabupaten/kota (level 1-2)",
  • "count": 3,
  • "results": [
    ]
}

Verify an Indonesian NIK structurally.

Free — costs nothing against your balance.

No charge, no model call, instant. Checks an Indonesian NIK (national ID number) against arithmetic: 16-digit format, the region code in digits 1-4 resolved against official Kepmendagri data, and the birth date and gender the number encodes. Pass &birth_date=DD-MM-YYYY and &gender=L|P to cross-check what a user typed against what the number says — that is what catches a transposed digit. Proves consistency, NOT authenticity: a well-formed fabrication passes.

query Parameters
nik
required
string

16-digit Indonesian NIK. Spaces are tolerated.

birth_date
string

Optional claimed birth date to cross-check, e.g. 01-02-1990.

gender
string

Optional claimed gender to cross-check: L/LAKI-LAKI/M/MALE or P/PEREMPUAN/F/FEMALE.

Responses

Request samples

curl "https://api.glianalabs.com/v1/tools/verify-nik"
# Free — no key required.

Response samples

Content type
application/json
{
  • "ok": true,
  • "format": true,
  • "region": {
    },
  • "birth_date": "1990-02-01",
  • "gender": "P",
  • "agrees": {
    },
  • "notes": [ ],
  • "note": "Structural check only: 16-digit format, the region code against official Kepmendagri data, and the birth date and gender the number encodes. It cannot tell a real NIK from a well-formed fabrication."
}

Convert a number into Indonesian words.

Free — costs nothing against your balance.

No charge, no model call. Indonesian number-to-words for the amount-in-words line required on invoices, kwitansi and cheques. Pass ?n=249000 (Indonesian thousands separators accepted). Returns the plain words and the capitalised rupiah phrasing. Whole numbers only — decimals are not spelled.

query Parameters
n
required
string

Whole number, e.g. 249000 or 249.000.

Responses

Request samples

curl "https://api.glianalabs.com/v1/tools/terbilang"
# Free — no key required.

Response samples

Content type
application/json
{
  • "number": 249000,
  • "terbilang": "dua ratus empat puluh sembilan ribu",
  • "rupiah": "Dua ratus empat puluh sembilan ribu rupiah"
}

Verify an Indonesian tax number structurally.

Free — costs nothing against your balance.

No charge, no model call. A 16-digit NPWP is the holder's NIK (since 2024) and gets the full region, birth-date and gender check; the 15-digit legacy form is decomposed into taxpayer id, KPP code and branch code and checked for structure only. Neither proves the number was actually issued — checks says exactly what was tested.

query Parameters
npwp
required
string

15 or 16 digits; dots and dashes ignored.

Responses

Request samples

curl "https://api.glianalabs.com/v1/tools/verify-npwp"
# Free — no key required.

Response samples

Content type
application/json
{
  • "ok": true,
  • "format": "legacy15",
  • "normalized": "01.234.567.8-901.000",
  • "parts": {
    },
  • "nik": null,
  • "checks": [
    ],
  • "notes": [
    ]
}

Parse a QRIS code and optionally set an amount.

Free — costs nothing against your balance.

No charge, no model call. Decodes a QRIS payment code (EMVCo TLV) into merchant name, city, NMID, acquirer, MCC, currency and amount, and reports whether the CRC-16 is intact — valid_crc false means the code is damaged or mistyped and nothing else should be trusted. Add &amount=50000 to also get the same merchant code with that amount set (the standard static-to-dynamic conversion): the merchant account template is preserved byte for byte, the CRC recomputed, and the result re-parsed before it is returned. Does NOT mint a merchant QR — the NMID is issued by an acquirer and is never invented. Test with your acquirer before production use.

query Parameters
payload
required
string

The QRIS string from the QR code.

amount
string

Optional amount to set, e.g. 50000. Refused if the source CRC is invalid.

Responses

Request samples

curl "https://api.glianalabs.com/v1/tools/qris"
# Free — no key required.

Response samples

Content type
application/json
{
  • "valid_crc": true,
  • "crc": {
    },
  • "type": "static",
  • "merchant_name": "WARUNG GLIANA",
  • "merchant_city": "BANDAR LAMPUNG",
  • "country": "ID",
  • "currency": "360",
  • "amount": null,
  • "mcc": "5814",
  • "nmid": "ID1234567890123",
  • "acquirer": "ID.CO.QRIS.WWW"
}

Get Islamic prayer times for a place and date.

Free — costs nothing against your balance.

No charge. Jadwal sholat (imsak, subuh, terbit, dzuhur, ashar, maghrib, isya) computed from solar position. Pass ?city=Bandar Lampung (any Indonesian kabupaten/kota name or kode — the coordinate and timezone come from the official wilayah data) or ?lat=&lng=&tz=. ?days=30 returns a whole month in one call. Methods: kemenag (default, Indonesia), mwl, isna, egypt, makkah, karachi; madhab shafi (default) or hanafi changes ashar only. Calculated times are typically within 1-2 minutes of the official Kemenag table and are not a substitute for a local mosque schedule. Where the sun never reaches the required depression (high latitudes in summer) the affected times are null rather than guessed.

query Parameters
city
string

Indonesian kabupaten/kota name or kode. Alternative to lat/lng/tz.

lat
number

Latitude, -90..90. Requires lng.

lng
number

Longitude, -180..180.

tz
number

UTC offset in hours (7 WIB, 8 WITA, 9 WIT). Defaults to the offset implied by lng.

date
string

YYYY-MM-DD. Defaults to today in the target timezone.

days
integer [ 1 .. 31 ]

Consecutive days to return, 1-31. Default 1.

method
string
Enum: "kemenag" "mwl" "isna" "egypt" "makkah" "karachi"

Calculation authority.

madhab
string
Enum: "shafi" "hanafi"

Asr shadow rule.

Responses

Request samples

curl "https://api.glianalabs.com/v1/tools/prayer-times"
# Free — no key required.

Response samples

Content type
application/json
{
  • "location": {
    },
  • "method": {
    },
  • "madhab": "shafi",
  • "note": "Calculated from solar position, typically within 1-2 minutes of the official Kemenag table. Not a substitute for your local mosque schedule.",
  • "date": "2026-07-30",
  • "times": {
    }
}

video

Generate a video from a text prompt or an image.

$0.0001–$60 per call, depending on model and input, deducted from your prepaid balance. Quote it first with GET /v1/price?model=; the exact amount charged comes back in x-gliana-charged-micro-usd.

Capability endpoint — pick any matching model with GET /v1/models and pass it as { model }.

Authorizations:
glianaKey
Request Body schema: application/json
required
model
required
string

Model id or full run id (see GET /v1/models).

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "model": "wan-2.7-i2v",
  • "prompt": "a timelapse of clouds over mountains"
}

Response samples

Content type
application/json
{}

Generate a video from text via an image step.

$0.445550 per call, deducted from your prepaid balance. Charged only on success.

Recipe: text → image → animated video (cheapest path to a video; better subject control). Multi-model pipeline from { prompt }. Override steps with { imageModel, videoModel }; { motionPrompt, duration, resolution } tune the video. Returns each step's output + the final url.

Authorizations:
glianaKey
Request Body schema: application/json
required
prompt
required
string

Text description of the subject/scene the pipeline should generate.

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "prompt": "an italian-brainrot cat-shark hybrid, 3d meme",
  • "motionPrompt": "it dances and spins"
}

Generate a video with audio from a text prompt.

$0.844300 per call, deducted from your prepaid balance. Charged only on success.

Recipe: text → image → video with native AUDIO. Multi-model pipeline from { prompt }. Override steps with { imageModel, videoModel }; { motionPrompt, duration, resolution } tune the video. Returns each step's output + the final url.

Authorizations:
glianaKey
Request Body schema: application/json
required
prompt
required
string

Text description of the subject/scene the pipeline should generate.

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "prompt": "an italian-brainrot cat-shark hybrid, 3d meme",
  • "motionPrompt": "it dances and spins"
}

Generate an HD video from text via an image.

$0.470750 per call, deducted from your prepaid balance. Charged only on success.

Recipe: text → higher-fidelity image → animated video. Multi-model pipeline from { prompt }. Override steps with { imageModel, videoModel }; { motionPrompt, duration, resolution } tune the video. Returns each step's output + the final url.

Authorizations:
glianaKey
Request Body schema: application/json
required
prompt
required
string

Text description of the subject/scene the pipeline should generate.

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "prompt": "an italian-brainrot cat-shark hybrid, 3d meme",
  • "motionPrompt": "it dances and spins"
}

Generate a random brainrot character video.

$0.997500 per call, deducted from your prepaid balance. Charged only on success.

Recipe: random Italian-brainrot character → animated video with audio (also the brainrot-video model). Multi-model pipeline. Override steps with { imageModel, videoModel }; { motionPrompt, duration, resolution } tune the video. Returns each step's output + the final url.

Authorizations:
glianaKey
Request Body schema: application/json
optional
prompt
string

Text description of the subject/scene the pipeline should generate.

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "motionPrompt": "it dances and bounces"
}

Check the prepaid balance behind an API key.

Free — costs nothing against your balance.

No charge. Send Authorization: Bearer gk_…. Callers who cannot settle per call from a wallet can instead hold a prepaid balance (topped up in the dashboard) and spend it with an API key; every paid endpoint accepts either. Returns the remaining balance in micro-USD.

Responses

Request samples

curl "https://api.glianalabs.com/v1/keys/balance"
# Free — no key required.

Response samples

Content type
application/json
{
  • "account_id": "string",
  • "balance_micro_usd": 0,
  • "balance_usd": "string"
}

Find which endpoint fits what you are trying to do.

Free — costs nothing against your balance.

No charge, and it never runs a model. Pass ?intent= and get ranked candidate endpoints with their prices. Keyword-matched, not LLM-backed, so treat the result as candidates rather than a decision — confirm with GET /v1/price and GET /v1/schema.

query Parameters
intent
required
string

What you are trying to do, in plain words.

limit
integer

Maximum candidates to return (1-20, default 5).

Responses

Request samples

curl "https://api.glianalabs.com/v1/consult"
# Free — no key required.

Get call volume, rail status and catalog size.

Free — costs nothing against your balance.

No charge. Activity counts and what is live; no revenue figures are published here.

Responses

Request samples

curl "https://api.glianalabs.com/v1/stats"
# Free — no key required.

Fetch the agent onboarding guide as markdown.

Free — costs nothing against your balance.

No charge. One document an agent can be pointed at to learn how to make its first paid call — frontmatter plus install snippets. Links to the live price and schema endpoints rather than restating them, so it cannot go stale.

Responses

Request samples

curl "https://api.glianalabs.com/skill.md"
# Free — no key required.

List all available models with per-call prices.

Free — costs nothing against your balance.

No charge — browsing the catalog costs nothing.

Responses

Request samples

curl "https://api.glianalabs.com/v1/models"
# Free — no key required.

Response samples

Content type
application/json
{
  • "models": [
    ]
}

Get a model's input fields, types and ranges.

Free — costs nothing against your balance.

No charge. Pass ?model=. Returns each input field with its type/enum/range and a fileRef flag for file inputs (image/video/audio) — those take a public URL; upload a local file at POST /v1/media.

query Parameters
model
required
string

Model id or full run id (see GET /v1/models).

Responses

Request samples

curl "https://api.glianalabs.com/v1/schema"
# Free — no key required.

Response samples

Content type
application/json
{
  • "model": "string",
  • "required": [
    ],
  • "props": { }
}

Get the exact price of a single model call.

Free — costs nothing against your balance.

No charge. Pass ?model= (plus any pricing-relevant fields as query params, e.g. duration/resolution) to get the exact per-call price.

query Parameters
model
required
string

Model id or full run id (see GET /v1/models).

Responses

Request samples

curl "https://api.glianalabs.com/v1/price"
# Free — no key required.

Response samples

Content type
application/json
{
  • "model": "string",
  • "costMicroUsd": 0,
  • "unit": "string",
  • "units": 0
}

Upload a source file and get a hosted URL.

Free — costs nothing against your balance.

No charge. Upload a video / image / audio file to use as a model input (e.g. an image-to-video source, or a video-to-video video_uri). Send the raw file as the request body with its Content-Type; max 40 MB. Returns { url } — pass that URL into the model field. Use this when an input is too big for an inline value, or you don't already have a public URL. FILE INPUT: if the video is already on the web or your own storage, pass video_uri — we fetch it server-side at datacenter speed, which is the fastest option by far. Sending it inline as video_base64 is simplest and stores nothing anywhere, but base64 adds ~33% to the bytes and you pay your own upload speed, so it is best under ~1MB. For a large local file, upload the RAW bytes to POST /v1/media (free, ≤40MB) and pass the URL: same transfer as base64 minus the 33%, and identity endpoints delete the object as soon as they have read it.

Request Body schema:
required

Raw file bytes. Content-Type must be video/, image/, or audio/*.

string <binary>

Responses

Request samples

curl -X POST "https://api.glianalabs.com/v1/media"
# Free — no key required.

Response samples

Content type
application/json
{}

Fetch a stored media file by its key.

Free — costs nothing against your balance.

No charge. Serves an uploaded input or a generated output by the key from its /v1/media URL (32-hex id, optional file extension). Responds with the raw file bytes.

path Parameters
key
required
string^[0-9a-f]{32}(\.[a-z0-9]+)?$

Media key from a /v1/media URL — 32 hex chars, optionally followed by a file extension (e.g. 0f...aa.png).

Responses

Request samples

curl "https://api.glianalabs.com/v1/media/YOUR_KEY"
# Free — no key required.
← Dashboard