> ## Documentation Index
> Fetch the complete documentation index at: https://docs.iotools.cloud/llms.txt
> Use this file to discover all available pages before exploring further.

# SVG Stroke to Fill Converter

> Convert every stroked outline in an SVG into a filled path that renders identically — including dashes, round/miter joins and caps. Keeps colors, gradients, opacity, transforms and the viewBox, and runs entirely in your browser.

[Try SVG Stroke to Fill Converter in your browser →](https://iotools.cloud/tool/svg-stroke-to-fill-converter/)



## OpenAPI

````yaml https://api.iotools.cloud/v1/openapi post /v1/tool/svg-stroke-to-fill-converter
openapi: 3.1.0
info:
  title: iotools.cloud API
  version: 1.0.0
  description: >-
    Run any iotools.cloud tool over HTTP.


    Authenticate with `Authorization: Bearer iot_live_…`.


    **Only `POST /v1/tool/{slug}` costs credits.** Every GET here — the catalog,
    a tool's schema, your balance — is free. A tool call is charged its own
    weight or your plan's per-call minimum, whichever is larger;
    `x-iotools-credit-cost` on each operation is quoted at the free-tier
    minimum, and `GET /v1/tools/list` returns the exact figure for your key.
    `GET /v1/me/credits` reports what you have left, and `GET /v1/me/usage`
    reports what it went on.


    Failures are RFC 9457 problem documents — branch on `code`.
servers:
  - url: https://api.iotools.cloud
    description: Production
security:
  - bearerAuth: []
tags:
  - name: Catalog
    description: Find a tool and read its contract. Free.
  - name: Converters
    description: >-
      Convert between formats, encodings, and units — Base64, CSV and JSON,
      timestamps, and more. Fast, free, and processed right in your browser.
  - name: Formatters
    description: >-
      Format, beautify, minify, and validate code and data — JSON, HTML, CSS,
      SQL, and regex. Clean up messy input in one click, with nothing to upload.
  - name: Generators
    description: >-
      Generate exactly what you need and on demand — passwords, UUIDs, QR codes,
      hashes, random numbers, and more. Secure, instant, and free.
  - name: Calculators
    description: >-
      Crunch the numbers fast — from everyday math to specialized conversions
      and unit work. Free online calculators that run entirely in your browser.
  - name: Editors
    description: >-
      Edit and transform text, code, and images with quick, focused editors that
      run entirely in your browser — nothing to install, and no sign-up needed.
  - name: Utilities
    description: >-
      Everyday developer and web utilities — DNS and IP lookups, redirect and
      certificate checkers, and other quick diagnostics. Free and
      privacy-friendly.
  - name: Account
    description: Your key's allowance, limits and usage history.
paths:
  /v1/tool/svg-stroke-to-fill-converter:
    post:
      tags:
        - Converters
      summary: SVG Stroke to Fill Converter
      description: >-
        Convert every stroked outline in an SVG into a filled path that renders
        identically — including dashes, round/miter joins and caps. Keeps
        colors, gradients, opacity, transforms and the viewBox, and runs
        entirely in your browser.


        [Try SVG Stroke to Fill Converter in your browser
        →](https://iotools.cloud/tool/svg-stroke-to-fill-converter/)
      operationId: run_svg_stroke_to_fill_converter
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                svg:
                  type: string
                  description: SVG Code
                quality:
                  enum:
                    - coarse
                    - balanced
                    - fine
                  description: Curve quality
                precision:
                  type: number
                  description: Decimal places
                  minimum: 0
                  maximum: 4
                format:
                  enum:
                    - pretty
                    - minified
                  description: Output
              required:
                - svg
            examples:
              circle_checkmark:
                summary: Circle + checkmark
                value:
                  svg: >-
                    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 120
                    120" width="120" height="120">
                      <circle cx="60" cy="60" r="40" fill="none" stroke="#2563eb" stroke-width="8" />
                      <path d="M40 60 L55 75 L82 46" fill="none" stroke="#16a34a" stroke-width="10"
                            stroke-linecap="round" stroke-linejoin="round" />
                    </svg>
                  quality: coarse
                  precision: '1'
                  format: minified
              dashed_rounded_rectangle:
                summary: Dashed rounded rectangle
                value:
                  svg: >-
                    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 60"
                    width="100" height="60"><rect x="6" y="6" width="88"
                    height="48" rx="10" fill="none" stroke="#e11d48"
                    stroke-width="4" stroke-dasharray="10 6"/></svg>
                  quality: coarse
                  precision: '1'
                  format: minified
              stroke_inherited_from_a_group:
                summary: Stroke inherited from a group
                value:
                  svg: >-
                    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 80 40"
                    width="80" height="40"><g stroke="#0f766e" stroke-width="6"
                    stroke-linecap="square" fill="none"><line x1="10" y1="20"
                    x2="70" y2="20"/></g></svg>
                  quality: coarse
                  precision: '1'
                  format: minified
      responses:
        '200':
          description: Tool output
          content:
            application/json:
              examples:
                circle_checkmark:
                  summary: Circle + checkmark
                  value:
                    tool: svg-stroke-to-fill-converter
                    tool_version: 1.0.1
                    outputs:
                      output: >-
                        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 120
                        120" width="120" height="120"><path fill="#2563eb"
                        d="M96 59.7L95.6 65.7L103.5 66.3L104 60.3ZM95.7
                        65.1L94.3 70.9L102.1 72.7L103.5 66.9ZM94.5 70.3L92.3
                        75.9L99.8 78.8L101.9 73.3ZM92.6 75.4L89.6 80.5L96.5
                        84.5L99.5 79.4ZM89.9 80L86.2 84.7L92.4 89.7L96.2
                        85ZM86.6 84.3L82.2 88.3L87.7 94.2L92 90.1ZM82.7 88L77.7
                        91.3L82.3 97.9L87.2 94.6ZM78.3 91L72.9 93.6L76.3
                        100.8L81.7 98.2ZM73.4 93.4L67.7 95.2L70.1 102.8L75.8
                        101.1ZM68.3 95L62.4 95.9L63.6 103.8L69.5 103ZM63 95.9L57
                        95.9L57 103.9L63 103.9ZM57.6 95.9L51.7 95L50.5 103L56.4
                        103.8ZM52.3 95.2L46.6 93.4L44.2 101.1L49.9 102.8ZM47.1
                        93.6L41.7 91L38.3 98.2L43.7 100.8ZM42.3 91.3L37.3
                        88L32.8 94.6L37.7 97.9ZM37.8 88.3L33.4 84.3L28 90.1L32.3
                        94.2ZM33.8 84.7L30.1 80L23.8 85L27.6 89.7ZM30.4
                        80.5L27.4 75.4L20.5 79.4L23.5 84.5ZM27.7 75.9L25.5
                        70.3L18.1 73.3L20.2 78.8ZM25.7 70.9L24.3 65.1L16.5
                        66.9L17.9 72.7ZM24.4 65.7L24 59.7L16 60.3L16.5 66.3ZM24
                        60.3L24.4 54.3L16.5 53.7L16 59.7ZM24.3 54.9L25.7
                        49.1L17.9 47.3L16.5 53.1ZM25.5 49.7L27.7 44.1L20.2
                        41.2L18.1 46.7ZM27.4 44.6L30.4 39.5L23.5 35.5L20.5
                        40.6ZM30.1 40L33.8 35.3L27.6 30.3L23.8 35ZM33.4
                        35.7L37.8 31.7L32.3 25.8L28 29.9ZM37.3 32L42.3 28.7L37.7
                        22.1L32.8 25.4ZM41.7 29L47.1 26.4L43.7 19.2L38.3
                        21.8ZM46.6 26.6L52.3 24.8L49.9 17.2L44.2 18.9ZM51.7
                        25L57.6 24.1L56.4 16.2L50.5 17ZM57 24.1L63 24.1L63
                        16.1L57 16.1ZM62.4 24.1L68.3 25L69.5 17L63.6 16.2ZM67.7
                        24.8L73.4 26.6L75.8 18.9L70.1 17.2ZM72.9 26.4L78.3
                        29L81.7 21.8L76.3 19.2ZM77.7 28.7L82.7 32L87.2 25.4L82.3
                        22.1ZM82.2 31.7L86.6 35.7L92 29.9L87.7 25.8ZM86.2
                        35.3L89.9 40L96.2 35L92.4 30.3ZM89.6 39.5L92.6 44.6L99.5
                        40.6L96.5 35.5ZM92.3 44.1L94.5 49.7L101.9 46.7L99.8
                        41.2ZM94.3 49.1L95.7 54.9L103.5 53.1L102.1 47.3ZM95.6
                        54.3L96 60.3L104 59.7L103.5 53.7ZM104 60.3L104 60L104
                        59.7L100 60ZM103.5 66.9L103.5 66.6L103.5 66.3L99.6
                        66ZM101.9 73.3L102.1 73L102.1 72.7L98.2 71.8ZM99.5
                        79.4L99.7 79.1L99.8 78.8L96 77.4ZM96.2 85L96.4 84.8L96.5
                        84.5L93 82.5ZM92 90.1L92.3 89.9L92.4 89.7L89.3
                        87.2ZM87.2 94.6L87.4 94.4L87.7 94.2L84.9 91.3ZM81.7
                        98.2L82 98.1L82.3 97.9L80 94.6ZM75.8 101.1L76.1 101L76.3
                        100.8L74.6 97.2ZM69.5 103L69.8 102.9L70.1 102.8L68.9
                        99ZM63 103.9L63.3 103.9L63.6 103.8L63 99.9ZM56.4
                        103.8L56.7 103.9L57 103.9L57 99.9ZM49.9 102.8L50.2
                        102.9L50.5 103L51.1 99ZM43.7 100.8L43.9 101L44.2
                        101.1L45.4 97.2ZM37.7 97.9L38 98.1L38.3 98.2L40
                        94.6ZM32.3 94.2L32.6 94.4L32.8 94.6L35.1 91.3ZM27.6
                        89.7L27.7 89.9L28 90.1L30.7 87.2ZM23.5 84.5L23.6
                        84.8L23.8 85L27 82.5ZM20.2 78.8L20.3 79.1L20.5 79.4L24
                        77.4ZM17.9 72.7L17.9 73L18.1 73.3L21.8 71.8ZM16.5
                        66.3L16.5 66.6L16.5 66.9L20.4 66ZM16 59.7L16 60L16
                        60.3L20 60ZM16.5 53.1L16.5 53.4L16.5 53.7L20.4 54ZM18.1
                        46.7L17.9 47L17.9 47.3L21.8 48.2ZM20.5 40.6L20.3
                        40.9L20.2 41.2L24 42.6ZM23.8 35L23.6 35.2L23.5 35.5L27
                        37.5ZM28 29.9L27.7 30.1L27.6 30.3L30.7 32.8ZM32.8
                        25.4L32.6 25.6L32.3 25.8L35.1 28.7ZM38.3 21.8L38
                        21.9L37.7 22.1L40 25.4ZM44.2 18.9L43.9 19L43.7 19.2L45.4
                        22.8ZM50.5 17L50.2 17.1L49.9 17.2L51.1 21ZM57 16.1L56.7
                        16.1L56.4 16.2L57 20.1ZM63.6 16.2L63.3 16.1L63 16.1L63
                        20.1ZM70.1 17.2L69.8 17.1L69.5 17L68.9 21ZM76.3
                        19.2L76.1 19L75.8 18.9L74.6 22.8ZM82.3 22.1L82 21.9L81.7
                        21.8L80 25.4ZM87.7 25.8L87.4 25.6L87.2 25.4L84.9
                        28.7ZM92.4 30.3L92.3 30.1L92 29.9L89.3 32.8ZM96.5
                        35.5L96.4 35.2L96.2 35L93 37.5ZM99.8 41.2L99.7 40.9L99.5
                        40.6L96 42.6ZM102.1 47.3L102.1 47L101.9 46.7L98.2
                        48.2ZM103.5 53.7L103.5 53.4L103.5 53.1L99.6 54Z"
                        fill-rule="nonzero"/><path fill="#16a34a" d="M36.5
                        63.5L51.5 78.5L58.5 71.5L43.5 56.5ZM58.7 78.4L85.7
                        49.4L78.3 42.6L51.3 71.6ZM59.8 73.7L59.3 72.5L58.5
                        71.5L57.5 70.7L56.3 70.2L55 70L53.7 70.2L52.5 70.7L51.5
                        71.5L50.7 72.5L50.2 73.7L50 75L50.2 76.3L50.7 77.5L51.5
                        78.5L52.5 79.3L53.7 79.8L55 80L56.3 79.8L57.5 79.3L58.5
                        78.5L59.3 77.5L59.8 76.3L60 75ZM44.8 58.7L44.3 57.5L43.5
                        56.5L42.5 55.7L41.3 55.2L40 55L38.7 55.2L37.5 55.7L36.5
                        56.5L35.7 57.5L35.2 58.7L35 60L35.2 61.3L35.7 62.5L36.5
                        63.5L37.5 64.3L38.7 64.8L40 65L41.3 64.8L42.5 64.3L43.5
                        63.5L44.3 62.5L44.8 61.3L45 60ZM86.8 44.7L86.3 43.5L85.5
                        42.5L84.5 41.7L83.3 41.2L82 41L80.7 41.2L79.5 41.7L78.5
                        42.5L77.7 43.5L77.2 44.7L77 46L77.2 47.3L77.7 48.5L78.5
                        49.5L79.5 50.3L80.7 50.8L82 51L83.3 50.8L84.5 50.3L85.5
                        49.5L86.3 48.5L86.8 47.3L87 46Z"
                        fill-rule="nonzero"/></svg>
                      summary:
                        - metric: Strokes converted
                          value: '2'
                        - metric: Elements skipped
                          value: '0'
                        - metric: Original size
                          value: 314 B
                        - metric: Converted size
                          value: 4.13 KB
                    credits_used: 3
                    credits_remaining: null
                dashed_rounded_rectangle:
                  summary: Dashed rounded rectangle
                  value:
                    tool: svg-stroke-to-fill-converter
                    tool_version: 1.0.1
                    outputs:
                      output: >-
                        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100
                        60" width="100" height="60"><path fill="#e11d48" d="M16
                        8L26 8L26 4L16 4ZM32 8L42 8L42 4L32 4ZM48 8L58 8L58 4L48
                        4ZM64 8L74 8L74 4L64 4ZM80 8L84 8L84 4L80 4ZM83.5
                        7.9L88.5 9.3L89.5 5.4L84.5 4.1ZM87.6 8.8L88.2 9.3L91
                        6.5L90.4 5.9ZM84.5 4.1L84.3 4L84 4L84 6ZM90.4 5.9L90
                        5.5L89.5 5.4L89 7.3ZM91.2 13.1L92.1 16.5L95.9 15.5L95
                        12.1ZM92 16L92 22.5L96 22.5L96 16ZM96 16L96 15.7L95.9
                        15.5L94 16ZM92 28.5L92 38.5L96 38.5L96 28.5ZM91.9
                        43.9L90.7 48.5L94.6 49.5L95.8 45ZM91.2 47.6L87.6
                        51.2L90.4 54.1L94.1 50.4ZM88.5 50.7L88.4 50.8L89.4
                        54.6L89.5 54.6ZM94.1 50.4L94.5 50L94.6 49.5L92.7
                        49ZM89.5 54.6L90 54.5L90.4 54.1L89 52.7ZM83.1 52L73.1
                        52L73.1 56L83.1 56ZM67.1 52L57.1 52L57.1 56L67.1
                        56ZM51.1 52L41.1 52L41.1 56L51.1 56ZM35.1 52L25.1
                        52L25.1 56L35.1 56ZM19.1 52L16 52L16 56L19.1 56ZM16.5
                        52.1L11.5 50.7L10.5 54.6L15.5 55.9ZM12.4 51.2L11.2
                        50L8.3 52.8L9.6 54.1ZM15.5 55.9L15.7 56L16 56L16 54ZM9.6
                        54.1L10 54.5L10.5 54.6L11 52.7ZM8.6 46L7.9 43.5L4.1
                        44.5L4.7 47ZM8 44L8 36.6L4 36.6L4 44ZM4 44L4 44.3L4.1
                        44.5L6 44ZM8 30.6L8 20.6L4 20.6L4 30.6ZM8.3 15.2L9.3
                        11.5L5.4 10.5L4.4 14.1ZM8.8 12.4L12.4 8.8L9.6 5.9L5.9
                        9.6ZM11.5 9.3L12.5 9L11.5 5.1L10.5 5.4ZM5.9 9.6L5.5
                        10L5.4 10.5L7.3 11ZM10.5 5.4L10 5.5L9.6 5.9L11 7.3Z"
                        fill-rule="nonzero"/></svg>
                      summary:
                        - metric: Strokes converted
                          value: '1'
                        - metric: Elements skipped
                          value: '0'
                        - metric: Original size
                          value: 211 B
                        - metric: Converted size
                          value: 1.26 KB
                    credits_used: 3
                    credits_remaining: null
                stroke_inherited_from_a_group:
                  summary: Stroke inherited from a group
                  value:
                    tool: svg-stroke-to-fill-converter
                    tool_version: 1.0.1
                    outputs:
                      output: >-
                        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 80
                        40" width="80" height="40"><g fill="none"><path d="M10
                        23L70 23L70 17L10 17ZM10 17L7 17L7 23L10 23ZM70 23L73
                        23L73 17L70 17Z" fill="#0f766e"
                        fill-rule="nonzero"/></g></svg>
                      summary:
                        - metric: Strokes converted
                          value: '1'
                        - metric: Elements skipped
                          value: '0'
                        - metric: Original size
                          value: 205 B
                        - metric: Converted size
                          value: 228 B
                    credits_used: 3
                    credits_remaining: null
              schema:
                type: object
                required:
                  - tool
                  - tool_version
                  - outputs
                  - credits_used
                  - credits_remaining
                properties:
                  outputs:
                    type: object
                    properties:
                      output:
                        type: string
                        description: Filled SVG
                      summary:
                        type: array
                        description: Summary
                        items:
                          type: object
                          properties:
                            metric:
                              type: string
                              description: Metric
                            value:
                              type: string
                              description: Value
                        x-iotools-columns:
                          - metric
                          - value
                  tool:
                    type: string
                    description: The tool's slug, echoing the {slug} in the request path.
                  tool_version:
                    type: string
                    description: Output-contract version for this tool.
                  credits_used:
                    type: integer
                    description: >-
                      Credits this call consumed, after any settlement refund. 0
                      when metering is disabled.
                  credits_remaining:
                    type:
                      - integer
                      - 'null'
                    description: >-
                      Credits left in the current monthly allowance, or null
                      when metering is disabled.
                  request_id:
                    type: string
                    description: Correlation id, also sent as x-request-id.
        '400':
          $ref: '#/components/responses/ValidationError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/InsufficientCredits'
        '403':
          $ref: '#/components/responses/ToolNotAllowed'
        '404':
          $ref: '#/components/responses/ToolNotFound'
        '413':
          $ref: '#/components/responses/PayloadTooLarge'
        '429':
          $ref: '#/components/responses/RateLimited'
        '500':
          $ref: '#/components/responses/ToolFailed'
        '503':
          $ref: '#/components/responses/ToolDisabled'
      security:
        - bearerAuth: []
components:
  responses:
    ValidationError:
      description: Invalid request.
      content:
        application/problem+json:
          schema:
            type: object
            description: >-
              RFC 9457 problem document, served as application/problem+json.
              Branch on `code`; `title` is human prose and may be reworded
              without notice. Some failures add extension members — `fields` on
              validation errors, `retry_after` on 429s,
              `credits_used`/`credits_remaining` on billing-adjacent failures —
              documented on the responses that carry them.
            required:
              - type
              - title
              - status
              - code
            properties:
              type:
                type: string
                format: uri
                description: Stable documentation URI for this failure.
                examples:
                  - https://iotools.cloud/docs/errors/validation_error
              title:
                type: string
                description: Short human-readable summary of the failure.
                examples:
                  - Invalid request
              status:
                type: integer
                description: HTTP status code, matching the response's own status.
              code:
                type: string
                description: >-
                  Stable machine-readable error code — branch on this, not
                  `title`.
                enum:
                  - validation_error
              detail:
                type: string
                description: Human explanation of this occurrence.
              request_id:
                type: string
                description: Correlation id, also sent as x-request-id.
              fields:
                type:
                  - object
                  - string
                additionalProperties:
                  type: string
                description: >-
                  What failed: a map of field name → message. Absent when the
                  body itself is malformed; a single string when the failure
                  isn't tied to one field.
          example:
            type: https://iotools.cloud/docs/errors/validation_error
            title: Invalid request
            status: 400
            code: validation_error
            detail: One or more inputs are invalid — see `fields`.
            request_id: e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11
            fields:
              inputString: Required
    Unauthorized:
      description: Missing or invalid API key.
      content:
        application/problem+json:
          schema:
            type: object
            description: >-
              RFC 9457 problem document, served as application/problem+json.
              Branch on `code`; `title` is human prose and may be reworded
              without notice. Some failures add extension members — `fields` on
              validation errors, `retry_after` on 429s,
              `credits_used`/`credits_remaining` on billing-adjacent failures —
              documented on the responses that carry them.
            required:
              - type
              - title
              - status
              - code
            properties:
              type:
                type: string
                format: uri
                description: Stable documentation URI for this failure.
                examples:
                  - https://iotools.cloud/docs/errors/invalid_api_key
              title:
                type: string
                description: Short human-readable summary of the failure.
                examples:
                  - Invalid API key
              status:
                type: integer
                description: HTTP status code, matching the response's own status.
              code:
                type: string
                description: >-
                  Stable machine-readable error code — branch on this, not
                  `title`.
                enum:
                  - invalid_api_key
              detail:
                type: string
                description: Human explanation of this occurrence.
              request_id:
                type: string
                description: Correlation id, also sent as x-request-id.
          example:
            type: https://iotools.cloud/docs/errors/invalid_api_key
            title: Invalid API key
            status: 401
            code: invalid_api_key
            detail: 'Provide ''Authorization: Bearer <key>''.'
            request_id: e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11
    InsufficientCredits:
      description: Monthly credit allowance exhausted.
      content:
        application/problem+json:
          schema:
            type: object
            description: >-
              RFC 9457 problem document, served as application/problem+json.
              Branch on `code`; `title` is human prose and may be reworded
              without notice. Some failures add extension members — `fields` on
              validation errors, `retry_after` on 429s,
              `credits_used`/`credits_remaining` on billing-adjacent failures —
              documented on the responses that carry them.
            required:
              - type
              - title
              - status
              - code
            properties:
              type:
                type: string
                format: uri
                description: Stable documentation URI for this failure.
                examples:
                  - https://iotools.cloud/docs/errors/insufficient_credits
              title:
                type: string
                description: Short human-readable summary of the failure.
                examples:
                  - Insufficient credits
              status:
                type: integer
                description: HTTP status code, matching the response's own status.
              code:
                type: string
                description: >-
                  Stable machine-readable error code — branch on this, not
                  `title`.
                enum:
                  - insufficient_credits
              detail:
                type: string
                description: Human explanation of this occurrence.
              request_id:
                type: string
                description: Correlation id, also sent as x-request-id.
              credits_used:
                type: integer
                description: Always 0 — a refused call charges nothing.
              credits_remaining:
                type: integer
                description: Credits left in the allowance — fewer than this call costs.
          example:
            type: https://iotools.cloud/docs/errors/insufficient_credits
            title: Insufficient credits
            status: 402
            code: insufficient_credits
            detail: This call costs 1 credit and 0 remain in this month's allowance.
            request_id: e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11
            credits_used: 0
            credits_remaining: 0
    ToolNotAllowed:
      description: Tool exists but has no API surface.
      content:
        application/problem+json:
          schema:
            type: object
            description: >-
              RFC 9457 problem document, served as application/problem+json.
              Branch on `code`; `title` is human prose and may be reworded
              without notice. Some failures add extension members — `fields` on
              validation errors, `retry_after` on 429s,
              `credits_used`/`credits_remaining` on billing-adjacent failures —
              documented on the responses that carry them.
            required:
              - type
              - title
              - status
              - code
            properties:
              type:
                type: string
                format: uri
                description: Stable documentation URI for this failure.
                examples:
                  - https://iotools.cloud/docs/errors/tool_not_allowed
              title:
                type: string
                description: Short human-readable summary of the failure.
                examples:
                  - Tool not available over the API
              status:
                type: integer
                description: HTTP status code, matching the response's own status.
              code:
                type: string
                description: >-
                  Stable machine-readable error code — branch on this, not
                  `title`.
                enum:
                  - tool_not_allowed
              detail:
                type: string
                description: Human explanation of this occurrence.
              request_id:
                type: string
                description: Correlation id, also sent as x-request-id.
          example:
            type: https://iotools.cloud/docs/errors/tool_not_allowed
            title: Tool not available over the API
            status: 403
            code: tool_not_allowed
            detail: >-
              "Background Remover" is available on iotools.cloud but has no API
              endpoint.
            request_id: e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11
    ToolNotFound:
      description: No such tool.
      content:
        application/problem+json:
          schema:
            type: object
            description: >-
              RFC 9457 problem document, served as application/problem+json.
              Branch on `code`; `title` is human prose and may be reworded
              without notice. Some failures add extension members — `fields` on
              validation errors, `retry_after` on 429s,
              `credits_used`/`credits_remaining` on billing-adjacent failures —
              documented on the responses that carry them.
            required:
              - type
              - title
              - status
              - code
            properties:
              type:
                type: string
                format: uri
                description: Stable documentation URI for this failure.
                examples:
                  - https://iotools.cloud/docs/errors/tool_not_found
              title:
                type: string
                description: Short human-readable summary of the failure.
                examples:
                  - Tool not found
              status:
                type: integer
                description: HTTP status code, matching the response's own status.
              code:
                type: string
                description: >-
                  Stable machine-readable error code — branch on this, not
                  `title`.
                enum:
                  - tool_not_found
              detail:
                type: string
                description: Human explanation of this occurrence.
              request_id:
                type: string
                description: Correlation id, also sent as x-request-id.
          example:
            type: https://iotools.cloud/docs/errors/tool_not_found
            title: Tool not found
            status: 404
            code: tool_not_found
            detail: No tool with that slug. See GET /v1/tools/list.
            request_id: e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11
    PayloadTooLarge:
      description: Body too large.
      content:
        application/problem+json:
          schema:
            type: object
            description: >-
              RFC 9457 problem document, served as application/problem+json.
              Branch on `code`; `title` is human prose and may be reworded
              without notice. Some failures add extension members — `fields` on
              validation errors, `retry_after` on 429s,
              `credits_used`/`credits_remaining` on billing-adjacent failures —
              documented on the responses that carry them.
            required:
              - type
              - title
              - status
              - code
            properties:
              type:
                type: string
                format: uri
                description: Stable documentation URI for this failure.
                examples:
                  - https://iotools.cloud/docs/errors/payload_too_large
              title:
                type: string
                description: Short human-readable summary of the failure.
                examples:
                  - Payload too large
              status:
                type: integer
                description: HTTP status code, matching the response's own status.
              code:
                type: string
                description: >-
                  Stable machine-readable error code — branch on this, not
                  `title`.
                enum:
                  - payload_too_large
              detail:
                type: string
                description: Human explanation of this occurrence.
              request_id:
                type: string
                description: Correlation id, also sent as x-request-id.
          example:
            type: https://iotools.cloud/docs/errors/payload_too_large
            title: Payload too large
            status: 413
            code: payload_too_large
            detail: Request body exceeds this tool's size limit.
            request_id: e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11
    RateLimited:
      description: Per-minute rate limit exceeded.
      headers:
        Retry-After:
          description: Seconds to wait before retrying (RFC 9110 delta-seconds).
          schema:
            type: integer
      content:
        application/problem+json:
          schema:
            type: object
            description: >-
              RFC 9457 problem document, served as application/problem+json.
              Branch on `code`; `title` is human prose and may be reworded
              without notice. Some failures add extension members — `fields` on
              validation errors, `retry_after` on 429s,
              `credits_used`/`credits_remaining` on billing-adjacent failures —
              documented on the responses that carry them.
            required:
              - type
              - title
              - status
              - code
            properties:
              type:
                type: string
                format: uri
                description: Stable documentation URI for this failure.
                examples:
                  - https://iotools.cloud/docs/errors/rate_limited
              title:
                type: string
                description: Short human-readable summary of the failure.
                examples:
                  - Rate limit exceeded
              status:
                type: integer
                description: HTTP status code, matching the response's own status.
              code:
                type: string
                description: >-
                  Stable machine-readable error code — branch on this, not
                  `title`.
                enum:
                  - rate_limited
              detail:
                type: string
                description: Human explanation of this occurrence.
              request_id:
                type: string
                description: Correlation id, also sent as x-request-id.
              retry_after:
                type: integer
                description: >-
                  Seconds until the window resets — the same value as the
                  `Retry-After` header.
          example:
            type: https://iotools.cloud/docs/errors/rate_limited
            title: Rate limit exceeded
            status: 429
            code: rate_limited
            detail: Too many requests. Retry in 30s.
            request_id: e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11
            retry_after: 30
    ToolFailed:
      description: Tool failed to run.
      content:
        application/problem+json:
          schema:
            type: object
            description: >-
              RFC 9457 problem document, served as application/problem+json.
              Branch on `code`; `title` is human prose and may be reworded
              without notice. Some failures add extension members — `fields` on
              validation errors, `retry_after` on 429s,
              `credits_used`/`credits_remaining` on billing-adjacent failures —
              documented on the responses that carry them.
            required:
              - type
              - title
              - status
              - code
            properties:
              type:
                type: string
                format: uri
                description: Stable documentation URI for this failure.
                examples:
                  - https://iotools.cloud/docs/errors/processing_error
                  - https://iotools.cloud/docs/errors/internal_error
              title:
                type: string
                description: Short human-readable summary of the failure.
                examples:
                  - Tool failed to run
                  - Internal error
              status:
                type: integer
                description: HTTP status code, matching the response's own status.
              code:
                type: string
                description: >-
                  Stable machine-readable error code — branch on this, not
                  `title`.
                enum:
                  - processing_error
                  - internal_error
              detail:
                type: string
                description: Human explanation of this occurrence.
              request_id:
                type: string
                description: Correlation id, also sent as x-request-id.
              credits_used:
                type: integer
                description: >-
                  Always 0 on `processing_error` — a failed run is refunded,
                  floor included.
              credits_remaining:
                type: integer
                description: >-
                  Credits left after the refund. Absent when metering is
                  disabled.
          example:
            type: https://iotools.cloud/docs/errors/processing_error
            title: Tool failed to run
            status: 500
            code: processing_error
            detail: The tool failed to run. Please try again.
            request_id: e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11
            credits_used: 0
    ToolDisabled:
      description: Tool temporarily disabled.
      content:
        application/problem+json:
          schema:
            type: object
            description: >-
              RFC 9457 problem document, served as application/problem+json.
              Branch on `code`; `title` is human prose and may be reworded
              without notice. Some failures add extension members — `fields` on
              validation errors, `retry_after` on 429s,
              `credits_used`/`credits_remaining` on billing-adjacent failures —
              documented on the responses that carry them.
            required:
              - type
              - title
              - status
              - code
            properties:
              type:
                type: string
                format: uri
                description: Stable documentation URI for this failure.
                examples:
                  - https://iotools.cloud/docs/errors/tool_disabled
                  - https://iotools.cloud/docs/errors/api_unconfigured
              title:
                type: string
                description: Short human-readable summary of the failure.
                examples:
                  - Tool temporarily disabled
                  - API not configured
              status:
                type: integer
                description: HTTP status code, matching the response's own status.
              code:
                type: string
                description: >-
                  Stable machine-readable error code — branch on this, not
                  `title`.
                enum:
                  - tool_disabled
                  - api_unconfigured
              detail:
                type: string
                description: Human explanation of this occurrence.
              request_id:
                type: string
                description: Correlation id, also sent as x-request-id.
          example:
            type: https://iotools.cloud/docs/errors/tool_disabled
            title: Tool temporarily disabled
            status: 503
            code: tool_disabled
            detail: This tool is temporarily unavailable. Try again shortly.
            request_id: e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: iot_live_…

````