provider-proxy

Provider Proxy Lookup

Changed on

What became of a fal submit or Google generate whose answer the caller lost, by the idempotency key it was sent under (provider_proxy.lookup). Never calls a provider, holds or charges: a lost submit is resolved here, never by sending it again.

post/provider-proxy/lookup

Request

  • Base URL
    https://api.moda.app/v1
  • URL
    https://api.moda.app/v1/provider-proxy/lookup
  • Auth
    HTTP bearer

Headers

Moda-Version'2026-04-12' | '2026-05-01'
Example:2026-05-01

Calendar-dated API version pin. New integrations should pin 2026-05-01 to opt into the newest response shapes. For back-compat the server also accepts requests with no header and resolves them to the current default (today: 2026-04-12); that default advances on each sunset date. Any unsupported value returns 400 unsupported_version.

Request body

provider'fal' | 'google' required
idempotency_keystring required

Example request

{
  "provider": "fal"
}

Response

Successful Response

state'admitted' | 'running' | 'canceled' | 'succeeded' | 'failed' | 'unknown' required

admitted: the first request is still at the provider. running/canceled: the provider accepted the job (envelope holds its handle). succeeded: it finished (envelope as a replay returns it). failed: the provider failed the job it accepted (envelope holds its handle); the key can never be admitted again. unknown: nothing is proven, including a key with no record; treat the generation as possibly running and ask again, never resend it.

envelopeobject nullable

The submit's success envelope, exactly as a replay returns it (fal: data.request_id and proof).

error_codestring nullable
settlementobject nullable

The recorded charge: {"state": "settled", "charged_credits": n}, or {"state": "pending"}.

reasonstring nullable

Why the answer is unknown: not_found, readmittable, unresolved, lookup_unavailable.

retry_after_msinteger nullable

When to ask again; absent for a settled answer.

Changes