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 90+ 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 90+ 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 90+ 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 }.

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 90+ 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 90+ 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 90+ 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 90+ 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 90+ 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).

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 90+ 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
{}

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"
}

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
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"
}

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
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": {
    }
}

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
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."
}

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
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": [ ]
}

Write 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.

Authorizations:
glianaKey
Request Body schema: application/json
required
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.

Authorizations:
glianaKey
Request Body schema: application/json
required
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.002000 per call, deducted from your prepaid balance. Charged only on success.

Detect faces → boxes + score + age/gender, no embeddings — { image_url | image_base64 }.

Authorizations:
glianaKey
Request Body schema: application/json
required
property name*
additional property
any

Responses

Request samples

Content type
application/json

Response samples

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

Extract a 512-d embedding for each face.

$0.005000 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 }.

Authorizations:
glianaKey
Request Body schema: application/json
required
property name*
additional property
any

Responses

Request samples

Content type
application/json

Response samples

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

Compare two faces for similarity and match.

$0.008000 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} }.

Authorizations:
glianaKey
Request Body schema: application/json
required
property name*
additional property
any

Responses

Request samples

Content type
application/json
{}

Response samples

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

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
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
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
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
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
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
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
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
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
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
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
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
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."
}

Spell a number in 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": [
    ]
}

Decode 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": {
    }
}

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"
}

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"
}

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.

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