Animate SVG

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

post/v1/svgs/animations

Request

  • Base URL
    https://api.quiver.ai
  • Auth
    HTTP bearer

Headers

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.

Example:trace_01J9AZ3XJ7D5S9ZV2Q5Z8E1A4N

Request body

max_output_tokensinteger

Upper bound for output token count.

modelstring required

Model identifier to use for animation.

reasoning_effort'low' | 'medium' | 'high' | 'xhigh'

Reasoning effort applied to this animation. When omitted, Arrow uses its default.

streamboolean

When true, emits a Server-Sent Events stream.

temperaturenumber

Animation sampling temperature.

promptstring

Optional animation prompt. If omitted, the model chooses a suitable animation.

Example request

{
  "max_output_tokens": 4096,
  "reasoning_effort": "medium",
  "temperature": 0.4,
  "prompt": "Make the logo pulse gently",
  "svg_source": {
    "url": "https://example.com/uploads/source.svg"
  }
}

Response

When 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].

createdinteger required
creditsinteger

Credit cost for fixed-credit models. Omitted for token-priced models, whose measured totals are returned in usage.

idstring required
svg_scorenumber nullable

Example response

{
  "created": 1704067200,
  "credits": 1,
  "data": [
    {
      "svg": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M12 2l8 20H4z\"/></svg>"
    }
  ],
  "id": "resp_01J9AZ3XJ7D5S9ZV2Q5Z8E1A4N"
}

Changes

    • breaking

      added subschema #2 subschema #3 subschema #4 subschema #5 to the response body oneOf list for the response status (media type: text/event-stream)

    • info

      removed subschema #2 subschema #3 subschema #4 subschema #5 from the response body oneOf list for the response status (media type: text/event-stream)

    • warning

      the request property's maxLength was set to 10000