propzapi-com Images API
The images API from propzapi-com — 7 operation(s) for images.
The images API from propzapi-com — 7 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/propzapi-com:propzapi-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: propzapi Images API
description: The image generation API for developers and AI agents. Template + your data -> a finished image, over REST or MCP.
version: 0.1.0
tags:
- name: Images
paths:
/v1/templates:
get:
tags:
- Images
summary: List templates (built-in + your own)
operationId: list_templates_v1_templates_get
parameters:
- name: x-api-key
in: header
required: false
schema:
type: string
title: X-Api-Key
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
post:
tags:
- Images
summary: Create a reusable template
operationId: create_template_ep_v1_templates_post
parameters:
- name: x-api-key
in: header
required: false
schema:
type: string
title: X-Api-Key
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- name
- html
properties:
name:
type: string
html:
type: string
description: HTML/CSS with {{variable}} placeholders (≤ 100 KB).
width:
type: integer
minimum: 16
maximum: 4000
default: 1200
height:
type: integer
minimum: 16
maximum: 4000
default: 630
variables:
type: object
additionalProperties: true
description: Default values for the template's variables.
example:
name: Product card
width: 1200
height: 675
html: <div style="font:700 72px sans-serif;padding:80px">{{title}}</div>
variables:
title: Default title
/v1/images:
post:
tags:
- Images
summary: Render an image from a template + your data
operationId: create_image_v1_images_post
parameters:
- name: x-api-key
in: header
required: false
schema:
type: string
title: X-Api-Key
responses:
'200':
description: Rendered
content:
application/json:
schema: {}
example:
url: https://api.propzapi.com/renders/img_9c3f.png
template: og-article
width: 1200
height: 630
format: png
bytes: 91842
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- template
properties:
template:
type: string
description: Built-in id (e.g. og-article) or one of your tpl_… ids.
modifications:
type: object
additionalProperties: true
description: variable → value overrides; omitted variables use the template default.
format:
type: string
enum:
- png
- jpeg
- webp
- pdf
default: png
scale:
type: integer
minimum: 1
maximum: 3
default: 1
quality:
type: integer
minimum: 1
maximum: 100
description: For jpeg / webp.
verify:
type: array
items:
type: string
maxItems: 20
description: Strings that must render as visible text. The response adds `verified` (all landed) and `checks` (per-string found / clipped), so you can confirm the exact values made it into the image.
receipt:
type: boolean
description: 'Return a `receipt` object: image_sha256, the text that actually rendered, per-string checks + misses, viewport, and timing — enough to trust the render without inspecting pixels.'
private:
type: boolean
default: false
description: Keep this render OUT of the public bucket. The response `url` is a signed link that expires (for invoices, receipts, anything with PII). Not cached.
private_ttl:
type: integer
minimum: 60
maximum: 604800
default: 3600
description: Lifetime of the signed private URL in seconds (60 = 1 min, 604800 = 7 days). Only applies when `private` is true.
example:
template: og-article
format: png
modifications:
title: How we cut render costs by 95%
eyebrow: ENGINEERING
verify:
- How we cut render costs by 95%
receipt: true
/v1/images/batch:
post:
tags:
- Images
summary: Render many images in one call (one credit per successful image)
description: 'Render up to a batch of images from one request — the bulk ''a card for every row''
job. Each item is metered and billed independently: you pay one credit per image that
renders, nothing for items that error or that you can''t afford. The engine bounds
real render concurrency itself, so a batch is safe on a small instance.'
operationId: create_images_batch_v1_images_batch_post
parameters:
- name: x-api-key
in: header
required: false
schema:
type: string
title: X-Api-Key
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- images
properties:
images:
type: array
minItems: 1
maxItems: 25
description: 1–25 render specs. Each renders one image and, on success, costs one credit.
items:
type: object
required:
- template
properties:
template:
type: string
description: Built-in id or one of your tpl_… ids.
modifications:
type: object
additionalProperties: true
format:
type: string
enum:
- png
- jpeg
- webp
- pdf
default: png
scale:
type: integer
minimum: 1
maximum: 3
default: 1
quality:
type: integer
minimum: 1
maximum: 100
example:
images:
- template: og-article
modifications:
eyebrow: BLOG
title: First post
- template: og-article
modifications:
eyebrow: BLOG
title: Second post
/v1/screenshot:
post:
tags:
- Images
summary: Screenshot any public web page
operationId: create_screenshot_v1_screenshot_post
parameters:
- name: x-api-key
in: header
required: false
schema:
type: string
title: X-Api-Key
responses:
'200':
description: Rendered
content:
application/json:
schema: {}
example:
url: https://api.propzapi.com/renders/shot_9c3f.png
source: https://example.com
width: 1280
height: 800
format: png
full_page: true
bytes: 40213
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- url
properties:
url:
type: string
description: Public http(s) URL to capture.
full_page:
type: boolean
default: false
description: Capture the whole scrollable page instead of just the viewport.
width:
type: integer
minimum: 16
maximum: 4000
default: 1280
height:
type: integer
minimum: 16
maximum: 4000
default: 800
format:
type: string
enum:
- png
- jpeg
- webp
- pdf
default: png
description: pdf prints the live page to a paginated, paper-sized PDF.
paper:
type: string
enum:
- A4
- A3
- A5
- Letter
- Legal
- Tabloid
- Ledger
default: A4
description: Page size when format=pdf.
landscape:
type: boolean
default: false
description: Landscape orientation for format=pdf.
scale:
type: integer
minimum: 1
maximum: 3
default: 1
quality:
type: integer
minimum: 1
maximum: 100
receipt:
type: boolean
description: 'Return a `receipt` object: image_sha256, the page''s extracted text, viewport, and timing — trust the capture without inspecting pixels.'
example:
url: https://example.com
format: pdf
paper: A4
/v1/templates/preview:
post:
tags:
- Images
summary: Preview a render without spending a credit
operationId: preview_template_v1_templates_preview_post
parameters:
- name: x-api-key
in: header
required: false
schema:
type: string
title: X-Api-Key
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
template:
type: string
description: A template id to preview (omit if sending ad-hoc html).
html:
type: string
description: Ad-hoc HTML to preview (unsaved editor content).
width:
type: integer
minimum: 16
maximum: 4000
default: 1200
height:
type: integer
minimum: 16
maximum: 4000
default: 630
variables:
type: object
additionalProperties: true
modifications:
type: object
additionalProperties: true
example:
html: <div style="padding:60px;font:60px sans-serif">{{title}}</div>
variables:
title: Hello
width: 800
height: 400
/v1/embed-url:
post:
tags:
- Images
summary: Sign a GET render URL (for )
operationId: embed_url_v1_embed_url_post
parameters:
- name: x-api-key
in: header
required: false
schema:
type: string
title: X-Api-Key
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- template
properties:
template:
type: string
description: Built-in id (e.g. og-article) or one of your tpl_… ids.
modifications:
type: object
additionalProperties: true
description: variable → value overrides; omitted variables use the template default.
format:
type: string
enum:
- png
- jpeg
- webp
- pdf
default: png
scale:
type: integer
minimum: 1
maximum: 3
default: 1
quality:
type: integer
minimum: 1
maximum: 100
description: For jpeg / webp.
verify:
type: array
items:
type: string
maxItems: 20
description: Strings that must render as visible text. The response adds `verified` (all landed) and `checks` (per-string found / clipped), so you can confirm the exact values made it into the image.
receipt:
type: boolean
description: 'Return a `receipt` object: image_sha256, the text that actually rendered, per-string checks + misses, viewport, and timing — enough to trust the render without inspecting pixels.'
private:
type: boolean
default: false
description: Keep this render OUT of the public bucket. The response `url` is a signed link that expires (for invoices, receipts, anything with PII). Not cached.
private_ttl:
type: integer
minimum: 60
maximum: 604800
default: 3600
description: Lifetime of the signed private URL in seconds (60 = 1 min, 604800 = 7 days). Only applies when `private` is true.
example:
template: og-article
format: png
modifications:
title: How we cut render costs by 95%
eyebrow: ENGINEERING
verify:
- How we cut render costs by 95%
receipt: true
/v1/templates/{tid}:
get:
tags:
- Images
summary: Get one template, including its HTML
operationId: get_template_ep_v1_templates__tid__get
parameters:
- name: tid
in: path
required: true
schema:
type: string
title: Tid
- name: x-api-key
in: header
required: false
schema:
type: string
title: X-Api-Key
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
patch:
tags:
- Images
summary: Update your template
operationId: update_template_ep_v1_templates__tid__patch
parameters:
- name: tid
in: path
required: true
schema:
type: string
title: Tid
- name: x-api-key
in: header
required: false
schema:
type: string
title: X-Api-Key
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
html:
type: string
description: HTML/CSS with {{variable}} placeholders (≤ 100 KB).
width:
type: integer
minimum: 16
maximum: 4000
default: 1200
height:
type: integer
minimum: 16
maximum: 4000
default: 630
variables:
type: object
additionalProperties: true
description: Default values for the template's variables.
description: Any subset of the template's fields.
delete:
tags:
- Images
summary: Delete your template
operationId: delete_template_ep_v1_templates__tid__delete
parameters:
- name: tid
in: path
required: true
schema:
type: string
title: Tid
- name: x-api-key
in: header
required: false
schema:
type: string
title: X-Api-Key
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
components:
schemas:
ValidationError:
properties:
loc:
items:
anyOf:
- type: string
- type: integer
type: array
title: Location
msg:
type: string
title: Message
type:
type: string
title: Error Type
input:
title: Input
ctx:
type: object
title: Context
type: object
required:
- loc
- msg
- type
title: ValidationError
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError