Create Prints Checkout API
Create a human-completed checkout and inspect payment and fulfilment progress.
Create a human-completed checkout and inspect payment and fulfilment progress.
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/createprints-ai:createprints-ai-checkout-api"
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.
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: Createprints Ai Checkout API
version: 1.1.0
contact:
name: Create Prints support
url: https://www.createprints.ai/contact
license:
name: Proprietary
url: https://www.createprints.ai/terms
description: 'Operations tagged Checkout across 2 of this provider''s published API definitions: createprints-ai-openapi.json, createprints-ai-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.createprints.ai
description: Create Prints API origin
tags:
- name: Checkout
description: Create a human-completed checkout and inspect payment and fulfilment progress.
paths:
/api/checkout:
post:
operationId: createAgentCheckout
summary: Create a human-completed checkout
description: 'Creates a checkout link on the Create Prints website for one or more completed, account-owned artworks. Every artwork must have an uploaded image and its aspect must match the selected variant. The agent returns `checkoutUrl` to the person, who reviews the basket and completes payment. A basket supports at most 20 line items; each line supports quantity 1–20. `GB` uses GBP and `US` uses USD. Multi-item or multi-quantity shipping is quoted before checkout; a temporary quote failure returns `503` with `retryable: true`.'
tags:
- Checkout
security:
- agentApiKey: []
- agentBearer: []
- oauth2:
- checkout:create
parameters:
- name: Idempotency-Key
in: header
description: Optional opaque key passed to checkout creation. Reuse it when retrying the same logical request.
schema:
type: string
minLength: 1
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CheckoutRequest'
example:
country: GB
jobId: 1ae94a6e-f1dd-44c7-8314-a869e8357cc1
productVariantId: a5894107-bd91-48fb-a37c-49718c82ec84
quantity: 1
responses:
'200':
description: Checkout was created.
content:
application/json:
schema:
$ref: '#/components/schemas/CheckoutResponse'
'400':
description: Missing or invalid input.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: The credential is missing, invalid, revoked, or expired.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: The credential lacks the required scope or cannot perform this operation.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: The resource was not found for the authenticated account.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'409':
description: The resource state does not permit this operation.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'410':
description: The selected product is no longer available.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'500':
description: Create Prints could not complete the request.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'502':
description: The payment provider could not create the checkout.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'503':
description: A shipping quote could not be obtained for the basket.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
servers:
- url: https://api.createprints.ai
description: Create Prints API origin
/api/checkout-status:
get:
operationId: getAgentCheckoutStatus
summary: Get checkout, fulfilment, and shipment status
description: For a simple payment lookup, provide `sessionId` and omit `view`. For the combined agent workflow, set `view=agent` and provide at least one of `jobId`, `sessionId`, or `orderId`. Agent view combines artwork readiness, checkout state, print-asset preparation, production, shipments, and a machine-readable `nextAction`. A signed-in user-session token is accepted for this read operation in addition to account API keys and MCP OAuth tokens.
tags:
- Checkout
security:
- agentApiKey: []
- agentBearer: []
- userSessionBearer: []
- oauth2:
- checkout:read
parameters:
- $ref: '#/components/parameters/SessionId'
- name: jobId
in: query
description: Account-owned artwork job ID.
schema:
type: string
format: uuid
- name: orderId
in: query
description: Account-owned order ID.
schema:
type: string
format: uuid
- name: view
in: query
description: Set to `agent` for combined workflow status.
schema:
type: string
const: agent
responses:
'200':
description: Current payment and, when requested, fulfilment and shipment state.
content:
application/json:
schema:
$ref: '#/components/schemas/CheckoutStatus'
'400':
description: Missing or invalid input.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: The credential is missing, invalid, revoked, or expired.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: The credential lacks the required scope or cannot perform this operation.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: The resource was not found for the authenticated account.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'500':
description: Create Prints could not complete the request.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
post:
operationId: retryAgentFulfilment
summary: Retry production submission for prepared print assets
description: 'Attempts production submission for an account-owned order whose print assets are already prepared. It does not restart image upscaling. An already-submitted order returns `200` with `accepted: false` and `reason: already_submitted`; orders still preparing assets or containing failed assets return `409`. The endpoint currently returns `200` after a successful submission attempt.'
tags:
- Checkout
security:
- agentApiKey: []
- agentBearer: []
- oauth2:
- checkout:create
parameters:
- name: action
in: query
required: true
description: Selects the fulfilment retry action.
schema:
type: string
const: retry-fulfillment
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/OrderIdRequest'
responses:
'200':
description: The order was already submitted or its prepared assets were submitted to production.
content:
application/json:
schema:
$ref: '#/components/schemas/FulfilmentRetry'
'400':
description: Missing or invalid input.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: The credential is missing, invalid, revoked, or expired.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: The credential lacks the required scope or cannot perform this operation.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: The resource was not found for the authenticated account.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'409':
description: The resource state does not permit this operation.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'500':
description: Create Prints could not complete the request.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
servers:
- url: https://api.createprints.ai
description: Create Prints API origin
components:
schemas:
FulfilmentItem:
type: object
required:
- id
- generationJobId
- productVariantId
- quantity
- status
properties:
id:
type: string
format: uuid
generationJobId:
type: string
format: uuid
productVariantId:
type: string
format: uuid
quantity:
type: integer
minimum: 1
status:
type: string
enum:
- pending
- ready
- failed
OrderIdRequest:
type: object
required:
- orderId
properties:
orderId:
type: string
format: uuid
additionalProperties: false
FulfilmentRetry:
type: object
required:
- code
- orderId
- accepted
- reason
properties:
code:
type: string
const: ok
orderId:
type: string
format: uuid
accepted:
type: boolean
const: false
reason:
type: string
enum:
- already_submitted
- submitted_existing_asset
Shipment:
type: object
required:
- status
- shippedAt
- carrier
- trackingNumber
- trackingUrl
properties:
status:
type: string
shippedAt:
type:
- string
- 'null'
format: date-time
carrier:
type:
- string
- 'null'
trackingNumber:
type:
- string
- 'null'
trackingUrl:
type:
- string
- 'null'
format: uri
CheckoutRequest:
oneOf:
- allOf:
- $ref: '#/components/schemas/CheckoutItem'
- type: object
properties:
country:
type: string
enum:
- GB
- US
default: GB
- type: object
required:
- items
properties:
country:
type: string
enum:
- GB
- US
default: GB
items:
type: array
minItems: 1
maxItems: 20
items:
$ref: '#/components/schemas/CheckoutItem'
AgentCheckoutState:
type: object
required:
- sessionId
- status
- paymentStatus
- orderId
- nextAction
properties:
sessionId:
type:
- string
- 'null'
status:
type:
- string
- 'null'
paymentStatus:
type:
- string
- 'null'
orderId:
type:
- string
- 'null'
format: uuid
nextAction:
type: string
AgentCheckoutStatus:
type: object
required:
- code
- job
- checkout
- fulfillment
- orderStatus
properties:
code:
type: string
const: ok
job:
oneOf:
- $ref: '#/components/schemas/AgentJobState'
- type: 'null'
checkout:
oneOf:
- $ref: '#/components/schemas/AgentCheckoutState'
- type: 'null'
fulfillment:
oneOf:
- $ref: '#/components/schemas/FulfilmentStatus'
- type: 'null'
orderStatus:
oneOf:
- $ref: '#/components/schemas/ProductionStatus'
- type: 'null'
ProductionStatus:
type: object
required:
- stage
- isShipped
- shipments
- updatedAt
- nextAction
properties:
stage:
type: string
isShipped:
type: boolean
shipments:
type: array
items:
$ref: '#/components/schemas/Shipment'
updatedAt:
type:
- string
- 'null'
format: date-time
nextAction:
type: string
CheckoutStatus:
oneOf:
- $ref: '#/components/schemas/SimpleCheckoutStatus'
- $ref: '#/components/schemas/AgentCheckoutStatus'
Error:
type: object
description: Errors use `error`; some endpoints also return a stable `code`, validation `details`, or `retryable` hint.
properties:
error:
type: string
code:
type: string
details:
type: array
items:
type: string
retryable:
type: boolean
additionalProperties: true
AgentJobState:
type: object
required:
- id
- status
- purchasable
- nextAction
properties:
id:
type: string
format: uuid
status:
type: string
purchasable:
type: boolean
nextAction:
type: string
SimpleCheckoutStatus:
type: object
required:
- checkoutSessionId
- status
- paymentStatus
- orderId
properties:
checkoutSessionId:
type: string
pattern: ^cs_
status:
type:
- string
- 'null'
paymentStatus:
type:
- string
- 'null'
orderId:
type:
- string
- 'null'
format: uuid
CheckoutResponse:
type: object
required:
- code
- checkoutUrl
- checkoutSessionId
- currency
properties:
code:
type: string
const: ok
checkoutUrl:
type: string
format: uri
description: Create Prints website URL for human review and payment.
checkoutSessionId:
type: string
pattern: ^cs_
basketId:
type: string
format: uuid
jobId:
type: string
format: uuid
productVariantId:
type: string
format: uuid
productAmountCents:
type: integer
minimum: 0
shippingAmountCents:
type: integer
minimum: 0
totalAmountCents:
type: integer
minimum: 0
currency:
type: string
enum:
- GBP
- USD
productAmountFormatted:
type: string
shippingAmountFormatted:
type: string
totalAmountFormatted:
type: string
FulfilmentStatus:
type: object
required:
- orderId
- stage
- retryable
- nextAction
properties:
orderId:
type: string
format: uuid
stage:
type: string
retryable:
type: boolean
nextAction:
type: string
items:
type: array
items:
$ref: '#/components/schemas/FulfilmentItem'
retryFulfillment:
type: object
additionalProperties: true
CheckoutItem:
type: object
required:
- jobId
- productVariantId
properties:
jobId:
type: string
format: uuid
productVariantId:
type: string
format: uuid
quantity:
type: integer
minimum: 1
maximum: 20
default: 1
frameOptionId:
type: integer
description: Required for framed variants; invalid for unframed variants.
parameters:
SessionId:
name: sessionId
in: query
description: Checkout-session ID returned by checkout creation.
schema:
type: string
pattern: ^cs_
securitySchemes:
agentApiKey:
type: apiKey
in: header
name: X-API-Key
description: Create Prints account API key beginning with `cp_`. Required scopes vary by operation.
agentBearer:
type: http
scheme: bearer
description: Account API key (`cp_…`) or MCP OAuth token (`cp_mcp_access_…`) in Authorization.
userSessionBearer:
type: http
scheme: bearer
bearerFormat: JWT
description: Signed-in Create Prints user-session token; supported only where this scheme is listed.
oauth2:
type: oauth2
description: Create Prints OAuth 2.0 authorization-code flow with PKCE for MCP and agent clients.
flows:
authorizationCode:
authorizationUrl: https://api.createprints.ai/api/oauth/authorize
tokenUrl: https://api.createprints.ai/api/oauth/token
scopes:
artwork:create: Create, import, and retry artwork jobs.
artwork:read: Read and list artwork jobs.
print_options:read: Read print variants, frames, prices, and postage estimates.
checkout:create: Create checkout sessions and retry production submission.
checkout:read: Read checkout, fulfilment, and shipment status.
orders:read: Read orders and, on the current credit endpoint, generation credits.
externalDocs:
description: Create Prints developer resources
url: https://www.createprints.ai/developers
x-refined-from:
- createprints-ai-openapi.json
- createprints-ai-openapi.yml