{
  "service": "abyssale",
  "displayName": "Abyssale",
  "categories": [
    "Design",
    "Marketing"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Key",
      "placeholder": "ABYSSALE_API_KEY",
      "description": "Abyssale API key sent with the x-api-key header. Create or copy it from the API page in your Abyssale account: https://app.abyssale.com/api-key."
    }
  ],
  "homepageUrl": "https://www.abyssale.com/",
  "actions": [
    {
      "id": "abyssale.create_dynamic_image_url",
      "service": "abyssale",
      "name": "create_dynamic_image_url",
      "description": "Create or retrieve the dynamic image URL for an Abyssale design.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "designId": {
            "type": "string",
            "description": "The unique identifier of the design.",
            "format": "uuid"
          },
          "enableRateLimit": {
            "type": "boolean",
            "description": "Whether API rate limiting should be enabled for the image."
          },
          "enableProductionMode": {
            "type": "boolean",
            "description": "Whether production mode should be enabled for the image."
          }
        },
        "additionalProperties": false,
        "required": [
          "designId"
        ],
        "description": "Input for creating an Abyssale dynamic image URL."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "anyOf": [
              {
                "type": "string",
                "description": "The dynamic image identifier when returned by Abyssale."
              },
              {
                "type": "null"
              }
            ]
          },
          "url": {
            "anyOf": [
              {
                "type": "string",
                "description": "The dynamic image URL.",
                "format": "uri"
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw response object returned by Abyssale."
          }
        },
        "additionalProperties": false,
        "required": [
          "id",
          "url",
          "raw"
        ],
        "description": "The normalized Abyssale dynamic image URL result."
      }
    },
    {
      "id": "abyssale.create_project",
      "service": "abyssale",
      "name": "create_project",
      "description": "Create an Abyssale project to organize templates and generated images.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 2,
            "maxLength": 100,
            "description": "The project name."
          }
        },
        "additionalProperties": false,
        "required": [
          "name"
        ],
        "description": "Input for creating an Abyssale project."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "project": {
            "type": "object",
            "properties": {
              "id": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The unique identifier of the project."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "name": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The display name of the project."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "createdAt": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The project creation timestamp in seconds since epoch."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "raw": {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "The raw response object returned by Abyssale."
              }
            },
            "additionalProperties": false,
            "required": [
              "id",
              "name",
              "createdAt",
              "raw"
            ],
            "description": "A normalized Abyssale project."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw response object returned by Abyssale."
          }
        },
        "additionalProperties": false,
        "required": [
          "project",
          "raw"
        ],
        "description": "The created Abyssale project."
      }
    },
    {
      "id": "abyssale.generate_banner",
      "service": "abyssale",
      "name": "generate_banner",
      "description": "Generate one Abyssale image from a design using JSON element overrides and return the generated file metadata.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "designId": {
            "type": "string",
            "description": "The unique identifier of the design.",
            "format": "uuid"
          },
          "elements": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Abyssale element overrides keyed by layer name and forwarded to the generation endpoint."
          },
          "templateFormatName": {
            "type": "string",
            "minLength": 1,
            "description": "The format ID to generate when the design contains multiple formats."
          },
          "fileCompressionLevel": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "The percentage of compression to apply."
          }
        },
        "additionalProperties": false,
        "required": [
          "designId",
          "elements"
        ],
        "description": "Input for generating an Abyssale banner from a design."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "banner": {
            "type": "object",
            "properties": {
              "id": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The unique identifier of the generated file."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "url": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The public URL of the generated file.",
                    "format": "uri"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "fileType": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The generated file type when returned by Abyssale."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "createdAt": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The file creation timestamp in seconds since epoch."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "raw": {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "The raw response object returned by Abyssale."
              }
            },
            "additionalProperties": false,
            "required": [
              "id",
              "url",
              "fileType",
              "createdAt",
              "raw"
            ],
            "description": "A normalized Abyssale generated file."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw response object returned by Abyssale."
          }
        },
        "additionalProperties": false,
        "required": [
          "banner",
          "raw"
        ],
        "description": "The normalized Abyssale generated file result."
      }
    },
    {
      "id": "abyssale.get_banner",
      "service": "abyssale",
      "name": "get_banner",
      "description": "Retrieve metadata for an Abyssale generated file.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "bannerId": {
            "type": "string",
            "description": "The unique identifier of the generated file.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "required": [
          "bannerId"
        ],
        "description": "Input for retrieving an Abyssale generated file."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "banner": {
            "type": "object",
            "properties": {
              "id": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The unique identifier of the generated file."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "url": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The public URL of the generated file.",
                    "format": "uri"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "fileType": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The generated file type when returned by Abyssale."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "createdAt": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The file creation timestamp in seconds since epoch."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "raw": {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "The raw response object returned by Abyssale."
              }
            },
            "additionalProperties": false,
            "required": [
              "id",
              "url",
              "fileType",
              "createdAt",
              "raw"
            ],
            "description": "A normalized Abyssale generated file."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw response object returned by Abyssale."
          }
        },
        "additionalProperties": false,
        "required": [
          "banner",
          "raw"
        ],
        "description": "The normalized Abyssale generated file."
      }
    },
    {
      "id": "abyssale.get_design",
      "service": "abyssale",
      "name": "get_design",
      "description": "Retrieve Abyssale design details including formats, elements, and variables.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "designId": {
            "type": "string",
            "description": "The unique identifier of the design.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "required": [
          "designId"
        ],
        "description": "Input for retrieving an Abyssale design."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "design": {
            "type": "object",
            "properties": {
              "id": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The unique identifier of the design."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "name": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The display name of the design."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "type": {
                "anyOf": [
                  {
                    "type": "string",
                    "enum": [
                      "static",
                      "animated",
                      "printer",
                      "printer_multipage"
                    ],
                    "description": "The Abyssale design type."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "previewUrl": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The preview image URL of the first design format.",
                    "format": "uri"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "createdAt": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The design creation timestamp in seconds since epoch."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "updatedAt": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The design update timestamp in seconds since epoch."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "raw": {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "The raw response object returned by Abyssale."
              }
            },
            "additionalProperties": false,
            "required": [
              "id",
              "name",
              "type",
              "previewUrl",
              "createdAt",
              "updatedAt",
              "raw"
            ],
            "description": "A normalized Abyssale design summary."
          },
          "formats": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "The raw response object returned by Abyssale."
            },
            "description": "Formats available in the design."
          },
          "elements": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "The raw response object returned by Abyssale."
            },
            "description": "Customizable elements in the design."
          },
          "variables": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Variables used within text layers of the design."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw response object returned by Abyssale."
          }
        },
        "additionalProperties": false,
        "required": [
          "design",
          "formats",
          "elements",
          "variables",
          "raw"
        ],
        "description": "The normalized Abyssale design details."
      }
    },
    {
      "id": "abyssale.get_design_format",
      "service": "abyssale",
      "name": "get_design_format",
      "description": "Retrieve detailed information for one Abyssale design format.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "designId": {
            "type": "string",
            "description": "The unique identifier of the design.",
            "format": "uuid"
          },
          "formatSpecifier": {
            "type": "string",
            "minLength": 1,
            "description": "The format name or UID."
          }
        },
        "additionalProperties": false,
        "required": [
          "designId",
          "formatSpecifier"
        ],
        "description": "Input for retrieving an Abyssale design format."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "format": {
            "type": "object",
            "properties": {
              "id": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The format identifier."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "uid": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The unique identifier of the format instance."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "width": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The width of the format."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "height": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The height of the format."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "unit": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The unit used by width and height."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "previewUrl": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The preview image URL for this format.",
                    "format": "uri"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "dynamicImageUrl": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The dynamic image URL for this format.",
                    "format": "uri"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "raw": {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "The raw response object returned by Abyssale."
              }
            },
            "additionalProperties": false,
            "required": [
              "id",
              "uid",
              "width",
              "height",
              "unit",
              "previewUrl",
              "dynamicImageUrl",
              "raw"
            ],
            "description": "A normalized Abyssale design format."
          },
          "elements": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "The raw response object returned by Abyssale."
            },
            "description": "Customizable elements in the design format."
          },
          "variables": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Variables used within text layers of the format."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw response object returned by Abyssale."
          }
        },
        "additionalProperties": false,
        "required": [
          "format",
          "elements",
          "variables",
          "raw"
        ],
        "description": "The normalized Abyssale design format details."
      }
    },
    {
      "id": "abyssale.list_designs",
      "service": "abyssale",
      "name": "list_designs",
      "description": "List Abyssale designs available to the API key.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "No input is required to list Abyssale designs."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "designs": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The unique identifier of the design."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "name": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The display name of the design."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "type": {
                  "anyOf": [
                    {
                      "type": "string",
                      "enum": [
                        "static",
                        "animated",
                        "printer",
                        "printer_multipage"
                      ],
                      "description": "The Abyssale design type."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "previewUrl": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The preview image URL of the first design format.",
                      "format": "uri"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "createdAt": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "description": "The design creation timestamp in seconds since epoch."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "updatedAt": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "description": "The design update timestamp in seconds since epoch."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "raw": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "The raw response object returned by Abyssale."
                }
              },
              "additionalProperties": false,
              "required": [
                "id",
                "name",
                "type",
                "previewUrl",
                "createdAt",
                "updatedAt",
                "raw"
              ],
              "description": "A normalized Abyssale design summary."
            },
            "description": "Designs returned by Abyssale."
          },
          "raw": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "The raw response object returned by Abyssale."
            },
            "description": "The raw Abyssale design records."
          }
        },
        "additionalProperties": false,
        "required": [
          "designs",
          "raw"
        ],
        "description": "A page of Abyssale designs."
      }
    },
    {
      "id": "abyssale.list_fonts",
      "service": "abyssale",
      "name": "list_fonts",
      "description": "List custom and Google fonts available in Abyssale.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "No input is required to list Abyssale fonts."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "fonts": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The unique identifier of the font when returned by Abyssale."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "name": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The display name of the font."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "family": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The font family name when returned by Abyssale."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "raw": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "The raw response object returned by Abyssale."
                }
              },
              "additionalProperties": false,
              "required": [
                "id",
                "name",
                "family",
                "raw"
              ],
              "description": "A normalized Abyssale font record."
            },
            "description": "Fonts returned by Abyssale."
          },
          "raw": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "The raw response object returned by Abyssale."
            },
            "description": "The raw Abyssale font records."
          }
        },
        "additionalProperties": false,
        "required": [
          "fonts",
          "raw"
        ],
        "description": "A list of Abyssale fonts."
      }
    },
    {
      "id": "abyssale.list_projects",
      "service": "abyssale",
      "name": "list_projects",
      "description": "List Abyssale projects available to the API key.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "No input is required to list Abyssale projects."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "projects": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The unique identifier of the project."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "name": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The display name of the project."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "createdAt": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "description": "The project creation timestamp in seconds since epoch."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "raw": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "The raw response object returned by Abyssale."
                }
              },
              "additionalProperties": false,
              "required": [
                "id",
                "name",
                "createdAt",
                "raw"
              ],
              "description": "A normalized Abyssale project."
            },
            "description": "Projects returned by Abyssale."
          },
          "raw": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "The raw response object returned by Abyssale."
            },
            "description": "The raw Abyssale project records."
          }
        },
        "additionalProperties": false,
        "required": [
          "projects",
          "raw"
        ],
        "description": "A list of Abyssale projects."
      }
    }
  ]
}
