Fattly AI Images API

The Images API from Fattly AI — 3 operation(s) for images.

GitHub OpenAPI

Operations 3

POST /api/generate Generate or edit images #
POST /api/upscale Upscale an image #
POST /api/remove-bg Remove the background #

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/fattly-app:fattly-app-images-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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

fattly-app-images-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Fattly Images API
  version: 1.0.0
  summary: UGC video ads, AI images, video and voiceovers from 40+ models.
  description: 'REST API of fattly.app — the same engine as the web app, the CLI (`npm i -g fattly`) and the MCP server (`https://fattly.app/api/mcp`).


    **Auth:** create a key at fattly.app → Dashboard → API keys and send `Authorization: Bearer gpx_live_...`.


    **Billing:** every generation spends credits from the key owner''s account (GET /api/models lists prices). Failed generations are refunded automatically. Keys can have a daily spend limit.


    **Async jobs:** video, video ads and other long jobs return an `id` — poll GET /api/video/status?id=... every 5-10 s until `completed` or `failed`.


    **Inputs:** image inputs must be URLs returned by POST /api/upload.


    **Content policy:** safe-for-work only, adults only, use only faces and voices you have the right to use.


    **Ad presets and creator avatars:** preset ids (templateId) and avatars are listed by the MCP tools fattly_list_ad_presets and fattly_create_avatar (MCP server: https://fattly.app/api/mcp).'
  contact:
    name: Fattly
    url: https://fattly.app
    email: contact@fattly.app
  termsOfService: https://fattly.app/regulamin
servers:
- url: https://fattly.app
security:
- bearerAuth: []
tags:
- name: Images
paths:
  /api/generate:
    post:
      tags:
      - Images
      operationId: generateImage
      summary: Generate or edit images
      description: Text-to-image, or image editing when `inputImageUrls` is set (multi-image edit models).
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                prompt:
                  type: string
                  description: Description of the image to generate.
                modelId:
                  type: string
                  description: 'Model id (default nano-banana-2). List: GET /api/models.'
                aspectRatio:
                  type: string
                  description: Aspect ratio, e.g. 1:1, 16:9, 9:16 (default 1:1).
                numImages:
                  type: integer
                  minimum: 1
                  maximum: 4
                  description: Number of images 1–4 (default 1).
                inputImageUrls:
                  type: array
                  items:
                    type: string
                  maxItems: 4
                  description: 'Optional MULTIPLE input images (fal URLs) for multi-image edit models like nano-banana-2-edit / nano-banana-pro-edit. Typical swap use: image #1 = the scene/frame to keep (background, framing, lighting), image #2 = the subject/face to place into that scene. Get each URL from POST /api/upload.'
              required:
              - prompt
              additionalProperties: false
      responses:
        '200':
          description: Finished images
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                  imageUrls:
                    type: array
                    items:
                      type: string
                      format: uri
                required:
                - imageUrls
        '400':
          description: Invalid input or blocked content
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Missing, invalid or revoked API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '402':
          description: Not enough credits
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Rate limit or daily key spend limit reached
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/upscale:
    post:
      tags:
      - Images
      operationId: upscaleImage
      summary: Upscale an image
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                imageUrl:
                  type: string
                  description: Image to upscale — a fal URL from POST /api/upload.
                factor:
                  type: integer
                  minimum: 2
                  maximum: 4
                  description: Scale factor 2–4 (default 2).
              required:
              - imageUrl
              additionalProperties: false
      responses:
        '200':
          description: Upscaled image
          content:
            application/json:
              schema:
                type: object
                properties:
                  url:
                    type: string
                    format: uri
                    description: Link to the finished file (signed, valid about 1 hour — download it or fetch a fresh link).
                required:
                - url
        '400':
          description: Invalid input or blocked content
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Missing, invalid or revoked API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '402':
          description: Not enough credits
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Rate limit or daily key spend limit reached
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/remove-bg:
    post:
      tags:
      - Images
      operationId: removeBackground
      summary: Remove the background
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                imageUrl:
                  type: string
                  description: Image to cut out — a fal URL from POST /api/upload.
              required:
              - imageUrl
              additionalProperties: false
      responses:
        '200':
          description: Cutout
          content:
            application/json:
              schema:
                type: object
                properties:
                  url:
                    type: string
                    format: uri
                    description: Link to the finished file (signed, valid about 1 hour — download it or fetch a fresh link).
                required:
                - url
        '400':
          description: Invalid input or blocked content
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Missing, invalid or revoked API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '402':
          description: Not enough credits
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Rate limit or daily key spend limit reached
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    Error:
      type: object
      properties:
        error:
          type: string
      required:
      - error
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: API key gpx_live_... from fattly.app → Dashboard → API keys.
externalDocs:
  description: MCP / Claude setup
  url: https://fattly.app/claude-mcp