BasePic Images API
The Images API from BasePic — 3 operation(s) for images.
The Images API from BasePic — 3 operation(s) for images.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/basepic-com:basepic-com-images-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: 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