Abyssale Designs API

The Designs API from Abyssale — 10 operation(s) for designs.

Operations 11

GET /designs GET /designs #
POST /designs POST /designs #
DELETE /designs/64238d01-d402-474b-8c2d-fbc957e9d290 DELETE /designs/64238d01-d402-474b-8c2d-fbc957e9d290 #
PUT /designs/64238d01-d402-474b-8c2d-fbc957e9d290/name PUT /designs/64238d01-d402-474b-8c2d-fbc957e9d290/name #
PUT /designs/64238d01-d402-474b-8c2d-fbc957e9d290/project PUT /designs/64238d01-d402-474b-8c2d-fbc957e9d290/project #
POST /designs/import/json POST /designs/import/json #
GET /designs/import/json/64238d01-d402-474b-8c2d-fbc957e9d290 GET /designs/import/json/64238d01-d402-474b-8c2d-fbc957e9d290 #
POST /designs/import/json/9c1f0f4e-… POST /designs/import/json/9c1f0f4e-… #
GET /designs/{designid} GET /designs/{designid} #
POST /designs/{designid}/dynamic-image-url POST /designs/{designid}/dynamic-image-url #
GET /designs/{designid}/formats/facebook-post GET /designs/{designid}/formats/facebook-post #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/abyssale-com:abyssale-com-designs-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

abyssale-com-designs-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Abyssale Com Designs API
  version: '2026-10-31'
  x-authored-by: API Evangelist
  x-engine: anthropic
  x-evidence-tiers:
    code-example: 23
    documentation: 0
    pages-with-code: 23
    pages-read: 40
  x-generated: '2026-10-31'
  x-generated-from: documentation
  x-generator: generate-contract-from-docs.py
  x-provenance: generated
  x-sources:
  - https://developers.abyssale.com/rest-api/endpoint-catalog
  - https://developers.abyssale.com/rest-api/quickstart
  - https://developers.abyssale.com/rest-api/designs/import/examples
  - https://developers.abyssale.com/dynamic-images/create-a-dynamic-image-by-api
  - https://developers.abyssale.com/rest-api/fonts
  - https://developers.abyssale.com/rest-api/credits
  - https://developers.abyssale.com/rest-api/designs
  - https://developers.abyssale.com/rest-api/projects
  - https://developers.abyssale.com/rest-api/generation
  - https://developers.abyssale.com/rest-api/rate-limits
  - https://developers.abyssale.com/rest-api/asset-export
  - https://developers.abyssale.com/rest-api/designs/move
  - https://developers.abyssale.com/rest-api/authentication
  - https://developers.abyssale.com/rest-api/designs/delete
  - https://developers.abyssale.com/rest-api/designs/import
  - https://developers.abyssale.com/rest-api/designs/rename
  - https://developers.abyssale.com/rest-api/layers-overview
  - https://developers.abyssale.com/rest-api/designs/as-import
  - https://developers.abyssale.com/rest-api/generation/errors
  - https://developers.abyssale.com/rest-api/overview-rest-api
  - https://developers.abyssale.com/rest-api/workspace-templates
  - https://developers.abyssale.com/rest-api/designs/import/print
  - https://developers.abyssale.com/rest-api/designs/list-designs
  - https://developers.abyssale.com/rest-api/designs/import/create
  - https://developers.abyssale.com/rest-api/designs/import/status
  - https://developers.abyssale.com/rest-api/designs/design-details
  - https://developers.abyssale.com/rest-api/designs/import/animated
  - https://developers.abyssale.com/rest-api/designs/import/validate
  - https://developers.abyssale.com/rest-api/workspace-templates/use
  - https://developers.abyssale.com/rest-api/designs/import/upload-assets
  - https://developers.abyssale.com/rest-api/generation/visual-versioning
  - https://developers.abyssale.com/rest-api/designs/design-format-details
  - https://developers.abyssale.com/rest-api/generation/design-information
  - https://developers.abyssale.com/rest-api/designs/vs-workspace-templates
  - https://developers.abyssale.com/rest-api/designs/import/layer-types/text
  - https://developers.abyssale.com/rest-api/designs/import/layer-types/group
  - https://developers.abyssale.com/rest-api/designs/import/printer-multipage
  - https://developers.abyssale.com/rest-api/designs/import/layer-types/button
  - https://developers.abyssale.com/rest-api/generation/asynchronous-generation
  - https://developers.abyssale.com/rest-api/generation/element-properties/text
  description: 'Operations tagged Designs across 2 of this provider''s published API definitions: abyssale-com-openapi-generated.yml, abyssale-com-openapi-generated.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.abyssale.com
