Paperform Products API
The Products API from Paperform — 4 operation(s) for products.
The Products API from Paperform — 4 operation(s) for products.
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/paperform-products-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:
version: 1.0.0
title: Paperform Products API
contact:
name: Paperform API Support
url: https://paperform.co
email: support@paperform.co
servers:
- url: https://api.paperform.co/v1
security:
- bearerAuth: []
tags:
- name: Products
paths:
/forms/{slug_or_id}/products:
get:
parameters:
- $ref: '#/components/parameters/slugOrID'
- $ref: '#/components/parameters/productSearch'
description: This endpoint returns the list of products available for a specific form by slug or ID. This feature is available as part of the Standard API.
operationId: listFormProducts
tags:
- Products
responses:
'200':
description: 'Successfully returned product for a single form that matched the provided SKU
'
content:
application/json:
schema:
type: object
properties:
status:
type: string
enum:
- ok
results:
type: object
properties:
products:
type: array
items:
allOf:
- $ref: '#/components/schemas/ProductItem'
- type: object
properties:
sold:
type: number
format: int32
example: 10
readOnly: true
description: The quantity sold.
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/Throttled'
5XX:
$ref: '#/components/responses/Unexpected'
summary: List form products
x-summary-source: derived
post:
parameters:
- $ref: '#/components/parameters/slugOrID'
description: This endpoint creates a product on a form. Please note that this feature is exclusively available as part of the Business API.
operationId: postFormProduct
tags:
- Products
requestBody:
content:
application/json:
schema:
type: object
allOf:
- type: object
properties:
product_field_key:
type: string
description: The key of a product field on the form.
example: a1b2c3d4e5
- $ref: '#/components/schemas/ProductItem'
required:
- product_field_key
- SKU
- price
- name
responses:
'200':
description: 'Successfully created a new product
'
content:
application/json:
schema:
type: object
properties:
status:
type: string
enum:
- ok
results:
properties:
product:
$ref: '#/components/schemas/ProductItem'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/Throttled'
5XX:
$ref: '#/components/responses/Unexpected'
summary: Post form product
x-summary-source: derived
/forms/{slug_or_id}/products/{product_sku}:
get:
parameters:
- $ref: '#/components/parameters/slugOrID'
- $ref: '#/components/parameters/productSKU'
description: This endpoint returns the product available for a specific form by SKU. This feature is available as part of the Standard API.
operationId: getFormProduct
tags:
- Products
responses:
'200':
description: 'Successfully returned product for a single form that matched the provided SKU
'
content:
application/json:
schema:
type: object
properties:
status:
type: string
enum:
- ok
results:
type: object
properties:
products:
type: array
items:
allOf:
- $ref: '#/components/schemas/ProductItem'
- type: object
properties:
sold:
type: number
format: int32
example: 10
readOnly: true
description: The quantity sold.
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/Throttled'
5XX:
$ref: '#/components/responses/Unexpected'
summary: Get form product
x-summary-source: derived
put:
parameters:
- $ref: '#/components/parameters/slugOrID'
- $ref: '#/components/parameters/productSKU'
description: 'This endpoint updates a specific product on a form by SKU.
Please note that this feature is exclusively available as part of the Business API.'
operationId: updateFormProduct
tags:
- Products
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ProductUpdate'
responses:
'200':
description: 'Successfully updated a single product that matched the provided SKU
'
content:
application/json:
schema:
type: object
properties:
status:
type: string
enum:
- ok
results:
type: object
properties:
product:
$ref: '#/components/schemas/ProductItem'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/Validation'
'429':
$ref: '#/components/responses/Throttled'
5XX:
$ref: '#/components/responses/Unexpected'
summary: Update form product
x-summary-source: derived
delete:
parameters:
- $ref: '#/components/parameters/slugOrID'
- $ref: '#/components/parameters/productSKU'
description: 'This endpoint deletes a specific product by SKU.
Please note that this feature is exclusively available as part of the Business API.'
operationId: deleteFormProduct
tags:
- Products
responses:
'200':
description: 'Successfully deleted a single product that matched the provided SKU
'
content:
application/json:
schema:
type: object
properties:
status:
type: string
enum:
- ok
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/Throttled'
5XX:
$ref: '#/components/responses/Unexpected'
summary: Delete form product
x-summary-source: derived
/forms/{slug_or_id}/products/{product_sku}/quantity:
put:
parameters:
- $ref: '#/components/parameters/slugOrID'
- $ref: '#/components/parameters/productSKU'
description: 'This endpoint updates the quantity for a product
This feature is available as part of the Standard API.'
operationId: updateFormProductQuantity
tags:
- Products
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ProductQuantity'
description: 'The body of the request should contain the following fields:
- quantity
'
responses:
'200':
description: 'Successfully updated the product quantity.
'
content:
application/json:
schema:
type: object
properties:
ok:
type: integer
default: 1
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/Validation'
'429':
$ref: '#/components/responses/Throttled'
5XX:
$ref: '#/components/responses/Unexpected'
summary: Update form product quantity
x-summary-source: derived
/forms/{slug_or_id}/products/{product_sku}/sold:
put:
parameters:
- $ref: '#/components/parameters/slugOrID'
- $ref: '#/components/parameters/productSKU'
description: 'This endpoint updates the sold amount for a product
This feature is available as part of the Standard API.'
operationId: updateFormProductSold
tags:
- Products
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ProductSold'
description: 'The body of the request should contain the following fields:
- sold
'
responses:
'200':
description: 'Successfully updated the product sold amount.
'
content:
application/json:
schema:
type: object
properties:
ok:
type: integer
default: 1
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/Validation'
'429':
$ref: '#/components/responses/Throttled'
5XX:
$ref: '#/components/responses/Unexpected'
summary: Update form product sold
x-summary-source: derived
components:
parameters:
productSearch:
in: query
name: search
schema:
type: string
description: Search products by name.
example: chips
slugOrID:
in: path
name: slug_or_id
required: true
schema:
type: string
description: The form's slug, custom slug or ID.
example: my-form-slug
productSKU:
in: path
name: product_sku
required: true
schema:
type: string
description: The SKU of the product.
example: SKU-123
responses:
Forbidden:
description: Not Permitted
content:
application/json:
schema:
type: object
allOf:
- $ref: '#/components/schemas/Error'
- properties:
error_type:
type: string
enum:
- permission
description: Not permitted to access requested resource.
Unexpected:
description: Unexpected Error
content:
application/json:
schema:
type: object
allOf:
- $ref: '#/components/schemas/Error'
- properties:
error_type:
type: string
enum:
- server_error
description: An unexpected error.
Validation:
description: Validation Error
content:
application/json:
schema:
type: object
allOf:
- $ref: '#/components/schemas/Error'
- properties:
error_type:
type: string
enum:
- validation
description: Invalid parameters provided.
BadRequest:
description: Invalid Request
content:
application/json:
schema:
type: object
allOf:
- $ref: '#/components/schemas/Error'
- properties:
error_type:
type: string
enum:
- validation
description: Invalid parameters provided.
NotFound:
description: Not Found
content:
application/json:
schema:
type: object
allOf:
- $ref: '#/components/schemas/Error'
- properties:
error_type:
type: string
enum:
- not_found
description: The requested resource was not found.
Unauthorized:
description: Unauthorized
content:
application/json:
schema:
type: object
allOf:
- $ref: '#/components/schemas/Error'
- properties:
error_type:
type: string
enum:
- authentication
description: Token not provided for not valid.
Throttled:
description: Too Many Requests
content:
text/html:
schema:
type: string
enum:
- Too many requests.
schemas:
Error:
type: object
properties:
status:
type: string
enum:
- error
example: error
message:
type: string
description: An error message.
example: Invalid request
details:
type: array
description: Suggested actions to resolve the error.
items:
type: string
ProductQuantity:
type: object
properties:
quantity:
type: integer
description: The quantity to update the product with.
example: 10
required:
- quantity
ProductUpdate:
type: object
properties:
name:
type:
- string
- 'null'
description: Product name.
example: Product 1
quantity:
type:
- number
- 'null'
format: int32
description: Product quantity.
example: 5
price:
type:
- number
- 'null'
format: double
description: Product price.
example: 10
minimum:
type:
- number
- 'null'
format: int32
description: Minimum number of products to be selected.
example: 1
maximum:
type:
- number
- 'null'
format: int32
description: Maximum number of products to be selected.
example: 10
discountable:
type:
- boolean
- 'null'
description: Whether the product can be discounted.
example: false
images:
type: array
description: List of product images.
items:
type: object
properties:
url:
type: string
description: Image URL.
example: https://example.com/image.jpg
width:
type: number
format: int32
description: Image width.
example: 100
height:
type: number
format: int32
description: Image height.
example: 100
required:
- url
- width
ProductItem:
type: object
allOf:
- $ref: '#/components/schemas/ProductUpdate'
- type: object
properties:
SKU:
type: string
description: Product SKU.
example: PRODUCT-1
required:
- SKU
- name
- price
ProductSold:
type: object
properties:
sold:
type: integer
description: The sold amount for the product.
example: 10
required:
- sold
securitySchemes:
bearerAuth:
type: http
scheme: bearer
x-readme:
explorer-enabled: true
proxy-enabled: true