BasePic Images API

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

Operations 4

POST /api/v1/images Upload an image from a URL, base64 data or the request body #
GET /api/v1/images/{id} Get an image’s links and details #
DELETE /api/v1/images/{id} Delete an image (needs its delete_key) #
POST /api/v1/images/{id}/edit Edit an image and get a NEW image with its own links (the original stays… #

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/basepic-com:basepic-com-images-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

basepic-com-images-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: BasePic Images API
  version: 1.0.0
  description: 'Upload an image, edit it (rotate, flip, crop, resize, resize to a file size in KB, grayscale, sepia, brightness, contrast and more) and get a shareable link or a download link. Free, no API key. Edits create a new image; the original stays unchanged. Limits per IP address: 60 uploads or edits per hour, 300 per day and 2 GB per day; 20 uploads from a link per hour and 100 per day. Claude and ChatGPT share one limit per service: 300 uploads or edits per hour, 1,500 per day and 2 GB per day; 100 uploads from a link per hour and 500 per day. Images up to 50 MB. CORS: not supported — call from a server or a script. An MCP server with the same tools is at https://basepic.com/mcp.'
servers:
- url: https://basepic.com
tags:
- name: Images
paths:
  /api/v1/images:
    post:
      operationId: uploadImage
      summary: Upload an image from a URL, base64 data or the request body
      parameters:
      - name: filename
        in: query
        required: false
        schema:
          type: string
        description: File name when the body is the image itself.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                url:
                  type: string
                  format: uri
                  description: Public link to an image (or to a post on X, Instagram or Facebook).
                image_base64:
                  type: string
                  description: 'The image as base64 (a data: URL works too).'
                filename:
                  type: string
                  description: Optional file name, e.g. "beach.jpg".
                expires_in_days:
                  type: integer
                  enum:
                  - 1
                  - 7
                  - 30
                  - 365
                  description: Delete the image automatically after this many days. Omit to keep it until deleted.
          image/*:
            schema:
              type: string
              format: binary
      responses:
        '201':
          description: The uploaded image, with links and its delete_key
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    description: Image id (6 or 8 characters).
                    example: vqSvesFU
                  name:
                    type: string
                    example: beach.jpg
                  type:
                    type: string
                    enum:
                    - image
                    - video
                    - file
                  mime:
                    type: string
                    example: image/jpeg
                  width:
                    type:
                    - integer
                    - 'null'
                  height:
                    type:
                    - integer
                    - 'null'
                  size_bytes:
                    type: integer
                  page_url:
                    type: string
                    format: uri
                    description: 'Short link: a page with the image and a preview card in chats. Best for sharing.'
                  image_url:
                    type: string
                    format: uri
                    description: Direct link to the image file (for <img>, Markdown, embedding).
                  download_url:
                    type: string
                    format: uri
                    description: Same file, sent as a download (attachment).
                  created_at:
                    type: string
                    format: date-time
                  expires_at:
                    type: string
                    nullable: true
                    description: When the image will be deleted automatically (ISO 8601), or null if it stays.
                  delete_key:
                    type: string
                    description: Returned only when the image is created. Keep it to delete the image later.
                  source_id:
                    type: string
                    description: 'Edits only: id of the original image (it stays unchanged).'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        '404':
          description: Not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        '413':
          description: Too large
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        '415':
          description: Unsupported type
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        '429':
          description: Rate limit reached
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
      tags:
      - Images
  /api/v1/images/{id}:
    get:
      operationId: getImage
      summary: Get an image’s links and details
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: The image
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    description: Image id (6 or 8 characters).
                    example: vqSvesFU
                  name:
                    type: string
                    example: beach.jpg
                  type:
                    type: string
                    enum:
                    - image
                    - video
                    - file
                  mime:
                    type: string
                    example: image/jpeg
                  width:
                    type:
                    - integer
                    - 'null'
                  height:
                    type:
                    - integer
                    - 'null'
                  size_bytes:
                    type: integer
                  page_url:
                    type: string
                    format: uri
                    description: 'Short link: a page with the image and a preview card in chats. Best for sharing.'
                  image_url:
                    type: string
                    format: uri
                    description: Direct link to the image file (for <img>, Markdown, embedding).
                  download_url:
                    type: string
                    format: uri
                    description: Same file, sent as a download (attachment).
                  created_at:
                    type: string
                    format: date-time
                  expires_at:
                    type: string
                    nullable: true
                    description: When the image will be deleted automatically (ISO 8601), or null if it stays.
                  delete_key:
                    type: string
                    description: Returned only when the image is created. Keep it to delete the image later.
                  source_id:
                    type: string
                    description: 'Edits only: id of the original image (it stays unchanged).'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        '404':
          description: Not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        '413':
          description: Too large
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        '415':
          description: Unsupported type
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        '429':
          description: Rate limit reached
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
      tags:
      - Images
    delete:
      operationId: deleteImage
      summary: Delete an image (needs its delete_key)
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: X-Delete-Key
        in: header
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Deleted
          content:
            application/json:
              schema:
                type: object
                properties:
                  deleted:
                    type: boolean
                  id:
                    type: string
        '403':
          description: Wrong delete_key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        '404':
          description: Not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        '413':
          description: Too large
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        '415':
          description: Unsupported type
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        '429':
          description: Rate limit reached
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
      tags:
      - Images
  /api/v1/images/{id}/edit:
    post:
      operationId: editImage
      summary: Edit an image and get a NEW image with its own links (the original stays…
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                operations:
                  type: array
                  maxItems: 20
                  items:
                    type: object
                    required:
                    - op
                    properties:
                      op:
                        type: string
                        enum:
                        - rotate
                        - flip
                        - crop
                        - resize
                        - grayscale
                        - sepia
                        - brightness
                        - contrast
                        - warm
                        - cool
                        - invert
                        - blur
                        - sharpen
                      degrees:
                        type: integer
                        enum:
                        - 90
                        - 180
                        - 270
                        - -90
                        - -180
                        - -270
                        description: 'rotate: clockwise degrees.'
                      direction:
                        type: string
                        enum:
                        - horizontal
                        - vertical
                        description: flip.
                      aspect:
                        type: string
                        description: 'crop: centered crop to an aspect ratio such as "1:1", "4:5" or "16:9".'
                      x:
                        type: integer
                      y:
                        type: integer
                      width:
                        type: integer
                        description: 'crop: width in pixels; resize: target width (keeps proportions).'
                      height:
                        type: integer
                        description: 'crop: height in pixels; resize: target height (keeps proportions).'
                      percent:
                        type: number
                        description: 'resize: 1–400.'
                      megapixels:
                        type: number
                        description: 'resize: target size in megapixels.'
                      value:
                        type: number
                        description: 'brightness / contrast: -100 to 100.'
                      radius:
                        type: integer
                        description: 'blur: 1–10.'
                  description: Applied in order, e.g. [{"op":"rotate","degrees":90},{"op":"grayscale"}].
                format:
                  type: string
                  enum:
                  - jpeg
                  - png
                  - webp
                  description: 'Output format (default: same as the original; GIF becomes PNG).'
                quality:
                  type: integer
                  minimum: 1
                  maximum: 100
                  description: JPEG/WebP quality, default 90.
                max_kb:
                  type: integer
                  minimum: 5
                  description: 'Make the file at most this many KB, counting 1 KB as 1,000 bytes (JPEG/WebP): best quality that fits, smaller dimensions if needed.'
                filename:
                  type: string
            example:
              operations:
              - op: rotate
                degrees: 90
              - op: resize
                width: 1080
              - op: sepia
              format: jpeg
              max_kb: 200
      responses:
        '201':
          description: The new, edited image
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    description: Image id (6 or 8 characters).
                    example: vqSvesFU
                  name:
                    type: string
                    example: beach.jpg
                  type:
                    type: string
                    enum:
                    - image
                    - video
                    - file
                  mime:
                    type: string
                    example: image/jpeg
                  width:
                    type:
                    - integer
                    - 'null'
                  height:
                    type:
                    - integer
                    - 'null'
                  size_bytes:
                    type: integer
                  page_url:
                    type: string
                    format: uri
                    description: 'Short link: a page with the image and a preview card in chats. Best for sharing.'
                  image_url:
                    type: string
                    format: uri
                    description: Direct link to the image file (for <img>, Markdown, embedding).
                  download_url:
                    type: string
                    format: uri
                    description: Same file, sent as a download (attachment).
                  created_at:
                    type: string
                    format: date-time
                  expires_at:
                    type: string
                    nullable: true
                    description: When the image will be deleted automatically (ISO 8601), or null if it stays.
                  delete_key:
                    type: string
                    description: Returned only when the image is created. Keep it to delete the image later.
                  source_id:
                    type: string
                    description: 'Edits only: id of the original image (it stays unchanged).'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        '404':
          description: Not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        '413':
          description: Too large
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        '415':
          description: Unsupported type
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        '429':
          description: Rate limit reached
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
      tags:
      - Images