security:
- apiKey: []
tags:
- name: Designs
paths:
  /designs:
    get:
      operationId: get_designs
      tags:
      - Designs
      summary: GET /designs
      x-source: https://developers.abyssale.com/rest-api/designs/list-designs
      responses:
        '200':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetDesignsResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl -G -i -H "x-api-key: {YOUR-API-KEY}" "https://api.abyssale.com/designs"  --data-urlencode "type=static,animated"  --data-urlencode "orientation=portrait"  --data-urlencode "updated_since=2026-09-28"  --data-urlencode "sort=updated"  --data-urlencode "per_page=25" '
    post:
      operationId: post_designs
      tags:
      - Designs
      summary: POST /designs
      x-source: https://developers.abyssale.com/rest-api/quickstart
      parameters:
      - name: type
        in: query
        required: false
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl Node.js Python bash curl -H \"x-api-key: $ABYSSALE_API_KEY \"  \"https://api.abyssale.com/designs?type=static\" javascript const {data} = await abyssale. listDesigns ({ type: 'static' }); \n console. log (data. map (( d ) => `${ d . id } ${ d . name }` ). join ( ' \\n ' )); python for design in client.list_designs( type = \"static\" ): \n print (design.id, design.name) json [ \n { \n \"id\" : \"64238d01-d4"
    servers:
    - url: https://api.abyssale.com
  /designs/64238d01-d402-474b-8c2d-fbc957e9d290:
    delete:
      operationId: delete_designs_64238d01_d402_474b_8c2d_fbc957e9d290
      tags:
      - Designs
      summary: DELETE /designs/64238d01-d402-474b-8c2d-fbc957e9d290
      x-source: https://developers.abyssale.com/rest-api/designs/delete
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -X DELETE  -H \"x-api-key: {YOUR-API-KEY}\"  https://api.abyssale.com/designs/64238d01-d402-474b-8c2d-fbc957e9d290 Response ​ The design that was deleted. Field Type Description id string (uuid) The design's id. name string The design's name. json { \n \"id\" : \"64238d01-d402-474b-8c2d-fbc957e9d290\" , \n \"name\" : \"Summer sale\" , \n \"version\" : \"v2026-10-21\" \n } After the delete ​ GET /designs No lon"
    servers:
    - url: https://api.abyssale.com
  /designs/64238d01-d402-474b-8c2d-fbc957e9d290/name:
    put:
      operationId: put_designs_64238d01_d402_474b_8c2d_fbc957e9d290_name
      tags:
      - Designs
      summary: PUT /designs/64238d01-d402-474b-8c2d-fbc957e9d290/name
      x-source: https://developers.abyssale.com/rest-api/designs/rename
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PutDesigns64238D01D402474B8C2DFbc957E9D290NameRequest'
      responses:
        '200':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PutDesigns64238D01D402474B8C2DFbc957E9D290NameResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl -X PUT  -H "x-api-key: {YOUR-API-KEY}"  -H "Content-Type: application/json"  -d ''{"name": "Summer sale"}''  https://api.abyssale.com/designs/64238d01-d402-474b-8c2d-fbc957e9d290/name Request body ​ Field Type Required Description name string Yes The new name, 1 to 100 characters once trimmed . A name of spaces only is refused. Sending the name the design already has succeeds and changes nothin'
    servers:
    - url: https://api.abyssale.com
  /designs/64238d01-d402-474b-8c2d-fbc957e9d290/project:
    put:
      operationId: put_designs_64238d01_d402_474b_8c2d_fbc957e9d290_project
      tags:
      - Designs
      summary: PUT /designs/64238d01-d402-474b-8c2d-fbc957e9d290/project
      x-source: https://developers.abyssale.com/rest-api/designs/move
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PutDesigns64238D01D402474B8C2DFbc957E9D290ProjectRequest'
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl -X PUT  -H "x-api-key: {YOUR-API-KEY}"  -H "Content-Type: application/json"  -d ''{"project_id": "9d00e9fe-9bd5-4471-acad-baa702a867e9"}''  https://api.abyssale.com/designs/64238d01-d402-474b-8c2d-fbc957e9d290/project Request body ​ Field Type Required Description project_id string (uuid) Yes The destination project. List projects and their ids with GET /projects . Response ​ Field Type Descrip'
    servers:
    - url: https://api.abyssale.com
  /designs/import/json:
    post:
      operationId: post_designs_import_json
      tags:
      - Designs
      summary: POST /designs/import/json
      x-source: https://developers.abyssale.com/rest-api/designs/import/examples
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl -X POST https://api.abyssale.com/designs/import/json  -H "x-api-key: $API_KEY "  -H "Content-Type: application/json"  -d @welcome-email-banner.json Then poll status until DONE . To check a payload without creating anything, add ?validate_only=true and expect 204 No Content . Import as a workspace template instead Replace the target object with { "kind": "workspace_template" } — it takes no pr'
    servers:
    - url: https://api.abyssale.com
  /designs/import/json/64238d01-d402-474b-8c2d-fbc957e9d290:
    get:
      operationId: get_designs_import_json_64238d01_d402_474b_8c2d_fbc957e9d290
      tags:
      - Designs
      summary: GET /designs/import/json/64238d01-d402-474b-8c2d-fbc957e9d290
      x-source: https://developers.abyssale.com/rest-api/designs/import/status
      responses:
        '200':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetDesignsImportJson64238D01D402474B8C2DFbc957E9D290Response'
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl " $STATUS_URL "  -H "x-api-key: $API_KEY " $STATUS_URL is the links.status value from the POST or PUT response. Scope ​ Results are always scoped to the company associated with your API key. Polling an import that belongs to a different company returns 404 Not Found . List your imports ​ GET /designs/import/json API Reference Alpha Lists your JSON imports, newest first. Recovering a lost impo'
    servers:
    - url: https://api.abyssale.com
  /designs/import/json/9c1f0f4e-…:
    post:
      operationId: post_designs_import_json_9c1f0f4e
      tags:
      - Designs
      summary: POST /designs/import/json/9c1f0f4e-…
      x-source: https://developers.abyssale.com/rest-api/designs/import/upload-assets
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -sS -X POST \" $url \" \"${ form [ @ ]}\" -F \"file=@./assets/${name}.jpg\"  && echo \"uploaded ${name}\" \n done 4. Validate ​ Only once every entry is uploaded: bash curl -X PUT \"https://api.abyssale.com/designs/import/json/9c1f0f4e-…\"  -H \"x-api-key: $API_KEY \" This is the step that tells Abyssale to start building. It checks each expected asset is really in place — miss one and you get 422 with mi"
    servers:
    - url: https://api.abyssale.com
  /designs/{designid}:
    get:
      operationId: get_designs_designid
      tags:
      - Designs
      summary: GET /designs/{designid}
      x-source: https://developers.abyssale.com/rest-api/designs/design-details
      parameters:
      - name: designid
        in: path
        required: true
        schema:
          type: string
      - name: i
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl Node.js Python bash curl -H "x-api-key: {YOUR-API-KEY}"  "https://api.abyssale.com/designs/{designId}?i=advanced" javascript import abyssale from ''@abyssale/sdk'' ; '
    servers:
    - url: https://api.abyssale.com
  /designs/{designid}/dynamic-image-url:
    post:
      operationId: post_designs_designid_dynamic_image_url
      tags:
      - Designs
      summary: POST /designs/{designid}/dynamic-image-url
      x-source: https://developers.abyssale.com/dynamic-images/create-a-dynamic-image-by-api
      parameters:
      - name: designid
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostDesignsDesignidDynamicImageUrlRequest'
      responses:
        '201':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostDesignsDesignidDynamicImageUrlResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl Node.js Python bash curl -X POST  -H "x-api-key: {YOUR-API-KEY}"  -H "Content-Type: application/json"  -d ''{"enable_rate_limit": true, "enable_production_mode": true}''  https://api.abyssale.com/designs/{designId}/dynamic-image-url javascript import abyssale from ''@abyssale/sdk'' ; '
    servers:
    - url: https://api.abyssale.com
  /designs/{designid}/formats/facebook-post:
    get:
      operationId: get_designs_designid_formats_facebook_post
      tags:
      - Designs
      summary: GET /designs/{designid}/formats/facebook-post
      x-source: https://developers.abyssale.com/rest-api/designs/design-format-details
      parameters:
      - name: designid
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetDesignsDesignidFormatsFacebookPostResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl Node.js Python bash curl -H "x-api-key: {YOUR-API-KEY}"  https://api.abyssale.com/designs/{designId}/formats/facebook-post javascript import abyssale from ''@abyssale/sdk'' ; '
    servers:
    - url: https://api.abyssale.com
