> ## 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 Wave Generator

> Generate a decorative SVG wave — a section divider or hero background — from a chosen shape, amplitude, frequency, layers and colours. Copy the SVG, a CSS background-image snippet, or ready-to-paste HTML. Runs entirely in your browser.

[Try SVG Wave Generator in your browser →](https://iotools.cloud/tool/svg-wave-generator/)



## OpenAPI

````yaml https://api.iotools.cloud/v1/openapi post /v1/tool/svg-wave-generator
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-wave-generator:
    post:
      tags:
        - Generators
      summary: SVG Wave Generator
      description: >-
        Generate a decorative SVG wave — a section divider or hero background —
        from a chosen shape, amplitude, frequency, layers and colours. Copy the
        SVG, a CSS background-image snippet, or ready-to-paste HTML. Runs
        entirely in your browser.


        [Try SVG Wave Generator in your browser
        →](https://iotools.cloud/tool/svg-wave-generator/)
      operationId: run_svg_wave_generator
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                waveStyle:
                  enum:
                    - sine
                    - layered
                    - zigzag
                    - hills
                    - asymmetric
                    - blob
                  description: Wave style
                amplitude:
                  type: number
                  description: Amplitude
                  minimum: 20
                  maximum: 200
                frequency:
                  type: number
                  description: Frequency
                  minimum: 1
                  maximum: 10
                width:
                  type: number
                  description: Width
                  minimum: 200
                  maximum: 3000
                height:
                  type: number
                  description: Height
                  minimum: 50
                  maximum: 600
                flipVertical:
                  type: boolean
                  description: Flip vertical
                flipHorizontal:
                  type: boolean
                  description: Flip horizontal
                layers:
                  type: number
                  description: Number of layers
                  minimum: 1
                  maximum: 4
                color1:
                  type: string
                  description: Layer 1 colour
                opacity1:
                  type: number
                  description: Layer 1 opacity
                  minimum: 10
                  maximum: 100
                color2:
                  type: string
                  description: Layer 2 colour
                opacity2:
                  type: number
                  description: Layer 2 opacity
                  minimum: 10
                  maximum: 100
                color3:
                  type: string
                  description: Layer 3 colour
                opacity3:
                  type: number
                  description: Layer 3 opacity
                  minimum: 10
                  maximum: 100
                color4:
                  type: string
                  description: Layer 4 colour
                opacity4:
                  type: number
                  description: Layer 4 opacity
                  minimum: 10
                  maximum: 100
                bgColor:
                  type: string
                  description: Background colour
                animate:
                  type: boolean
                  description: Animate waves
                animSpeed:
                  enum:
                    - slow
                    - medium
                    - fast
                  description: Speed
              required: []
            examples:
              smooth_sine_divider:
                summary: Smooth sine divider
                value:
                  waveStyle: sine
                  amplitude: '60'
                  frequency: '3'
                  width: '1200'
                  height: '200'
                  layers: '1'
                  color1: '#464aff'
                  opacity1: '100'
                  bgColor: '#f5f5f5'
              rounded_hills:
                summary: Rounded hills
                value:
                  waveStyle: hills
                  amplitude: '80'
                  frequency: '4'
                  width: '1000'
                  height: '220'
                  layers: '1'
                  color1: '#0ea5e9'
                  opacity1: '100'
                  bgColor: '#ffffff'
              three_layered_waves:
                summary: Three layered waves
                value:
                  waveStyle: layered
                  amplitude: '50'
                  frequency: '2'
                  width: '1200'
                  height: '260'
                  layers: '3'
                  color1: '#464aff'
                  opacity1: '100'
                  color2: '#6c70ff'
                  opacity2: '70'
                  color3: '#9395ff'
                  opacity3: '50'
                  bgColor: '#f5f5f5'
              zigzag_flipped:
                summary: Zigzag, flipped
                value:
                  waveStyle: zigzag
                  amplitude: '70'
                  frequency: '5'
                  width: '800'
                  height: '150'
                  flipVertical: 'true'
                  layers: '1'
                  color1: '#f97316'
                  opacity1: '100'
                  bgColor: '#fff7ed'
      responses:
        '200':
          description: Tool output
          content:
            application/json:
              examples:
                smooth_sine_divider:
                  summary: Smooth sine divider
                  value:
                    tool: svg-wave-generator
                    tool_version: 1.0.1
                    outputs:
                      svg: >-
                        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0
                        1200 200" width="1200" height="200"
                        preserveAspectRatio="none">
                          <rect width="1200" height="200" fill="#f5f5f5"/>
                          <g>
                          <path d="M 0 200 L 0 80 C 3.33 83.09, 13.33 92.66, 20 98.54 C 26.67 104.42, 33.33 110.27, 40 115.27 C 46.67 120.27, 53.33 124.91, 60 128.54 C 66.67 132.17, 73.33 135.15, 80 137.06 C 86.67 138.97, 93.33 140, 100 140 C 106.67 140, 113.33 138.97, 120 137.06 C 126.67 135.15, 133.33 132.17, 140 128.54 C 146.67 124.91, 153.33 120.27, 160 115.27 C 166.67 110.27, 173.33 104.42, 180 98.54 C 186.67 92.66, 193.33 86.18, 200 80 C 206.67 73.82, 213.33 67.34, 220 61.46 C 226.67 55.58, 233.33 49.73, 240 44.73 C 246.67 39.73, 253.33 35.09, 260 31.46 C 266.67 27.83, 273.33 24.85, 280 22.94 C 286.67 21.03, 293.33 20, 300 20 C 306.67 20, 313.33 21.03, 320 22.94 C 326.67 24.85, 333.33 27.83, 340 31.46 C 346.67 35.09, 353.33 39.73, 360 44.73 C 366.67 49.73, 373.33 55.58, 380 61.46 C 386.67 67.34, 393.33 73.82, 400 80 C 406.67 86.18, 413.33 92.66, 420 98.54 C 426.67 104.42, 433.33 110.27, 440 115.27 C 446.67 120.27, 453.33 124.91, 460 128.54 C 466.67 132.17, 473.33 135.15, 480 137.06 C 486.67 138.97, 493.33 140, 500 140 C 506.67 140, 513.33 138.97, 520 137.06 C 526.67 135.15, 533.33 132.17, 540 128.54 C 546.67 124.91, 553.33 120.27, 560 115.27 C 566.67 110.27, 573.33 104.42, 580 98.54 C 586.67 92.66, 593.33 86.18, 600 80 C 606.67 73.82, 613.33 67.34, 620 61.46 C 626.67 55.58, 633.33 49.73, 640 44.73 C 646.67 39.73, 653.33 35.09, 660 31.46 C 666.67 27.83, 673.33 24.85, 680 22.94 C 686.67 21.03, 693.33 20, 700 20 C 706.67 20, 713.33 21.03, 720 22.94 C 726.67 24.85, 733.33 27.83, 740 31.46 C 746.67 35.09, 753.33 39.73, 760 44.73 C 766.67 49.73, 773.33 55.58, 780 61.46 C 786.67 67.34, 793.33 73.82, 800 80 C 806.67 86.18, 813.33 92.66, 820 98.54 C 826.67 104.42, 833.33 110.27, 840 115.27 C 846.67 120.27, 853.33 124.91, 860 128.54 C 866.67 132.17, 873.33 135.15, 880 137.06 C 886.67 138.97, 893.33 140, 900 140 C 906.67 140, 913.33 138.97, 920 137.06 C 926.67 135.15, 933.33 132.17, 940 128.54 C 946.67 124.91, 953.33 120.27, 960 115.27 C 966.67 110.27, 973.33 104.42, 980 98.54 C 986.67 92.66, 993.33 86.18, 1000 80 C 1006.67 73.82, 1013.33 67.34, 1020 61.46 C 1026.67 55.58, 1033.33 49.73, 1040 44.73 C 1046.67 39.73, 1053.33 35.09, 1060 31.46 C 1066.67 27.83, 1073.33 24.85, 1080 22.94 C 1086.67 21.03, 1093.33 20, 1100 20 C 1106.67 20, 1113.33 21.03, 1120 22.94 C 1126.67 24.85, 1133.33 27.83, 1140 31.46 C 1146.67 35.09, 1153.33 39.73, 1160 44.73 C 1166.67 49.73, 1173.33 55.58, 1180 61.46 C 1186.67 67.34, 1196.67 76.91, 1200 80 L 1200 200 Z" fill="#464aff"/>
                          </g>
                        </svg>
                      css: |-
                        .wave-divider {
                          background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201200%20200%22%20width%3D%221200%22%20height%3D%22200%22%20preserveAspectRatio%3D%22none%22%3E%0A%20%20%3Crect%20width%3D%221200%22%20height%3D%22200%22%20fill%3D%22%23f5f5f5%22%2F%3E%0A%20%20%3Cg%3E%0A%20%20%3Cpath%20d%3D%22M%200%20200%20L%200%2080%20C%203.33%2083.09%2C%2013.33%2092.66%2C%2020%2098.54%20C%2026.67%20104.42%2C%2033.33%20110.27%2C%2040%20115.27%20C%2046.67%20120.27%2C%2053.33%20124.91%2C%2060%20128.54%20C%2066.67%20132.17%2C%2073.33%20135.15%2C%2080%20137.06%20C%2086.67%20138.97%2C%2093.33%20140%2C%20100%20140%20C%20106.67%20140%2C%20113.33%20138.97%2C%20120%20137.06%20C%20126.67%20135.15%2C%20133.33%20132.17%2C%20140%20128.54%20C%20146.67%20124.91%2C%20153.33%20120.27%2C%20160%20115.27%20C%20166.67%20110.27%2C%20173.33%20104.42%2C%20180%2098.54%20C%20186.67%2092.66%2C%20193.33%2086.18%2C%20200%2080%20C%20206.67%2073.82%2C%20213.33%2067.34%2C%20220%2061.46%20C%20226.67%2055.58%2C%20233.33%2049.73%2C%20240%2044.73%20C%20246.67%2039.73%2C%20253.33%2035.09%2C%20260%2031.46%20C%20266.67%2027.83%2C%20273.33%2024.85%2C%20280%2022.94%20C%20286.67%2021.03%2C%20293.33%2020%2C%20300%2020%20C%20306.67%2020%2C%20313.33%2021.03%2C%20320%2022.94%20C%20326.67%2024.85%2C%20333.33%2027.83%2C%20340%2031.46%20C%20346.67%2035.09%2C%20353.33%2039.73%2C%20360%2044.73%20C%20366.67%2049.73%2C%20373.33%2055.58%2C%20380%2061.46%20C%20386.67%2067.34%2C%20393.33%2073.82%2C%20400%2080%20C%20406.67%2086.18%2C%20413.33%2092.66%2C%20420%2098.54%20C%20426.67%20104.42%2C%20433.33%20110.27%2C%20440%20115.27%20C%20446.67%20120.27%2C%20453.33%20124.91%2C%20460%20128.54%20C%20466.67%20132.17%2C%20473.33%20135.15%2C%20480%20137.06%20C%20486.67%20138.97%2C%20493.33%20140%2C%20500%20140%20C%20506.67%20140%2C%20513.33%20138.97%2C%20520%20137.06%20C%20526.67%20135.15%2C%20533.33%20132.17%2C%20540%20128.54%20C%20546.67%20124.91%2C%20553.33%20120.27%2C%20560%20115.27%20C%20566.67%20110.27%2C%20573.33%20104.42%2C%20580%2098.54%20C%20586.67%2092.66%2C%20593.33%2086.18%2C%20600%2080%20C%20606.67%2073.82%2C%20613.33%2067.34%2C%20620%2061.46%20C%20626.67%2055.58%2C%20633.33%2049.73%2C%20640%2044.73%20C%20646.67%2039.73%2C%20653.33%2035.09%2C%20660%2031.46%20C%20666.67%2027.83%2C%20673.33%2024.85%2C%20680%2022.94%20C%20686.67%2021.03%2C%20693.33%2020%2C%20700%2020%20C%20706.67%2020%2C%20713.33%2021.03%2C%20720%2022.94%20C%20726.67%2024.85%2C%20733.33%2027.83%2C%20740%2031.46%20C%20746.67%2035.09%2C%20753.33%2039.73%2C%20760%2044.73%20C%20766.67%2049.73%2C%20773.33%2055.58%2C%20780%2061.46%20C%20786.67%2067.34%2C%20793.33%2073.82%2C%20800%2080%20C%20806.67%2086.18%2C%20813.33%2092.66%2C%20820%2098.54%20C%20826.67%20104.42%2C%20833.33%20110.27%2C%20840%20115.27%20C%20846.67%20120.27%2C%20853.33%20124.91%2C%20860%20128.54%20C%20866.67%20132.17%2C%20873.33%20135.15%2C%20880%20137.06%20C%20886.67%20138.97%2C%20893.33%20140%2C%20900%20140%20C%20906.67%20140%2C%20913.33%20138.97%2C%20920%20137.06%20C%20926.67%20135.15%2C%20933.33%20132.17%2C%20940%20128.54%20C%20946.67%20124.91%2C%20953.33%20120.27%2C%20960%20115.27%20C%20966.67%20110.27%2C%20973.33%20104.42%2C%20980%2098.54%20C%20986.67%2092.66%2C%20993.33%2086.18%2C%201000%2080%20C%201006.67%2073.82%2C%201013.33%2067.34%2C%201020%2061.46%20C%201026.67%2055.58%2C%201033.33%2049.73%2C%201040%2044.73%20C%201046.67%2039.73%2C%201053.33%2035.09%2C%201060%2031.46%20C%201066.67%2027.83%2C%201073.33%2024.85%2C%201080%2022.94%20C%201086.67%2021.03%2C%201093.33%2020%2C%201100%2020%20C%201106.67%2020%2C%201113.33%2021.03%2C%201120%2022.94%20C%201126.67%2024.85%2C%201133.33%2027.83%2C%201140%2031.46%20C%201146.67%2035.09%2C%201153.33%2039.73%2C%201160%2044.73%20C%201166.67%2049.73%2C%201173.33%2055.58%2C%201180%2061.46%20C%201186.67%2067.34%2C%201196.67%2076.91%2C%201200%2080%20L%201200%20200%20Z%22%20fill%3D%22%23464aff%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E");
                          background-repeat: no-repeat;
                          background-position: bottom center;
                          background-size: 100% auto;
                        }
                      html: >-
                        <div class="wave-divider" style="line-height:0">

                        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0
                        1200 200" width="1200" height="200"
                        preserveAspectRatio="none">
                          <rect width="1200" height="200" fill="#f5f5f5"/>
                          <g>
                          <path d="M 0 200 L 0 80 C 3.33 83.09, 13.33 92.66, 20 98.54 C 26.67 104.42, 33.33 110.27, 40 115.27 C 46.67 120.27, 53.33 124.91, 60 128.54 C 66.67 132.17, 73.33 135.15, 80 137.06 C 86.67 138.97, 93.33 140, 100 140 C 106.67 140, 113.33 138.97, 120 137.06 C 126.67 135.15, 133.33 132.17, 140 128.54 C 146.67 124.91, 153.33 120.27, 160 115.27 C 166.67 110.27, 173.33 104.42, 180 98.54 C 186.67 92.66, 193.33 86.18, 200 80 C 206.67 73.82, 213.33 67.34, 220 61.46 C 226.67 55.58, 233.33 49.73, 240 44.73 C 246.67 39.73, 253.33 35.09, 260 31.46 C 266.67 27.83, 273.33 24.85, 280 22.94 C 286.67 21.03, 293.33 20, 300 20 C 306.67 20, 313.33 21.03, 320 22.94 C 326.67 24.85, 333.33 27.83, 340 31.46 C 346.67 35.09, 353.33 39.73, 360 44.73 C 366.67 49.73, 373.33 55.58, 380 61.46 C 386.67 67.34, 393.33 73.82, 400 80 C 406.67 86.18, 413.33 92.66, 420 98.54 C 426.67 104.42, 433.33 110.27, 440 115.27 C 446.67 120.27, 453.33 124.91, 460 128.54 C 466.67 132.17, 473.33 135.15, 480 137.06 C 486.67 138.97, 493.33 140, 500 140 C 506.67 140, 513.33 138.97, 520 137.06 C 526.67 135.15, 533.33 132.17, 540 128.54 C 546.67 124.91, 553.33 120.27, 560 115.27 C 566.67 110.27, 573.33 104.42, 580 98.54 C 586.67 92.66, 593.33 86.18, 600 80 C 606.67 73.82, 613.33 67.34, 620 61.46 C 626.67 55.58, 633.33 49.73, 640 44.73 C 646.67 39.73, 653.33 35.09, 660 31.46 C 666.67 27.83, 673.33 24.85, 680 22.94 C 686.67 21.03, 693.33 20, 700 20 C 706.67 20, 713.33 21.03, 720 22.94 C 726.67 24.85, 733.33 27.83, 740 31.46 C 746.67 35.09, 753.33 39.73, 760 44.73 C 766.67 49.73, 773.33 55.58, 780 61.46 C 786.67 67.34, 793.33 73.82, 800 80 C 806.67 86.18, 813.33 92.66, 820 98.54 C 826.67 104.42, 833.33 110.27, 840 115.27 C 846.67 120.27, 853.33 124.91, 860 128.54 C 866.67 132.17, 873.33 135.15, 880 137.06 C 886.67 138.97, 893.33 140, 900 140 C 906.67 140, 913.33 138.97, 920 137.06 C 926.67 135.15, 933.33 132.17, 940 128.54 C 946.67 124.91, 953.33 120.27, 960 115.27 C 966.67 110.27, 973.33 104.42, 980 98.54 C 986.67 92.66, 993.33 86.18, 1000 80 C 1006.67 73.82, 1013.33 67.34, 1020 61.46 C 1026.67 55.58, 1033.33 49.73, 1040 44.73 C 1046.67 39.73, 1053.33 35.09, 1060 31.46 C 1066.67 27.83, 1073.33 24.85, 1080 22.94 C 1086.67 21.03, 1093.33 20, 1100 20 C 1106.67 20, 1113.33 21.03, 1120 22.94 C 1126.67 24.85, 1133.33 27.83, 1140 31.46 C 1146.67 35.09, 1153.33 39.73, 1160 44.73 C 1166.67 49.73, 1173.33 55.58, 1180 61.46 C 1186.67 67.34, 1196.67 76.91, 1200 80 L 1200 200 Z" fill="#464aff"/>
                          </g>
                        </svg>

                        </div>
                    credits_used: 3
                    credits_remaining: null
                rounded_hills:
                  summary: Rounded hills
                  value:
                    tool: svg-wave-generator
                    tool_version: 1.0.1
                    outputs:
                      svg: >-
                        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0
                        1000 220" width="1000" height="220"
                        preserveAspectRatio="none">
                          <rect width="1000" height="220" fill="#ffffff"/>
                          <g>
                          <path d="M 0 220 L 0 112 Q 125 8, 250 112 Q 375 8, 500 112 Q 625 8, 750 112 Q 875 8, 1000 112 L 1000 220 Z" fill="#0ea5e9"/>
                          </g>
                        </svg>
                      css: |-
                        .wave-divider {
                          background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201000%20220%22%20width%3D%221000%22%20height%3D%22220%22%20preserveAspectRatio%3D%22none%22%3E%0A%20%20%3Crect%20width%3D%221000%22%20height%3D%22220%22%20fill%3D%22%23ffffff%22%2F%3E%0A%20%20%3Cg%3E%0A%20%20%3Cpath%20d%3D%22M%200%20220%20L%200%20112%20Q%20125%208%2C%20250%20112%20Q%20375%208%2C%20500%20112%20Q%20625%208%2C%20750%20112%20Q%20875%208%2C%201000%20112%20L%201000%20220%20Z%22%20fill%3D%22%230ea5e9%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E");
                          background-repeat: no-repeat;
                          background-position: bottom center;
                          background-size: 100% auto;
                        }
                      html: >-
                        <div class="wave-divider" style="line-height:0">

                        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0
                        1000 220" width="1000" height="220"
                        preserveAspectRatio="none">
                          <rect width="1000" height="220" fill="#ffffff"/>
                          <g>
                          <path d="M 0 220 L 0 112 Q 125 8, 250 112 Q 375 8, 500 112 Q 625 8, 750 112 Q 875 8, 1000 112 L 1000 220 Z" fill="#0ea5e9"/>
                          </g>
                        </svg>

                        </div>
                    credits_used: 3
                    credits_remaining: null
                three_layered_waves:
                  summary: Three layered waves
                  value:
                    tool: svg-wave-generator
                    tool_version: 1.0.1
                    outputs:
                      svg: >-
                        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0
                        1200 260" width="1200" height="260"
                        preserveAspectRatio="none">
                          <rect width="1200" height="260" fill="#f5f5f5"/>
                          <g>
                          <path d="M 0 260 L 0 77.75 C 5 75.77, 20 69.21, 30 65.88 C 40 62.55, 50 59.7, 60 57.75 C 70 55.79, 80 54.53, 90 54.14 C 100 53.75, 110 54.2, 120 55.42 C 130 56.63, 140 58.74, 150 61.45 C 160 64.15, 170 67.72, 180 71.64 C 190 75.57, 200 80.24, 210 85.01 C 220 89.77, 230 95.09, 240 100.23 C 250 105.36, 260 110.81, 270 115.82 C 280 120.82, 290 125.87, 300 130.25 C 310 134.64, 320 138.79, 330 142.12 C 340 145.45, 350 148.3, 360 150.25 C 370 152.21, 380 153.47, 390 153.86 C 400 154.25, 410 153.8, 420 152.58 C 430 151.37, 440 149.26, 450 146.55 C 460 143.85, 470 140.28, 480 136.36 C 490 132.43, 500 127.76, 510 122.99 C 520 118.23, 530 112.91, 540 107.77 C 550 102.64, 560 97.19, 570 92.18 C 580 87.18, 590 82.13, 600 77.75 C 610 73.36, 620 69.21, 630 65.88 C 640 62.55, 650 59.7, 660 57.75 C 670 55.79, 680 54.53, 690 54.14 C 700 53.75, 710 54.2, 720 55.42 C 730 56.63, 740 58.74, 750 61.45 C 760 64.15, 770 67.72, 780 71.64 C 790 75.57, 800 80.24, 810 85.01 C 820 89.77, 830 95.09, 840 100.23 C 850 105.36, 860 110.81, 870 115.82 C 880 120.82, 890 125.87, 900 130.25 C 910 134.64, 920 138.79, 930 142.12 C 940 145.45, 950 148.3, 960 150.25 C 970 152.21, 980 153.47, 990 153.86 C 1000 154.25, 1010 153.8, 1020 152.58 C 1030 151.37, 1040 149.26, 1050 146.55 C 1060 143.85, 1070 140.28, 1080 136.36 C 1090 132.43, 1100 127.76, 1110 122.99 C 1120 118.23, 1130 112.91, 1140 107.77 C 1150 102.64, 1160 97.19, 1170 92.18 C 1180 87.18, 1195 80.15, 1200 77.75 L 1200 260 Z" fill="#9395ff80"/>
                          <path d="M 0 260 L 0 152.1 C 5 151.01, 20 148.4, 30 145.53 C 40 142.66, 50 138.94, 60 134.9 C 70 130.85, 80 126.07, 90 121.23 C 100 116.4, 110 111.03, 120 105.89 C 130 100.74, 140 95.31, 150 90.36 C 160 85.4, 170 80.44, 180 76.16 C 190 71.88, 200 67.87, 210 64.69 C 220 61.51, 230 58.84, 240 57.06 C 250 55.29, 260 54.23, 270 54.04 C 280 53.84, 290 54.49, 300 55.9 C 310 57.3, 320 59.6, 330 62.47 C 340 65.34, 350 69.06, 360 73.1 C 370 77.15, 380 81.93, 390 86.77 C 400 91.6, 410 96.97, 420 102.11 C 430 107.26, 440 112.69, 450 117.64 C 460 122.6, 470 127.56, 480 131.84 C 490 136.12, 500 140.13, 510 143.31 C 520 146.49, 530 149.16, 540 150.94 C 550 152.71, 560 153.77, 570 153.96 C 580 154.16, 590 153.51, 600 152.1 C 610 150.7, 620 148.4, 630 145.53 C 640 142.66, 650 138.94, 660 134.9 C 670 130.85, 680 126.07, 690 121.23 C 700 116.4, 710 111.03, 720 105.89 C 730 100.74, 740 95.31, 750 90.36 C 760 85.4, 770 80.44, 780 76.16 C 790 71.88, 800 67.87, 810 64.69 C 820 61.51, 830 58.84, 840 57.06 C 850 55.29, 860 54.23, 870 54.04 C 880 53.84, 890 54.49, 900 55.9 C 910 57.3, 920 59.6, 930 62.47 C 940 65.34, 950 69.06, 960 73.1 C 970 77.15, 980 81.93, 990 86.77 C 1000 91.6, 1010 96.97, 1020 102.11 C 1030 107.26, 1040 112.69, 1050 117.64 C 1060 122.6, 1070 127.56, 1080 131.84 C 1090 136.12, 1100 140.13, 1110 143.31 C 1120 146.49, 1130 149.16, 1140 150.94 C 1150 152.71, 1160 153.77, 1170 153.96 C 1180 154.16, 1195 152.41, 1200 152.1 L 1200 260 Z" fill="#6c70ffb3"/>
                          <path d="M 0 260 L 0 104 C 5 106.58, 20 114.55, 30 119.45 C 40 124.35, 50 129.22, 60 133.39 C 70 137.56, 80 141.42, 90 144.45 C 100 147.48, 110 149.96, 120 151.55 C 130 153.14, 140 154, 150 154 C 160 154, 170 153.14, 180 151.55 C 190 149.96, 200 147.48, 210 144.45 C 220 141.42, 230 137.56, 240 133.39 C 250 129.22, 260 124.35, 270 119.45 C 280 114.55, 290 109.15, 300 104 C 310 98.85, 320 93.45, 330 88.55 C 340 83.65, 350 78.78, 360 74.61 C 370 70.44, 380 66.58, 390 63.55 C 400 60.52, 410 58.04, 420 56.45 C 430 54.86, 440 54, 450 54 C 460 54, 470 54.86, 480 56.45 C 490 58.04, 500 60.52, 510 63.55 C 520 66.58, 530 70.44, 540 74.61 C 550 78.78, 560 83.65, 570 88.55 C 580 93.45, 590 98.85, 600 104 C 610 109.15, 620 114.55, 630 119.45 C 640 124.35, 650 129.22, 660 133.39 C 670 137.56, 680 141.42, 690 144.45 C 700 147.48, 710 149.96, 720 151.55 C 730 153.14, 740 154, 750 154 C 760 154, 770 153.14, 780 151.55 C 790 149.96, 800 147.48, 810 144.45 C 820 141.42, 830 137.56, 840 133.39 C 850 129.22, 860 124.35, 870 119.45 C 880 114.55, 890 109.15, 900 104 C 910 98.85, 920 93.45, 930 88.55 C 940 83.65, 950 78.78, 960 74.61 C 970 70.44, 980 66.58, 990 63.55 C 1000 60.52, 1010 58.04, 1020 56.45 C 1030 54.86, 1040 54, 1050 54 C 1060 54, 1070 54.86, 1080 56.45 C 1090 58.04, 1100 60.52, 1110 63.55 C 1120 66.58, 1130 70.44, 1140 74.61 C 1150 78.78, 1160 83.65, 1170 88.55 C 1180 93.45, 1195 101.42, 1200 104 L 1200 260 Z" fill="#464aff"/>
                          </g>
                        </svg>
                      css: |-
                        .wave-divider {
                          background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201200%20260%22%20width%3D%221200%22%20height%3D%22260%22%20preserveAspectRatio%3D%22none%22%3E%0A%20%20%3Crect%20width%3D%221200%22%20height%3D%22260%22%20fill%3D%22%23f5f5f5%22%2F%3E%0A%20%20%3Cg%3E%0A%20%20%3Cpath%20d%3D%22M%200%20260%20L%200%2077.75%20C%205%2075.77%2C%2020%2069.21%2C%2030%2065.88%20C%2040%2062.55%2C%2050%2059.7%2C%2060%2057.75%20C%2070%2055.79%2C%2080%2054.53%2C%2090%2054.14%20C%20100%2053.75%2C%20110%2054.2%2C%20120%2055.42%20C%20130%2056.63%2C%20140%2058.74%2C%20150%2061.45%20C%20160%2064.15%2C%20170%2067.72%2C%20180%2071.64%20C%20190%2075.57%2C%20200%2080.24%2C%20210%2085.01%20C%20220%2089.77%2C%20230%2095.09%2C%20240%20100.23%20C%20250%20105.36%2C%20260%20110.81%2C%20270%20115.82%20C%20280%20120.82%2C%20290%20125.87%2C%20300%20130.25%20C%20310%20134.64%2C%20320%20138.79%2C%20330%20142.12%20C%20340%20145.45%2C%20350%20148.3%2C%20360%20150.25%20C%20370%20152.21%2C%20380%20153.47%2C%20390%20153.86%20C%20400%20154.25%2C%20410%20153.8%2C%20420%20152.58%20C%20430%20151.37%2C%20440%20149.26%2C%20450%20146.55%20C%20460%20143.85%2C%20470%20140.28%2C%20480%20136.36%20C%20490%20132.43%2C%20500%20127.76%2C%20510%20122.99%20C%20520%20118.23%2C%20530%20112.91%2C%20540%20107.77%20C%20550%20102.64%2C%20560%2097.19%2C%20570%2092.18%20C%20580%2087.18%2C%20590%2082.13%2C%20600%2077.75%20C%20610%2073.36%2C%20620%2069.21%2C%20630%2065.88%20C%20640%2062.55%2C%20650%2059.7%2C%20660%2057.75%20C%20670%2055.79%2C%20680%2054.53%2C%20690%2054.14%20C%20700%2053.75%2C%20710%2054.2%2C%20720%2055.42%20C%20730%2056.63%2C%20740%2058.74%2C%20750%2061.45%20C%20760%2064.15%2C%20770%2067.72%2C%20780%2071.64%20C%20790%2075.57%2C%20800%2080.24%2C%20810%2085.01%20C%20820%2089.77%2C%20830%2095.09%2C%20840%20100.23%20C%20850%20105.36%2C%20860%20110.81%2C%20870%20115.82%20C%20880%20120.82%2C%20890%20125.87%2C%20900%20130.25%20C%20910%20134.64%2C%20920%20138.79%2C%20930%20142.12%20C%20940%20145.45%2C%20950%20148.3%2C%20960%20150.25%20C%20970%20152.21%2C%20980%20153.47%2C%20990%20153.86%20C%201000%20154.25%2C%201010%20153.8%2C%201020%20152.58%20C%201030%20151.37%2C%201040%20149.26%2C%201050%20146.55%20C%201060%20143.85%2C%201070%20140.28%2C%201080%20136.36%20C%201090%20132.43%2C%201100%20127.76%2C%201110%20122.99%20C%201120%20118.23%2C%201130%20112.91%2C%201140%20107.77%20C%201150%20102.64%2C%201160%2097.19%2C%201170%2092.18%20C%201180%2087.18%2C%201195%2080.15%2C%201200%2077.75%20L%201200%20260%20Z%22%20fill%3D%22%239395ff80%22%2F%3E%0A%20%20%3Cpath%20d%3D%22M%200%20260%20L%200%20152.1%20C%205%20151.01%2C%2020%20148.4%2C%2030%20145.53%20C%2040%20142.66%2C%2050%20138.94%2C%2060%20134.9%20C%2070%20130.85%2C%2080%20126.07%2C%2090%20121.23%20C%20100%20116.4%2C%20110%20111.03%2C%20120%20105.89%20C%20130%20100.74%2C%20140%2095.31%2C%20150%2090.36%20C%20160%2085.4%2C%20170%2080.44%2C%20180%2076.16%20C%20190%2071.88%2C%20200%2067.87%2C%20210%2064.69%20C%20220%2061.51%2C%20230%2058.84%2C%20240%2057.06%20C%20250%2055.29%2C%20260%2054.23%2C%20270%2054.04%20C%20280%2053.84%2C%20290%2054.49%2C%20300%2055.9%20C%20310%2057.3%2C%20320%2059.6%2C%20330%2062.47%20C%20340%2065.34%2C%20350%2069.06%2C%20360%2073.1%20C%20370%2077.15%2C%20380%2081.93%2C%20390%2086.77%20C%20400%2091.6%2C%20410%2096.97%2C%20420%20102.11%20C%20430%20107.26%2C%20440%20112.69%2C%20450%20117.64%20C%20460%20122.6%2C%20470%20127.56%2C%20480%20131.84%20C%20490%20136.12%2C%20500%20140.13%2C%20510%20143.31%20C%20520%20146.49%2C%20530%20149.16%2C%20540%20150.94%20C%20550%20152.71%2C%20560%20153.77%2C%20570%20153.96%20C%20580%20154.16%2C%20590%20153.51%2C%20600%20152.1%20C%20610%20150.7%2C%20620%20148.4%2C%20630%20145.53%20C%20640%20142.66%2C%20650%20138.94%2C%20660%20134.9%20C%20670%20130.85%2C%20680%20126.07%2C%20690%20121.23%20C%20700%20116.4%2C%20710%20111.03%2C%20720%20105.89%20C%20730%20100.74%2C%20740%2095.31%2C%20750%2090.36%20C%20760%2085.4%2C%20770%2080.44%2C%20780%2076.16%20C%20790%2071.88%2C%20800%2067.87%2C%20810%2064.69%20C%20820%2061.51%2C%20830%2058.84%2C%20840%2057.06%20C%20850%2055.29%2C%20860%2054.23%2C%20870%2054.04%20C%20880%2053.84%2C%20890%2054.49%2C%20900%2055.9%20C%20910%2057.3%2C%20920%2059.6%2C%20930%2062.47%20C%20940%2065.34%2C%20950%2069.06%2C%20960%2073.1%20C%20970%2077.15%2C%20980%2081.93%2C%20990%2086.77%20C%201000%2091.6%2C%201010%2096.97%2C%201020%20102.11%20C%201030%20107.26%2C%201040%20112.69%2C%201050%20117.64%20C%201060%20122.6%2C%201070%20127.56%2C%201080%20131.84%20C%201090%20136.12%2C%201100%20140.13%2C%201110%20143.31%20C%201120%20146.49%2C%201130%20149.16%2C%201140%20150.94%20C%201150%20152.71%2C%201160%20153.77%2C%201170%20153.96%20C%201180%20154.16%2C%201195%20152.41%2C%201200%20152.1%20L%201200%20260%20Z%22%20fill%3D%22%236c70ffb3%22%2F%3E%0A%20%20%3Cpath%20d%3D%22M%200%20260%20L%200%20104%20C%205%20106.58%2C%2020%20114.55%2C%2030%20119.45%20C%2040%20124.35%2C%2050%20129.22%2C%2060%20133.39%20C%2070%20137.56%2C%2080%20141.42%2C%2090%20144.45%20C%20100%20147.48%2C%20110%20149.96%2C%20120%20151.55%20C%20130%20153.14%2C%20140%20154%2C%20150%20154%20C%20160%20154%2C%20170%20153.14%2C%20180%20151.55%20C%20190%20149.96%2C%20200%20147.48%2C%20210%20144.45%20C%20220%20141.42%2C%20230%20137.56%2C%20240%20133.39%20C%20250%20129.22%2C%20260%20124.35%2C%20270%20119.45%20C%20280%20114.55%2C%20290%20109.15%2C%20300%20104%20C%20310%2098.85%2C%20320%2093.45%2C%20330%2088.55%20C%20340%2083.65%2C%20350%2078.78%2C%20360%2074.61%20C%20370%2070.44%2C%20380%2066.58%2C%20390%2063.55%20C%20400%2060.52%2C%20410%2058.04%2C%20420%2056.45%20C%20430%2054.86%2C%20440%2054%2C%20450%2054%20C%20460%2054%2C%20470%2054.86%2C%20480%2056.45%20C%20490%2058.04%2C%20500%2060.52%2C%20510%2063.55%20C%20520%2066.58%2C%20530%2070.44%2C%20540%2074.61%20C%20550%2078.78%2C%20560%2083.65%2C%20570%2088.55%20C%20580%2093.45%2C%20590%2098.85%2C%20600%20104%20C%20610%20109.15%2C%20620%20114.55%2C%20630%20119.45%20C%20640%20124.35%2C%20650%20129.22%2C%20660%20133.39%20C%20670%20137.56%2C%20680%20141.42%2C%20690%20144.45%20C%20700%20147.48%2C%20710%20149.96%2C%20720%20151.55%20C%20730%20153.14%2C%20740%20154%2C%20750%20154%20C%20760%20154%2C%20770%20153.14%2C%20780%20151.55%20C%20790%20149.96%2C%20800%20147.48%2C%20810%20144.45%20C%20820%20141.42%2C%20830%20137.56%2C%20840%20133.39%20C%20850%20129.22%2C%20860%20124.35%2C%20870%20119.45%20C%20880%20114.55%2C%20890%20109.15%2C%20900%20104%20C%20910%2098.85%2C%20920%2093.45%2C%20930%2088.55%20C%20940%2083.65%2C%20950%2078.78%2C%20960%2074.61%20C%20970%2070.44%2C%20980%2066.58%2C%20990%2063.55%20C%201000%2060.52%2C%201010%2058.04%2C%201020%2056.45%20C%201030%2054.86%2C%201040%2054%2C%201050%2054%20C%201060%2054%2C%201070%2054.86%2C%201080%2056.45%20C%201090%2058.04%2C%201100%2060.52%2C%201110%2063.55%20C%201120%2066.58%2C%201130%2070.44%2C%201140%2074.61%20C%201150%2078.78%2C%201160%2083.65%2C%201170%2088.55%20C%201180%2093.45%2C%201195%20101.42%2C%201200%20104%20L%201200%20260%20Z%22%20fill%3D%22%23464aff%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E");
                          background-repeat: no-repeat;
                          background-position: bottom center;
                          background-size: 100% auto;
                        }
                      html: >-
                        <div class="wave-divider" style="line-height:0">

                        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0
                        1200 260" width="1200" height="260"
                        preserveAspectRatio="none">
                          <rect width="1200" height="260" fill="#f5f5f5"/>
                          <g>
                          <path d="M 0 260 L 0 77.75 C 5 75.77, 20 69.21, 30 65.88 C 40 62.55, 50 59.7, 60 57.75 C 70 55.79, 80 54.53, 90 54.14 C 100 53.75, 110 54.2, 120 55.42 C 130 56.63, 140 58.74, 150 61.45 C 160 64.15, 170 67.72, 180 71.64 C 190 75.57, 200 80.24, 210 85.01 C 220 89.77, 230 95.09, 240 100.23 C 250 105.36, 260 110.81, 270 115.82 C 280 120.82, 290 125.87, 300 130.25 C 310 134.64, 320 138.79, 330 142.12 C 340 145.45, 350 148.3, 360 150.25 C 370 152.21, 380 153.47, 390 153.86 C 400 154.25, 410 153.8, 420 152.58 C 430 151.37, 440 149.26, 450 146.55 C 460 143.85, 470 140.28, 480 136.36 C 490 132.43, 500 127.76, 510 122.99 C 520 118.23, 530 112.91, 540 107.77 C 550 102.64, 560 97.19, 570 92.18 C 580 87.18, 590 82.13, 600 77.75 C 610 73.36, 620 69.21, 630 65.88 C 640 62.55, 650 59.7, 660 57.75 C 670 55.79, 680 54.53, 690 54.14 C 700 53.75, 710 54.2, 720 55.42 C 730 56.63, 740 58.74, 750 61.45 C 760 64.15, 770 67.72, 780 71.64 C 790 75.57, 800 80.24, 810 85.01 C 820 89.77, 830 95.09, 840 100.23 C 850 105.36, 860 110.81, 870 115.82 C 880 120.82, 890 125.87, 900 130.25 C 910 134.64, 920 138.79, 930 142.12 C 940 145.45, 950 148.3, 960 150.25 C 970 152.21, 980 153.47, 990 153.86 C 1000 154.25, 1010 153.8, 1020 152.58 C 1030 151.37, 1040 149.26, 1050 146.55 C 1060 143.85, 1070 140.28, 1080 136.36 C 1090 132.43, 1100 127.76, 1110 122.99 C 1120 118.23, 1130 112.91, 1140 107.77 C 1150 102.64, 1160 97.19, 1170 92.18 C 1180 87.18, 1195 80.15, 1200 77.75 L 1200 260 Z" fill="#9395ff80"/>
                          <path d="M 0 260 L 0 152.1 C 5 151.01, 20 148.4, 30 145.53 C 40 142.66, 50 138.94, 60 134.9 C 70 130.85, 80 126.07, 90 121.23 C 100 116.4, 110 111.03, 120 105.89 C 130 100.74, 140 95.31, 150 90.36 C 160 85.4, 170 80.44, 180 76.16 C 190 71.88, 200 67.87, 210 64.69 C 220 61.51, 230 58.84, 240 57.06 C 250 55.29, 260 54.23, 270 54.04 C 280 53.84, 290 54.49, 300 55.9 C 310 57.3, 320 59.6, 330 62.47 C 340 65.34, 350 69.06, 360 73.1 C 370 77.15, 380 81.93, 390 86.77 C 400 91.6, 410 96.97, 420 102.11 C 430 107.26, 440 112.69, 450 117.64 C 460 122.6, 470 127.56, 480 131.84 C 490 136.12, 500 140.13, 510 143.31 C 520 146.49, 530 149.16, 540 150.94 C 550 152.71, 560 153.77, 570 153.96 C 580 154.16, 590 153.51, 600 152.1 C 610 150.7, 620 148.4, 630 145.53 C 640 142.66, 650 138.94, 660 134.9 C 670 130.85, 680 126.07, 690 121.23 C 700 116.4, 710 111.03, 720 105.89 C 730 100.74, 740 95.31, 750 90.36 C 760 85.4, 770 80.44, 780 76.16 C 790 71.88, 800 67.87, 810 64.69 C 820 61.51, 830 58.84, 840 57.06 C 850 55.29, 860 54.23, 870 54.04 C 880 53.84, 890 54.49, 900 55.9 C 910 57.3, 920 59.6, 930 62.47 C 940 65.34, 950 69.06, 960 73.1 C 970 77.15, 980 81.93, 990 86.77 C 1000 91.6, 1010 96.97, 1020 102.11 C 1030 107.26, 1040 112.69, 1050 117.64 C 1060 122.6, 1070 127.56, 1080 131.84 C 1090 136.12, 1100 140.13, 1110 143.31 C 1120 146.49, 1130 149.16, 1140 150.94 C 1150 152.71, 1160 153.77, 1170 153.96 C 1180 154.16, 1195 152.41, 1200 152.1 L 1200 260 Z" fill="#6c70ffb3"/>
                          <path d="M 0 260 L 0 104 C 5 106.58, 20 114.55, 30 119.45 C 40 124.35, 50 129.22, 60 133.39 C 70 137.56, 80 141.42, 90 144.45 C 100 147.48, 110 149.96, 120 151.55 C 130 153.14, 140 154, 150 154 C 160 154, 170 153.14, 180 151.55 C 190 149.96, 200 147.48, 210 144.45 C 220 141.42, 230 137.56, 240 133.39 C 250 129.22, 260 124.35, 270 119.45 C 280 114.55, 290 109.15, 300 104 C 310 98.85, 320 93.45, 330 88.55 C 340 83.65, 350 78.78, 360 74.61 C 370 70.44, 380 66.58, 390 63.55 C 400 60.52, 410 58.04, 420 56.45 C 430 54.86, 440 54, 450 54 C 460 54, 470 54.86, 480 56.45 C 490 58.04, 500 60.52, 510 63.55 C 520 66.58, 530 70.44, 540 74.61 C 550 78.78, 560 83.65, 570 88.55 C 580 93.45, 590 98.85, 600 104 C 610 109.15, 620 114.55, 630 119.45 C 640 124.35, 650 129.22, 660 133.39 C 670 137.56, 680 141.42, 690 144.45 C 700 147.48, 710 149.96, 720 151.55 C 730 153.14, 740 154, 750 154 C 760 154, 770 153.14, 780 151.55 C 790 149.96, 800 147.48, 810 144.45 C 820 141.42, 830 137.56, 840 133.39 C 850 129.22, 860 124.35, 870 119.45 C 880 114.55, 890 109.15, 900 104 C 910 98.85, 920 93.45, 930 88.55 C 940 83.65, 950 78.78, 960 74.61 C 970 70.44, 980 66.58, 990 63.55 C 1000 60.52, 1010 58.04, 1020 56.45 C 1030 54.86, 1040 54, 1050 54 C 1060 54, 1070 54.86, 1080 56.45 C 1090 58.04, 1100 60.52, 1110 63.55 C 1120 66.58, 1130 70.44, 1140 74.61 C 1150 78.78, 1160 83.65, 1170 88.55 C 1180 93.45, 1195 101.42, 1200 104 L 1200 260 Z" fill="#464aff"/>
                          </g>
                        </svg>

                        </div>
                    credits_used: 3
                    credits_remaining: null
                zigzag_flipped:
                  summary: Zigzag, flipped
                  value:
                    tool: svg-wave-generator
                    tool_version: 1.0.1
                    outputs:
                      svg: >-
                        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800
                        150" width="800" height="150"
                        preserveAspectRatio="none">
                          <rect width="800" height="150" fill="#fff7ed"/>
                          <g transform="translate(0,150) scale(1,-1)">
                          <path d="M 0 150 L 0 60 L 80 -10 L 160 81 L 240 -10 L 320 81 L 400 -10 L 480 81 L 560 -10 L 640 81 L 720 -10 L 800 60 L 800 150 Z" fill="#f97316"/>
                          </g>
                        </svg>
                      css: |-
                        .wave-divider {
                          background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20800%20150%22%20width%3D%22800%22%20height%3D%22150%22%20preserveAspectRatio%3D%22none%22%3E%0A%20%20%3Crect%20width%3D%22800%22%20height%3D%22150%22%20fill%3D%22%23fff7ed%22%2F%3E%0A%20%20%3Cg%20transform%3D%22translate(0%2C150)%20scale(1%2C-1)%22%3E%0A%20%20%3Cpath%20d%3D%22M%200%20150%20L%200%2060%20L%2080%20-10%20L%20160%2081%20L%20240%20-10%20L%20320%2081%20L%20400%20-10%20L%20480%2081%20L%20560%20-10%20L%20640%2081%20L%20720%20-10%20L%20800%2060%20L%20800%20150%20Z%22%20fill%3D%22%23f97316%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E");
                          background-repeat: no-repeat;
                          background-position: bottom center;
                          background-size: 100% auto;
                        }
                      html: >-
                        <div class="wave-divider" style="line-height:0">

                        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800
                        150" width="800" height="150"
                        preserveAspectRatio="none">
                          <rect width="800" height="150" fill="#fff7ed"/>
                          <g transform="translate(0,150) scale(1,-1)">
                          <path d="M 0 150 L 0 60 L 80 -10 L 160 81 L 240 -10 L 320 81 L 400 -10 L 480 81 L 560 -10 L 640 81 L 720 -10 L 800 60 L 800 150 Z" fill="#f97316"/>
                          </g>
                        </svg>

                        </div>
                    credits_used: 3
                    credits_remaining: null
              schema:
                type: object
                required:
                  - tool
                  - tool_version
                  - outputs
                  - credits_used
                  - credits_remaining
                properties:
                  outputs:
                    type: object
                    properties:
                      svg:
                        type: string
                        description: SVG code
                      css:
                        type: string
                        description: CSS background
                      html:
                        type: string
                        description: HTML snippet
                  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_…

````