propzapi-com Images API

The images API from propzapi-com — 7 operation(s) for images.

Operations 10

GET /v1/templates List templates (built-in + your own) #
POST /v1/templates Create a reusable template #
POST /v1/images Render an image from a template + your data #
POST /v1/images/batch Render many images in one call (one credit per successful image) #
POST /v1/screenshot Screenshot any public web page #
POST /v1/templates/preview Preview a render without spending a credit #
POST /v1/embed-url Sign a GET render URL (for ) #
GET /v1/templates/{tid} Get one template, including its HTML #
PATCH /v1/templates/{tid} Update your template #
DELETE /v1/templates/{tid} Delete your template #

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/propzapi-com:propzapi-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

propzapi-com-images-api-openapi.yml Raw ↑
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