components:
  schemas:
    PostDesignsDesignidDynamicImageUrlResponse:
      type: object
      properties:
        id:
          type: string
        design_id:
          type: string
        formats:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              uid:
                type: string
              width:
                type: integer
              height:
                type: integer
              unit:
                type: string
              dynamic_image_url:
                type: string
    PutDesigns64238D01D402474B8C2DFbc957E9D290NameResponse:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        version:
          type: string
    PutDesigns64238D01D402474B8C2DFbc957E9D290ProjectRequest:
      type: object
      properties:
        project_id:
          type: string
    PutDesigns64238D01D402474B8C2DFbc957E9D290NameRequest:
      type: object
      properties:
        name:
          type: string
    PostDesignsDesignidDynamicImageUrlRequest:
      type: object
      properties:
        enable_rate_limit:
          type: boolean
        enable_production_mode:
          type: boolean
    GetDesignsDesignidFormatsFacebookPostResponse:
      type: object
      properties:
        id:
          type: string
        uid:
          type: string
        width:
          type: integer
        height:
          type: integer
        unit:
          type: string
        preview_url:
          type: string
        dynamic_image_url:
          type: string
        elements:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
              type:
                type: string
              settings:
                type: object
                properties:
                  is_mandatory:
                    type: boolean
              attributes:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                    help:
                      type: string
                    value:
                      type: string
              layout:
                type: object
                properties:
                  x:
                    type: integer
                  y:
                    type: integer
                  width:
                    type: integer
                  height:
                    type: integer
        variables:
          type: object
          properties:
            name:
              type: string
            title:
              type: string
    GetDesignsImportJson64238D01D402474B8C2DFbc957E9D290Response:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        status:
          type: string
        created_at_ts:
          type: integer
        validated_at_ts:
          type:
          - string
          - 'null'
        warning_count:
          type: integer
        links:
          type: object
          properties:
            status:
              type: string
        result:
          type:
          - string
          - 'null'
    GetDesignsResponse:
      type: object
      properties:
        type:
          type: array
          items:
            type: string
        orientation:
          type: string
        sort:
          type: string
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: x-api-key
x-refined-from:
- abyssale-com-openapi-generated.yml
- abyssale-com-openapi-generated.yml