Skip to content
Esc
navigateopen⌘Jpreview

SVG animation

Animates an input SVG from a remote or base64-encoded SVG source.

POST/v1/svgs/animations
Authorization
AuthorizationBearer token · headerrequired
Authentication via Bearer token API key
Header parameters
x-trace-idstring
Optional client-supplied trace identifier. The API echoes this value in `X-Trace-ID` and includes it in request logs for client-side correlation.
min length 1 · max length 256
Request body
requiredapplication/json
max_output_tokensinteger
Upper bound for output token count.
min 1 · max 65536
modelstringrequired
Model identifier to use for animation.
min length 1
reasoning_effortstring
Reasoning effort applied to this animation. When omitted, Arrow uses its default.
Allowed:lowmediumhighxhigh
streamboolean
When true, emits a Server-Sent Events stream.
default: false
temperaturenumber
Animation sampling temperature.
min 0 · max 2 · default: 1
promptstring
Optional animation prompt. If omitted, the model chooses a suitable animation.
min length 1
svg_sourceSvgInputReferencerequired
Remote or base64-encoded SVG source to animate.
Show properties
Any of:
SvgInputReferenceUrl
urlstring<uri>required
Network SVG URL. Only http/https URLs are allowed.
SvgInputReferenceBase64
base64stringrequired
Base64-encoded SVG payload.
min length 1 · max length 1066668
Responses
200When `stream` is false, returns `application/json` with the full animated SVG response. When `stream` is true, returns `text/event-stream` with Server-Sent Events. Each SSE message contains an `event:` line (`generating`, `reasoning`, `draft`, or `content`) and a `data:` line with a JSON payload. Token-priced models report measured totals in `usage` and omit `credits`. Fixed-credit models retain compatibility token totals of `0` and report `credits`; for streaming, fixed credits are emitted on completed `content` events. The stream terminates with `data: [DONE]`.
createdintegerrequired
min 0
creditsinteger
Credit cost for fixed-credit models. Omitted for token-priced models, whose measured totals are returned in `usage`.
min 0
dataany[]required
idstringrequired
min length 1
usageobject
Show properties
input_tokensintegerrequired
Measured token count for token-priced models. Fixed-credit models retain this field for compatibility and may report zero.
min 0
output_tokensintegerrequired
Measured token count for token-priced models. Fixed-credit models retain this field for compatibility and may report zero.
min 0
total_tokensintegerrequired
Measured token count for token-priced models. Fixed-credit models retain this field for compatibility and may report zero.
min 0
svg_scorenumber | null
400Bad request – malformed body, missing required fields, or invalid parameter values.
codestringrequired
Allowed:invalid_requestinvalid_api_keyunauthorizedfunding_payment_failedfunding_payment_method_requiredfunding_payment_action_requiredfunding_pendinginsufficient_creditsaccount_frozencontent_policy_violationmodel_not_foundpayload_too_largerequest_timeoutrate_limit_exceededoperation_rate_limit_exceededweekly_limit_exceededserver_errormodel_errormodel_unavailable
messagestringrequired
min length 1
request_idstringrequired
min length 1
retry_afterinteger
min 0 · max 86400
statusintegerrequired
min 400 · max 599
401Unauthorized – missing, malformed, revoked, otherwise invalid API credentials, or an organization that could not be resolved for billing.
codestringrequired
Allowed:invalid_requestinvalid_api_keyunauthorizedfunding_payment_failedfunding_payment_method_requiredfunding_payment_action_requiredfunding_pendinginsufficient_creditsaccount_frozencontent_policy_violationmodel_not_foundpayload_too_largerequest_timeoutrate_limit_exceededoperation_rate_limit_exceededweekly_limit_exceededserver_errormodel_errormodel_unavailable
messagestringrequired
min length 1
request_idstringrequired
min length 1
retry_afterinteger
min 0 · max 86400
statusintegerrequired
min 400 · max 599
402Payment required – the organization has insufficient credits.
codestringrequired
Allowed:invalid_requestinvalid_api_keyunauthorizedfunding_payment_failedfunding_payment_method_requiredfunding_payment_action_requiredfunding_pendinginsufficient_creditsaccount_frozencontent_policy_violationmodel_not_foundpayload_too_largerequest_timeoutrate_limit_exceededoperation_rate_limit_exceededweekly_limit_exceededserver_errormodel_errormodel_unavailable
messagestringrequired
min length 1
request_idstringrequired
min length 1
retry_afterinteger
min 0 · max 86400
statusintegerrequired
min 400 · max 599
403Forbidden – the account is frozen, the request is not allowed, or content policy rejected the request.
codestringrequired
Allowed:invalid_requestinvalid_api_keyunauthorizedfunding_payment_failedfunding_payment_method_requiredfunding_payment_action_requiredfunding_pendinginsufficient_creditsaccount_frozencontent_policy_violationmodel_not_foundpayload_too_largerequest_timeoutrate_limit_exceededoperation_rate_limit_exceededweekly_limit_exceededserver_errormodel_errormodel_unavailable
messagestringrequired
min length 1
request_idstringrequired
min length 1
retry_afterinteger
min 0 · max 86400
statusintegerrequired
min 400 · max 599
404Not found – the requested model does not exist.
codestringrequired
Allowed:invalid_requestinvalid_api_keyunauthorizedfunding_payment_failedfunding_payment_method_requiredfunding_payment_action_requiredfunding_pendinginsufficient_creditsaccount_frozencontent_policy_violationmodel_not_foundpayload_too_largerequest_timeoutrate_limit_exceededoperation_rate_limit_exceededweekly_limit_exceededserver_errormodel_errormodel_unavailable
messagestringrequired
min length 1
request_idstringrequired
min length 1
retry_afterinteger
min 0 · max 86400
statusintegerrequired
min 400 · max 599
408Request timeout – the request exceeded an allowed client-facing deadline.
codestringrequired
Allowed:invalid_requestinvalid_api_keyunauthorizedfunding_payment_failedfunding_payment_method_requiredfunding_payment_action_requiredfunding_pendinginsufficient_creditsaccount_frozencontent_policy_violationmodel_not_foundpayload_too_largerequest_timeoutrate_limit_exceededoperation_rate_limit_exceededweekly_limit_exceededserver_errormodel_errormodel_unavailable
messagestringrequired
min length 1
request_idstringrequired
min length 1
retry_afterinteger
min 0 · max 86400
statusintegerrequired
min 400 · max 599
413Payload too large – the submitted prompt, image, or SVG input is too large.
codestringrequired
Allowed:invalid_requestinvalid_api_keyunauthorizedfunding_payment_failedfunding_payment_method_requiredfunding_payment_action_requiredfunding_pendinginsufficient_creditsaccount_frozencontent_policy_violationmodel_not_foundpayload_too_largerequest_timeoutrate_limit_exceededoperation_rate_limit_exceededweekly_limit_exceededserver_errormodel_errormodel_unavailable
messagestringrequired
min length 1
request_idstringrequired
min length 1
retry_afterinteger
min 0 · max 86400
statusintegerrequired
min 400 · max 599
429Rate limit exceeded – request throughput or measured input/output token usage exhausted a binding ceiling. `operation_rate_limit_exceeded` identifies operation throughput; `rate_limit_exceeded` covers overall request and token rates. `X-RateLimit-Dimension` names the exact dimension. When `Retry-After` is present, retry after the indicated period.
codestringrequired
Allowed:invalid_requestinvalid_api_keyunauthorizedfunding_payment_failedfunding_payment_method_requiredfunding_payment_action_requiredfunding_pendinginsufficient_creditsaccount_frozencontent_policy_violationmodel_not_foundpayload_too_largerequest_timeoutrate_limit_exceededoperation_rate_limit_exceededweekly_limit_exceededserver_errormodel_errormodel_unavailable
messagestringrequired
min length 1
request_idstringrequired
min length 1
retry_afterinteger
min 0 · max 86400
statusintegerrequired
min 400 · max 599
500The request could not be completed. Please retry.
codestringrequired
Allowed:invalid_requestinvalid_api_keyunauthorizedfunding_payment_failedfunding_payment_method_requiredfunding_payment_action_requiredfunding_pendinginsufficient_creditsaccount_frozencontent_policy_violationmodel_not_foundpayload_too_largerequest_timeoutrate_limit_exceededoperation_rate_limit_exceededweekly_limit_exceededserver_errormodel_errormodel_unavailable
messagestringrequired
min length 1
request_idstringrequired
min length 1
retry_afterinteger
min 0 · max 86400
statusintegerrequired
min 400 · max 599
502Bad gateway – model execution returned an invalid or failed response.
codestringrequired
Allowed:invalid_requestinvalid_api_keyunauthorizedfunding_payment_failedfunding_payment_method_requiredfunding_payment_action_requiredfunding_pendinginsufficient_creditsaccount_frozencontent_policy_violationmodel_not_foundpayload_too_largerequest_timeoutrate_limit_exceededoperation_rate_limit_exceededweekly_limit_exceededserver_errormodel_errormodel_unavailable
messagestringrequired
min length 1
request_idstringrequired
min length 1
retry_afterinteger
min 0 · max 86400
statusintegerrequired
min 400 · max 599
503Service unavailable – model execution is temporarily unavailable.
codestringrequired
Allowed:invalid_requestinvalid_api_keyunauthorizedfunding_payment_failedfunding_payment_method_requiredfunding_payment_action_requiredfunding_pendinginsufficient_creditsaccount_frozencontent_policy_violationmodel_not_foundpayload_too_largerequest_timeoutrate_limit_exceededoperation_rate_limit_exceededweekly_limit_exceededserver_errormodel_errormodel_unavailable
messagestringrequired
min length 1
request_idstringrequired
min length 1
retry_afterinteger
min 0 · max 86400
statusintegerrequired
min 400 · max 599
504Gateway timeout – model execution exceeded the server deadline.
codestringrequired
Allowed:invalid_requestinvalid_api_keyunauthorizedfunding_payment_failedfunding_payment_method_requiredfunding_payment_action_requiredfunding_pendinginsufficient_creditsaccount_frozencontent_policy_violationmodel_not_foundpayload_too_largerequest_timeoutrate_limit_exceededoperation_rate_limit_exceededweekly_limit_exceededserver_errormodel_errormodel_unavailable
messagestringrequired
min length 1
request_idstringrequired
min length 1
retry_afterinteger
min 0 · max 86400
statusintegerrequired
min 400 · max 599
Try it
Server
Authorization
Parameters
Bodyapplication/json
Request
curl -X POST "https://api.quiver.ai/v1/svgs/animations" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "max_output_tokens": 4096,
  "model": "arrow-1.1",
  "reasoning_effort": "medium",
  "stream": false,
  "temperature": 0.4,
  "prompt": "Make the logo pulse gently",
  "svg_source": {
    "url": "https://example.com/uploads/source.svg"
  }
}'
Response
{
  "created": 1704067200,
  "credits": 1,
  "data": [
    {
      "mime_type": "image/svg+xml",
      "svg": "string",
      "loop_period_ms": 1200,
      "opening_animation_ms": 500
    }
  ],
  "id": "resp_01J9AZ3XJ7D5S9ZV2Q5Z8E1A4N",
  "usage": {
    "input_tokens": 0,
    "output_tokens": 0,
    "total_tokens": 0
  },
  "svg_score": 0
}