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/budgetpixel:budgetpixel-openai-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: 3.2.0
info:
title: Budgetpixel Open AI API
version: '2026-06-20'
contact:
email: support@budgetpixel.com
name: BudgetPixel Support
description: 'Operations tagged OpenAI across 2 of this provider''s published API definitions: budgetpixel-openapi.yaml, budgetpixel-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- description: Production
url: https://api.budgetpixel.com/v1
security:
- ApiKeyAuth: []
tags:
- name: Openai
paths:
/images/gpt-image-2:
post:
description: 'OpenAI GPT-Image-2 — next-generation image model with significantly improved text rendering. Text-to-image and image editing with up to 9 reference images, 1K/2K/4K output, and three quality levels. Billing: per image, resolution × quality — medium quality bills 60/120/180 credits at 1K/2K/4K, low bills half that (30/60/90), high bills 250/500/750.
**Asynchronous.** Returns a job `id` (the image is not in this response). Poll `GET /v1/images/{id}` until `status` is `succeeded` — the generated image URLs are in that response''s `images` array (each `{ url, position }`).'
operationId: createImage_gpt_image_2
requestBody:
content:
application/json:
schema:
properties:
aspect_ratio:
default: '1:1'
description: Output aspect ratio.
enum:
- '1:1'
- '4:3'
- '3:4'
- '5:4'
- '4:5'
- '16:9'
- '9:16'
- '3:2'
- '2:3'
- '21:9'
- '9:21'
- '2:1'
- '1:2'
type: string
num_images:
default: 1
description: Number of images to generate.
maximum: 4
minimum: 1
type: integer
output_format:
default: png
description: Output image format.
enum:
- png
- jpeg
type: string
prompt:
description: Text description of the image to generate.
type: string
quality:
default: medium
description: 'Rendering quality. Multiplies the resolution price: low = 0.5x, medium = 1x, high ≈ 4.17x (e.g. at 1K: low 30, medium 60, high 250 credits).'
enum:
- low
- medium
- high
type: string
reference_images:
description: Optional reference images (up to 9) for image editing and composition. Each item is a public image URL, a data URI, raw base64, or an uploaded-file URL from POST /v1/uploads. Omit for text-to-image.
items:
type: string
maxItems: 9
type: array
resolution:
default: 1K
description: Output resolution tier. Bills 60/120/180 credits per image (medium quality) at 1K/2K/4K.
enum:
- 1K
- 2K
- 4K
type: string
required:
- prompt
type: object
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/CreateImageResponse'
description: Job accepted.
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Generate image with GPT-Image-2
tags:
- Openai
servers:
- description: Production
url: https://api.budgetpixel.com/v1
/images/gpt-image-2.5-flare:
post:
description: 'OpenAI GPT Image 2.5 Flare — the fast, everyday GPT Image model: high-quality generation with natural text rendering and reliable edits at lower latency than Sunburst. Text-to-image and image editing with up to 9 reference images, 1K/2K/4K output and five quality tiers. Billing: per output image, quality × resolution — at 1K: low 30, medium 40, high 80, xhigh 130, max 250 credits; 2K doubles and 4K triples those. Reference images: the first is free, each additional one adds 5 credits. Default quality medium (40 credits at 1K).
**Asynchronous.** Returns a job `id` (the image is not in this response). Poll `GET /v1/images/{id}` until `status` is `succeeded` — the generated image URLs are in that response''s `images` array (each `{ url, position }`).
Examples, sample output and pricing: GPT Image 2.5 Flare'
operationId: createImage_gpt_image_2_5_flare
requestBody:
content:
application/json:
schema:
properties:
aspect_ratio:
default: '1:1'
description: Output aspect ratio.
enum:
- '1:1'
- '4:3'
- '3:4'
- '5:4'
- '4:5'
- '16:9'
- '9:16'
- '3:2'
- '2:3'
- '21:9'
- '9:21'
- '2:1'
- '1:2'
type: string
num_images:
default: 1
description: Number of images to generate.
maximum: 4
minimum: 1
type: integer
output_format:
default: png
description: Output image format.
enum:
- png
- jpeg
type: string
prompt:
description: Text description of the image to generate.
type: string
quality:
default: medium
description: 'Rendering quality. Per image at 1K: low 30, medium 40, high 80, xhigh 130, max 250 credits (scaled by resolution).'
enum:
- low
- medium
- high
- xhigh
- max
type: string
reference_images:
description: Optional reference images (up to 9) for image editing and composition. Each item is a public image URL, a data URI, raw base64, or an uploaded-file URL from POST /v1/uploads. Omit for text-to-image. The first reference is free; each additional one adds 5 credits per generated image.
items:
type: string
maxItems: 9
type: array
x-bpx-media: image
resolution:
default: 1K
description: Output resolution tier. 2K bills 2× and 4K 3× the 1K price of the chosen quality.
enum:
- 1K
- 2K
- 4K
type: string
required:
- prompt
type: object
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/CreateImageResponse'
description: Job accepted.
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'429':
$ref: '#/components/responses/TooManyRequests_2'
summary: Generate image with GPT Image 2.5 Flare
tags:
- Openai
servers:
- description: Production
url: https://api.budgetpixel.com/v1
/images/gpt-image-2.5-sunburst:
post:
description: 'OpenAI GPT Image 2.5 Sunburst — the most capable GPT Image model, built for premium visual work and precise, instruction-scoped edits that keep subject, composition and background intact. Text-to-image and image editing with up to 9 reference images, 1K/2K/4K output and five quality tiers. Billing: per output image, quality × resolution — at 1K: low 30, medium 40, high 80, xhigh 130, max 250 credits; 2K doubles and 4K triples those. Reference images: the first is free, each additional one adds 5 credits. Default quality medium (40 credits at 1K).
**Asynchronous.** Returns a job `id` (the image is not in this response). Poll `GET /v1/images/{id}` until `status` is `succeeded` — the generated image URLs are in that response''s `images` array (each `{ url, position }`).
Examples, sample output and pricing: GPT Image 2.5 Sunburst'
operationId: createImage_gpt_image_2_5_sunburst
requestBody:
content:
application/json:
schema:
properties:
aspect_ratio:
default: '1:1'
description: Output aspect ratio.
enum:
- '1:1'
- '4:3'
- '3:4'
- '5:4'
- '4:5'
- '16:9'
- '9:16'
- '3:2'
- '2:3'
- '21:9'
- '9:21'
- '2:1'
- '1:2'
type: string
num_images:
default: 1
description: Number of images to generate.
maximum: 4
minimum: 1
type: integer
output_format:
default: png
description: Output image format.
enum:
- png
- jpeg
type: string
prompt:
description: Text description of the image to generate.
type: string
quality:
default: medium
description: 'Rendering quality. Per image at 1K: low 30, medium 40, high 80, xhigh 130, max 250 credits (scaled by resolution).'
enum:
- low
- medium
- high
- xhigh
- max
type: string
reference_images:
description: Optional reference images (up to 9) for image editing and composition. Each item is a public image URL, a data URI, raw base64, or an uploaded-file URL from POST /v1/uploads. Omit for text-to-image. The first reference is free; each additional one adds 5 credits per generated image.
items:
type: string
maxItems: 9
type: array
x-bpx-media: image
resolution:
default: 1K
description: Output resolution tier. 2K bills 2× and 4K 3× the 1K price of the chosen quality.
enum:
- 1K
- 2K
- 4K
type: string
required:
- prompt
type: object
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/CreateImageResponse'
description: Job accepted.
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'429':
$ref: '#/components/responses/TooManyRequests_2'
summary: Generate image with GPT Image 2.5 Sunburst
tags:
- Openai
servers:
- description: Production
url: https://api.budgetpixel.com/v1
components:
schemas:
Error:
properties:
error:
properties:
code:
description: Stable machine-readable code.
example: model_not_available
type: string
message:
type: string
type:
description: Error category.
example: invalid_request_error
type: string
required:
- type
- code
- message
type: object
required:
- error
type: object
CreateImageResponse:
properties:
id:
description: Opaque job id — use it to poll status.
example: img_a1b2c3d4e5f6
type: string
message:
type: string
model:
type: string
status:
$ref: '#/components/schemas/JobStatus'
type: object
ModerationBlocked:
description: Returned (with HTTP 400) when the input content moderation gate blocks a generation request. The block is a property of the request's prompt or input media — reword the prompt or change the input and retry. Branch on `restriction_reason`, which is stable and machine-readable.
properties:
error:
description: Human-readable explanation of the block.
type: string
restriction_reason:
description: Stable machine-readable block reason.
enum:
- input_csam
- input_explicit_adult
- input_upload_nudity
- input_celebrity_likeness
- strict_model_nsfw
type: string
required:
- error
- restriction_reason
type: object
JobStatus:
description: Lifecycle state. `succeeded`/`failed`/`timeout` are terminal.
enum:
- pending
- starting
- processing
- completing
- succeeded
- failed
- timeout
type: string
QueueFull:
description: '`429` body when your account already has as many jobs of this kind
(image, video or audio) in flight as its concurrency cap allows. Submit
the next job when one of your running jobs finishes.
'
properties:
active_jobs:
description: Jobs of this kind in flight right now.
type: integer
code:
enum:
- queue_full
type: string
error:
description: Human-readable message.
type: string
queue_full:
enum:
- true
type: boolean
queue_limit:
description: Your concurrency cap for this kind of job.
type: integer
retry_after_seconds:
description: Same value as the `Retry-After` header.
type: integer
required:
- error
- code
- queue_full
- queue_limit
- active_jobs
- retry_after_seconds
type: object
responses:
TooManyRequests:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Rate or queue limit reached. Retry after a short delay.
Unauthorized:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Missing or invalid API key.
BadRequest:
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/Error'
- $ref: '#/components/schemas/ModerationBlocked'
description: The request was malformed, referenced an unavailable model, or was blocked by input content moderation (moderation blocks carry a `restriction_reason` — see ModerationBlocked).
Forbidden:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Authenticated but not permitted (plan gate, ownership, account restriction). Content-moderation blocks are 400, not 403.
TooManyRequests_2:
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/Error'
- $ref: '#/components/schemas/QueueFull'
description: 'A limit was reached. Every `429` carries `Retry-After` (seconds). The
per-minute rate limit, the upload limit and the hourly API post cap answer
with the `Error` envelope, code `rate_limited`. The monthly spend limit answers with
code `monthly_spend_limit_reached`, and its `Retry-After` counts down to the
start of next month (raising the limit in the console clears it sooner).
A full concurrency queue answers with the flat `QueueFull` body (3D jobs:
the `Error` envelope with code `queue_full`); its `Retry-After` is a
suggested wait, because a slot frees as soon as one of your running jobs
finishes.
'
headers:
Retry-After:
description: Seconds to wait before retrying.
schema:
minimum: 1
type: integer
securitySchemes:
ApiKeyAuth:
bearerFormat: bpx_live_*
description: 'API key as a bearer token: Authorization: Bearer bpx_live_xxx'
scheme: bearer
type: http
x-refined-from:
- budgetpixel-openapi.yaml
- budgetpixel-openapi.yml