openapi: 3.1.0
info:
version: 2.0.0-beta
title: Data API (beta)
description: Webflow's Data API v2 (beta)
termsOfService: 'https://webflow.com/legal/terms'
license:
name: MIT
url: 'https://opensource.org/licenses/MIT'
servers:
- url: 'https://api.webflow.com/beta'
security:
- OAuth2: []
- ApiKey: []
tags:
- name: Meta
- name: Sites
- name: Assets
- name: Forms
- name: Pages
- name: Collections
- name: Items
- name: Users
- name: Products & SKUs
- name: Orders
- name: Inventory
- name: Settings
- name: Webhooks
- name: Site Activity
- name: Custom Code
- name: Custom Code - Sites
- name: Custom Code - Pages
- name: App Subscriptions
paths:
/token/authorized_by:
get:
x-fern-sdk-group-name: token
x-fern-sdk-method-name: authorized-by
security:
- OAuth2:
- 'authorized_user:read'
operationId: authorized_by
summary: Authorization User Info
description: 'Information about the Authorized User
Required Scope | `authorized_user:read`'
tags:
- Meta
responses:
'200':
description: Request was successful
content:
application/json:
schema:
example:
id: 545bbecb7bdd6769632504a7
email: some@email.com
firstName: Some
lastName: One
properties:
id:
type: string
format: objectid
description: The unique id of the user
example: 545bbecb7bdd6769632504a7
email:
type: string
format: email
description: The user's email address
example: someone@email.com
firstName:
type: string
description: The user's first name
example: Some
lastName:
type: string
description: The user's last name
example: One
'401':
description: Provided access token is invalid or does not have access to requested resource
'403':
description: 'Provided access token is valid, but is missing the required scopes.'
content:
application/json:
schema:
type: object
properties:
status:
type: integer
example: 403
message:
type: string
publicErrorCode:
type: string
externalReference:
type: string
nullable: true
details:
type: array
items:
type: string
4XX:
description: Request body was incorrectly formatted. Likely invalid JSON being sent up.
5XX:
description: We had a problem with our server. Try again later.
/token/introspect:
get:
x-fern-sdk-group-name: token
x-fern-sdk-method-name: introspect
operationId: introspect
summary: Authorization Info
description: |
Information about the authorization token Access to this endpoint requires a bearer token from a Data Client App.
tags:
- Meta
responses:
'200':
description: Request was successful
content:
application/json:
schema:
example:
authorization:
id: 55818d58616600637b9a5786
createdOn: '2016-10-03T23:12:00.755Z'
lastUsed: '2016-10-10T21:41:12.736Z'
grantType: authorization_code
rateLimit: 60
scope: 'assets:read,assets:write'
authorizedTo:
siteIds:
- 62f3b1f7eafac55d0c64ef91
workspaceIds:
- 52f3b1f7eafac55d0c64ef91
userIds:
- 545bbecb7bdd6769632504a7
application:
id: 55131cd036c09f7d07883dfc
description: My Amazing App
homepage: 'https://webflow.com'
displayName: My Amazing App
properties:
authorization:
type: object
description: The Authorization object
properties:
id:
type: string
format: objectid
example: 55818d58616600637b9a5786
description: The unique id of the Authorization instance
createdOn:
type: string
format: date-time
example: '2016-10-03T23:12:00.755Z'
description: The date the Authorization was created
lastUsed:
type: string
format: date-time
example: '2016-10-10T21:41:12.736Z'
description: The date the Authorization was last used
grantType:
type: string
example: authorization_code
description: The grant type of the Authorization
rateLimit:
type: integer
format: int32
example: 60
description: The default rate limit for the Authorization (requests/min)
scope:
type: string
example: 'custom_code:read sites:read'
description: Comma separted list of OAuth scopes corresponding to the Authorization
authorizedTo:
type: object
example:
siteIds:
- 62f3b1f7eafac55d0c64ef91
workspaceIds:
- ' 72f3b1f7eafac55d0c64ef91'
userIds:
- 545bbecb7bdd6769632504a7
properties:
siteIds:
type: array
description: Array of Sites this app is authorized to
example:
- 62f3b1f7eafac55d0c64ef91
workspaceIds:
type: array
description: Array of Workspaces this app is authorized to
example:
- 72f3b1f7eafac55d0c64ef91
userIds:
type: array
description: Array of Users this app is authorized to
example:
- 545bbecb7bdd6769632504a7
application:
Application:
properties:
id:
type: string
format: objectid
example: 55131cd036c09f7d07883dfc
description: Unique identifier for the Application
description:
type: string
example: OAuth Testing Application
description: Application description provided by the developer
homepage:
type: string
format: uri
example: 'https://webflow.com'
description: Application homepage URL provided by the developer
displayName:
type: string
example: Test App
description: Application name provided by the developer
'401':
description: Provided access token is invalid or does not have access to requested resource
4XX:
description: Request body was incorrectly formatted. Likely invalid JSON being sent up.
5XX:
description: We had a problem with our server. Try again later.
/token/resolve:
post:
x-fern-sdk-group-name: id-token
x-fern-sdk-method-name: resolve
security:
- OAuth2:
- 'authorized_user:read'
operationId: resolve
summary: Resolve ID Token
description: |
Information about the authorized user derived from the resolved ID Token
Access to this endpoint requires a bearer token from a Data Client App. Required Scope | `authorized_user:read`
tags:
- Meta
requestBody:
content:
application/json:
schema:
type: object
properties:
idToken:
description: The ID token created using the Designer API
type: string
example: 589a331aa51e760df7ccb89d
responses:
'200':
description: Request was successful
content:
application/json:
schema:
example:
id: 545bbecb7bdd6769632504a7
email: some@email.com
firstName: Some
lastName: One
properties:
id:
type: string
format: objectid
description: The unique id of the user
example: 545bbecb7bdd6769632504a7
email:
type: string
format: email
description: The user's email address
example: someone@email.com
firstName:
type: string
description: The user's first name
example: Some
lastName:
type: string
description: The user's last name
example: One
'401':
description: Provided access token is invalid or does not have access to requested resource
'403':
description: 'Provided access token is valid, but is missing the required scopes.'
content:
application/json:
schema:
type: object
properties:
status:
type: integer
example: 403
message:
type: string
publicErrorCode:
type: string
externalReference:
type: string
nullable: true
details:
type: array
items:
type: string
4XX:
description: Request body was incorrectly formatted. Likely invalid JSON being sent up.
5XX:
description: We had a problem with our server. Try again later.
/app_subscriptions:
get:
x-fern-sdk-group-name: app-subscriptions
x-fern-sdk-method-name: app-subscriptions
security:
- OAuth2:
- 'app_subscriptions:read'
operationId: app_subscriptions
summary: Get app subscriptions
description: |
Information about subscriptions for a specific authorization token
Access to this endpoint requires a bearer token from a Data Client App.
Required Scope | `app_subscriptions:read`
tags:
- Meta
- App Subscriptions
responses:
'200':
description: Request was successful
content:
application/json:
schema:
description: List of subscriptions for a specific site
properties:
appSubscriptions:
type: array
items:
type: object
description: Subscription details for a site
properties:
appSubscriptions:
type: object
properties:
appId:
type: string
format: objectId
description: The unique ID of the App
example: 65ae93df86d80c2f1fe3b2f8
price:
type: object
description: The price of the Subscription
properties:
value:
type: number
example: 1000
description: Price in cents
unit:
type: string
description: Currency unit
example: USD
interval:
type: string
example: MONTHLY
enum:
- MONTHLY
- YEARLY
- ONE_TIME
description: Interval of payment
accessGrant:
description: Information about the granted access for the subscription.
type: object
properties:
id:
description: The unique ID of the granted resource
example: 65ea160a1a9368783da53862
type: string
format: objectId
type:
description: The type of granted resource
example: Site
type: string
status:
type: string
description: Status of the subscription
enum:
- active
- cancelled
- past due
startsAt:
description: Start time of the current billing period
type: string
format: date-time
example: '2024-03-19T16:00:31.000Z'
endsAt:
description: End time of the current billing period
type: string
format: date-time
example: '2024-04-19T16:00:31.000Z'
example:
value:
appSubscriptions:
- appId: 65ae93df86d80c2f1fe3b2f8
price:
value: 4598
unit: USD
interval: MONTHLY
accessGrant:
id: 65ea160a1a9368783da53862
type: Site
status: cancelled
startsAt: '2024-03-18T14:45:27.000Z'
endsAt: '2024-04-18T14:45:27.000Z'
- appId: 65ae93df86d80c2f1fe3b2f8
price:
value: 4598
unit: USD
interval: MONTHLY
accessGrant:
id: 65ea160a1a9368783da53862
type: Site
status: cancelled
startsAt: '2024-03-18T15:09:03.000Z'
endsAt: '2024-04-18T15:09:03.000Z'
- appId: 65ae93df86d80c2f1fe3b2f8
price:
value: 4598
unit: USD
interval: MONTHLY
accessGrant:
id: 65ea160a1a9368783da53862
type: Site
status: active
startsAt: '2024-03-19T16:00:31.000Z'
endsAt: '2024-04-19T16:00:31.000Z'
'401':
description: Provided access token is invalid or does not have access to requested resource
'403':
description: 'Provided access token is valid, but is missing the required scopes.'
content:
application/json:
schema:
type: object
properties:
status:
type: integer
example: 403
message:
type: string
publicErrorCode:
type: string
externalReference:
type: string
nullable: true
details:
type: array
items:
type: string
4XX:
description: Request body was incorrectly formatted. Likely invalid JSON being sent up.
5XX:
description: We had a problem with our server. Try again later.
'/workspaces/{workspace_id}/sites':
post:
x-fern-sdk-group-name: sites
x-fern-sdk-method-name: create
security:
- OAuth2:
- 'sites:write'
operationId: create-site
summary: Create Site
description: 'Create a site. This endpoint requires an Enterprise workspace. Required scope | `workspace:write`'
tags:
- Sites
parameters:
- name: workspace_id
in: path
description: Unique identifier for a Workspace
example: 580e63e98c9a982ac9b8b741
required: true
schema:
type: string
format: objectid
default: null
requestBody:
content:
application/json:
schema:
required:
- name
properties:
name:
type: string
example: Super Cool Site
description: The name of the site
templateName:
type: string
example: Business Template
description: The workspace or marketplace template to use
parentFolderId:
type: string
nullable: true
example: a9c420f9347c2139b248e913
description: The parent folder ID of the site
responses:
'200':
description: Request was successful
content:
application/json:
schema:
example:
id: 42e98c9a982ac9b8b742
workspaceId: 42e63e98c9a982ac9b8b742
displayName: The Hitchhiker's Guide to the Galaxy
shortName: hitchhikers-guide
previewUrl: 'https://screenshots.webflow.com/sites/6258612d1ee792848f805dcf/20231219211811_d5990556c743f33b7071300a03bf67e6.png'
timeZone: Magrathea/FactoryFloor
createdOn: '1979-10-12T12:00:00.000Z'
lastUpdated: '2023-04-02T12:42:00.000Z'
lastPublished: '2023-04-02T12:42:00.000Z'
parentFolderId: 1as2d3f4g5h6j7k8l9z0x1c2v3b4n5m6
customDomains:
- id: 589a331aa51e760df7ccb89d
url: hitchhikersguide.galaxy
- id: 589a331aa51e760df7ccb89e
url: heartofgold.spaceship
locales:
value:
primary:
id: 653fd9af6a07fc9cfd7a5e57
cmsLocaleId: 653ad57de882f528b32e810e
enabled: false
displayName: English (United States)
displayImageId: null
redirect: true
subdirectory: ''
tag: en-US
secondary:
- id: 653fd9af6a07fc9cfd7a5e56
cmsLocaleId: 653fd9af6a07fc9cfd7a5e5d
enabled: true
displayName: French (France)
displayImageId: null
subdirectory: fr-fr
tag: fr-FR
- id: 654112a3a525b2739d97664c
cmsLocaleId: 654112a3a525b2739d97664f
enabled: true
displayName: Spanish (Mexico)
displayImageId: null
subdirectory: es-mx
tag: es-MX
required:
- id
readOnly: null
properties:
id:
type: string
format: objectid
description: Unique identifier for the Site
example: 580e63e98c9a982ac9b8b741
workspaceId:
type: string
format: objectid
description: Unique identifier for the Workspace
example: 580e63e98c9a982ac9b8b741
createdOn:
type: string
format: date-time
description: Date the Site was created
example: '2016-10-24T19:41:29.156Z'
displayName:
type: string
description: Name given to Site
example: api_docs_sample_json
shortName:
type: string
description: Slugified version of name
example: api-docs-sample-json
lastPublished:
type: string
format: date-time
description: Date the Site was last published
example: '2016-10-24T19:43:17.271Z'
lastUpdated:
type: string
format: date-time
description: Date the Site was last updated
example: '2016-10-24T19:43:17.271Z'
previewUrl:
type: string
format: uri
description: URL of a generated image for the given Site
example: 'https://d1otoma47x30pg.cloudfront.net/580e63e98c9a982ac9b8b741/201610241243.png'
timeZone:
type: string
description: Site timezone set under Site Settings
example: America/Los_Angeles
parentFolderId:
type: string
format: objectid
nullable: true
description: The ID of the parent folder the Site exists in
example: 1as2d3f4g5h6j7k8l9z0x1c2v3b4n5m6
customDomains:
type: array
items:
type: object
required:
- id
properties:
id:
type: string
format: objectid
example: 589a331aa51e760df7ccb89d
description: Unique identifier for the Domain
readOnly: true
url:
type: string
example: test-api-domain.com
description: The registered Domain name
example:
id: 589a331aa51e760df7ccb89d
url: test-api-domain.com
locales:
type: object
properties:
primary:
description: The primary locale for the site or application.
type: object
properties:
id:
type: string
description: The unique identifier for the locale.
example: 653fd9af6a07fc9cfd7a5e57
cmsLocaleId:
type: string
description: A CMS-specific identifier for the locale.
example: 653ad57de882f528b32e810e
enabled:
type: boolean
description: Indicates if the locale is enabled.
example: false
displayName:
type: string
description: 'The display name of the locale, typically in English.'
example: English (United States)
displayImageId:
type: string
description: 'An optional ID for an image associated with the locale, nullable.'
nullable: true
example: null
redirect:
type: boolean
description: Determines if requests should redirect to the locale's subdirectory.
example: true
subdirectory:
type: string
description: 'The subdirectory path for the locale, used in URLs.'
example: ''
tag:
type: string
description: 'A tag or code representing the locale, often following a standard format like ''en-US''.'
example: en-US
secondary:
type: array
items:
type: object
properties:
id:
type: string
description: The unique identifier for the locale.
example: 653fd9af6a07fc9cfd7a5e57
cmsLocaleId:
type: string
description: A CMS-specific identifier for the locale.
example: 653ad57de882f528b32e810e
enabled:
type: boolean
description: Indicates if the locale is enabled.
example: false
displayName:
type: string
description: 'The display name of the locale, typically in English.'
example: English (United States)
displayImageId:
type: string
description: 'An optional ID for an image associated with the locale, nullable.'
nullable: true
example: null
redirect:
type: boolean
description: Determines if requests should redirect to the locale's subdirectory.
example: true
subdirectory:
type: string
description: 'The subdirectory path for the locale, used in URLs.'
example: ''
tag:
type: string
description: 'A tag or code representing the locale, often following a standard format like ''en-US''.'
example: en-US
description: A list of secondary locales available for the site or application.
'400':
description: Request body was incorrectly formatted. Likely invalid JSON being sent up.
'401':
description: Provided access token is invalid or does not have access to requested resource
'403':
description: Forbidden request
content:
application/json:
schema:
oneOf:
- allOf:
- example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
details:
type: array
description: Array of errors
items:
type:
- string
- object
- description: The request is missing the required scopes.
- properties:
code:
type: string
description: Error code
enum:
- missing_scopes
type: string
- allOf:
- example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
details:
type: array
description: Array of errors
items:
type:
- string
- object
- description: Error response for non-enterprise plan workspaces.
- properties:
code:
type: string
description: Error code
enum:
- missing_scopes
type: string
'404':
description: Requested resource not found
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
/sites:
get:
x-fern-sdk-group-name: sites
x-fern-sdk-method-name: list
security:
- OAuth2:
- 'sites:read'
operationId: list-sites
summary: List Sites
description: 'List of all sites the provided access token is able to access. Required scope | `sites:read`'
tags:
- Sites
responses:
'200':
description: Request was successful
content:
application/json:
schema:
type: object
properties:
sites:
type: array
items:
example:
id: 42e98c9a982ac9b8b742
workspaceId: 42e63e98c9a982ac9b8b742
displayName: The Hitchhiker's Guide to the Galaxy
shortName: hitchhikers-guide
previewUrl: 'https://screenshots.webflow.com/sites/6258612d1ee792848f805dcf/20231219211811_d5990556c743f33b7071300a03bf67e6.png'
timeZone: Magrathea/FactoryFloor
createdOn: '1979-10-12T12:00:00.000Z'
lastUpdated: '2023-04-02T12:42:00.000Z'
lastPublished: '2023-04-02T12:42:00.000Z'
parentFolderId: 1as2d3f4g5h6j7k8l9z0x1c2v3b4n5m6
customDomains:
- id: 589a331aa51e760df7ccb89d
url: hitchhikersguide.galaxy
- id: 589a331aa51e760df7ccb89e
url: heartofgold.spaceship
locales:
value:
primary:
id: 653fd9af6a07fc9cfd7a5e57
cmsLocaleId: 653ad57de882f528b32e810e
enabled: false
displayName: English (United States)
displayImageId: null
redirect: true
subdirectory: ''
tag: en-US
secondary:
- id: 653fd9af6a07fc9cfd7a5e56
cmsLocaleId: 653fd9af6a07fc9cfd7a5e5d
enabled: true
displayName: French (France)
displayImageId: null
subdirectory: fr-fr
tag: fr-FR
- id: 654112a3a525b2739d97664c
cmsLocaleId: 654112a3a525b2739d97664f
enabled: true
displayName: Spanish (Mexico)
displayImageId: null
subdirectory: es-mx
tag: es-MX
required:
- id
readOnly: null
properties:
id:
type: string
format: objectid
description: Unique identifier for the Site
example: 580e63e98c9a982ac9b8b741
workspaceId:
type: string
format: objectid
description: Unique identifier for the Workspace
example: 580e63e98c9a982ac9b8b741
createdOn:
type: string
format: date-time
description: Date the Site was created
example: '2016-10-24T19:41:29.156Z'
displayName:
type: string
description: Name given to Site
example: api_docs_sample_json
shortName:
type: string
description: Slugified version of name
example: api-docs-sample-json
lastPublished:
type: string
format: date-time
description: Date the Site was last published
example: '2016-10-24T19:43:17.271Z'
lastUpdated:
type: string
format: date-time
description: Date the Site was last updated
example: '2016-10-24T19:43:17.271Z'
previewUrl:
type: string
format: uri
description: URL of a generated image for the given Site
example: 'https://d1otoma47x30pg.cloudfront.net/580e63e98c9a982ac9b8b741/201610241243.png'
timeZone:
type: string
description: Site timezone set under Site Settings
example: America/Los_Angeles
parentFolderId:
type: string
format: objectid
nullable: true
description: The ID of the parent folder the Site exists in
example: 1as2d3f4g5h6j7k8l9z0x1c2v3b4n5m6
customDomains:
type: array
items:
type: object
required:
- id
properties:
id:
type: string
format: objectid
example: 589a331aa51e760df7ccb89d
description: Unique identifier for the Domain
readOnly: true
url:
type: string
example: test-api-domain.com
description: The registered Domain name
example:
id: 589a331aa51e760df7ccb89d
url: test-api-domain.com
locales:
type: object
properties:
primary:
description: The primary locale for the site or application.
type: object
properties:
id:
type: string
description: The unique identifier for the locale.
example: 653fd9af6a07fc9cfd7a5e57
cmsLocaleId:
type: string
description: A CMS-specific identifier for the locale.
example: 653ad57de882f528b32e810e
enabled:
type: boolean
description: Indicates if the locale is enabled.
example: false
displayName:
type: string
description: 'The display name of the locale, typically in English.'
example: English (United States)
displayImageId:
type: string
description: 'An optional ID for an image associated with the locale, nullable.'
nullable: true
example: null
redirect:
type: boolean
description: Determines if requests should redirect to the locale's subdirectory.
example: true
subdirectory:
type: string
description: 'The subdirectory path for the locale, used in URLs.'
example: ''
tag:
type: string
description: 'A tag or code representing the locale, often following a standard format like ''en-US''.'
example: en-US
secondary:
type: array
items:
type: object
properties:
id:
type: string
description: The unique identifier for the locale.
example: 653fd9af6a07fc9cfd7a5e57
cmsLocaleId:
type: string
description: A CMS-specific identifier for the locale.
example: 653ad57de882f528b32e810e
enabled:
type: boolean
description: Indicates if the locale is enabled.
example: false
displayName:
type: string
description: 'The display name of the locale, typically in English.'
example: English (United States)
displayImageId:
type: string
description: 'An optional ID for an image associated with the locale, nullable.'
nullable: true
example: null
redirect:
type: boolean
description: Determines if requests should redirect to the locale's subdirectory.
example: true
subdirectory:
type: string
description: 'The subdirectory path for the locale, used in URLs.'
example: ''
tag:
type: string
description: 'A tag or code representing the locale, often following a standard format like ''en-US''.'
example: en-US
description: A list of secondary locales available for the site or application.
example:
sites:
- id: 42e63e98c9a982ac9b8b741
workspaceId: 42e63fc8c9a982ac9b8b744
createdOn: '1979-10-12T12:00:00.000Z'
displayName: Heart of Gold Spaceship
shortName: heart-of-gold
lastPublished: '2023-04-02T12:42:00.000Z'
previewUrl: 'https://d1otoma47x30pg.cloudfront.net/42e63e98c9a982ac9b8b741/197910121200.png'
timeZone: DeepSpace/InfiniteImprobability
parentFolderId: 1as2d3f4g5h6j7k8l9z0x1c2v3b4n5m6
customDomains:
- id: 589a331aa51e760df7ccb89e
url: heartofgold.galaxy
locales:
primary:
id: 653fd9af6a07fc9cfd7a5e57
cmsLocaleId: 653ad57de882f528b32e810e
enabled: true
displayName: English - Heart of Gold Standard
redirect: false
subdirectory: /en
tag: The Ultimate Answer
secondary:
- id: 653fd9af6a07fc9cfd7a5e58
cmsLocaleId: 653ad57de882f528b32e810g
enabled: true
displayName: Betelgeusian - Vogon Liaison
redirect: true
subdirectory: /bet
tag: Vogon
- id: 653fd9af6a07fc9cfd7a5e59
cmsLocaleId: 653ad57de882f528b32e810h
enabled: false
displayName: Magrathean - Custom Planet Designs
redirect: true
subdirectory: /mg
tag: Magrathean
- id: 42e63e98c9a982ac9b8b742
workspaceId: 42e63fc8c9a982ac9b8b745
createdOn: '1981-10-12T12:00:00.000Z'
displayName: Marvin's Personal Blog
shortName: paranoid-android
lastPublished: '2023-04-02T12:45:00.000Z'
previewUrl: 'https://d1otoma47x30pg.cloudfront.net/42e63e98c9a982ac9b8b742/198110121200.png'
timeZone: DeepSpace/Depression
parentFolderId: null
customDomains:
- id: 589a331aa51e760df7ccb89f
url: marvin.blog
locales:
primary:
id: 653fd9af6a07fc9cfd7a5e57
cmsLocaleId: 653ad57de882f528b32e810e
enabled: true
displayName: English - Marvin's Musings
redirect: false
subdirectory: /en
tag: English
secondary:
- id: 653fd9af6a07fc9cfd7a5e56
cmsLocaleId: 653ad57de882f528b32e810f
enabled: true
displayName: Squornshellous - Mattress Speak
redirect: true
subdirectory: /sr
tag: Squornshellous
- id: 42e63e98c9a982ac9b8b743
workspaceId: 42e63fc8c9a982ac9b8b746
createdOn: '1982-10-12T12:00:00.000Z'
displayName: Vogon Poetry Archive
shortName: vogon-poetry
lastPublished: '2023-04-02T12:50:00.000Z'
previewUrl: 'https://d1otoma47x30pg.cloudfront.net/42e63e98c9a982ac9b8b743/198210121200.png'
timeZone: Vogsphere/PoetryHall
parentFolderId: null
customDomains:
- id: 589a331aa51e760df7ccb8a0
url: vogonpoetry.galaxy
locales:
primary:
id: 653fd9af6a07fc9cfd7a5e55
cmsLocaleId: 653ad57de882f528b32e810d
enabled: true
displayName: English - Vogon Verse
redirect: false
subdirectory: /en
tag: Third Worst Poetry
secondary:
- id: 653fd9af6a07fc9cfd7a5e54
cmsLocaleId: 653ad57de882f528b32e810c
enabled: true
displayName: Galactic - Universal Language
redirect: true
subdirectory: /gl
tag: Pan-Galactic Gargle Blaster
'400':
description: Request body was incorrectly formatted. Likely invalid JSON being sent up.
'401':
description: Provided access token is invalid or does not have access to requested resource
'404':
description: Requested resource not found
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
'/sites/{site_id}':
get:
x-fern-sdk-group-name: sites
x-fern-sdk-method-name: get
security:
- OAuth2:
- 'sites:read'
operationId: get-site
summary: Get Site
description: 'Get a site by site id Required scope | `sites:read`'
tags:
- Sites
parameters:
- name: site_id
in: path
description: Unique identifier for a Site
example: 580e63e98c9a982ac9b8b741
required: true
schema:
type: string
format: objectid
default: null
responses:
'200':
description: Request was successful
content:
application/json:
schema:
example:
id: 42e98c9a982ac9b8b742
workspaceId: 42e63e98c9a982ac9b8b742
displayName: The Hitchhiker's Guide to the Galaxy
shortName: hitchhikers-guide
previewUrl: 'https://screenshots.webflow.com/sites/6258612d1ee792848f805dcf/20231219211811_d5990556c743f33b7071300a03bf67e6.png'
timeZone: Magrathea/FactoryFloor
createdOn: '1979-10-12T12:00:00.000Z'
lastUpdated: '2023-04-02T12:42:00.000Z'
lastPublished: '2023-04-02T12:42:00.000Z'
parentFolderId: 1as2d3f4g5h6j7k8l9z0x1c2v3b4n5m6
customDomains:
- id: 589a331aa51e760df7ccb89d
url: hitchhikersguide.galaxy
- id: 589a331aa51e760df7ccb89e
url: heartofgold.spaceship
locales:
value:
primary:
id: 653fd9af6a07fc9cfd7a5e57
cmsLocaleId: 653ad57de882f528b32e810e
enabled: false
displayName: English (United States)
displayImageId: null
redirect: true
subdirectory: ''
tag: en-US
secondary:
- id: 653fd9af6a07fc9cfd7a5e56
cmsLocaleId: 653fd9af6a07fc9cfd7a5e5d
enabled: true
displayName: French (France)
displayImageId: null
subdirectory: fr-fr
tag: fr-FR
- id: 654112a3a525b2739d97664c
cmsLocaleId: 654112a3a525b2739d97664f
enabled: true
displayName: Spanish (Mexico)
displayImageId: null
subdirectory: es-mx
tag: es-MX
required:
- id
readOnly: null
properties:
id:
type: string
format: objectid
description: Unique identifier for the Site
example: 580e63e98c9a982ac9b8b741
workspaceId:
type: string
format: objectid
description: Unique identifier for the Workspace
example: 580e63e98c9a982ac9b8b741
createdOn:
type: string
format: date-time
description: Date the Site was created
example: '2016-10-24T19:41:29.156Z'
displayName:
type: string
description: Name given to Site
example: api_docs_sample_json
shortName:
type: string
description: Slugified version of name
example: api-docs-sample-json
lastPublished:
type: string
format: date-time
description: Date the Site was last published
example: '2016-10-24T19:43:17.271Z'
lastUpdated:
type: string
format: date-time
description: Date the Site was last updated
example: '2016-10-24T19:43:17.271Z'
previewUrl:
type: string
format: uri
description: URL of a generated image for the given Site
example: 'https://d1otoma47x30pg.cloudfront.net/580e63e98c9a982ac9b8b741/201610241243.png'
timeZone:
type: string
description: Site timezone set under Site Settings
example: America/Los_Angeles
parentFolderId:
type: string
format: objectid
nullable: true
description: The ID of the parent folder the Site exists in
example: 1as2d3f4g5h6j7k8l9z0x1c2v3b4n5m6
customDomains:
type: array
items:
type: object
required:
- id
properties:
id:
type: string
format: objectid
example: 589a331aa51e760df7ccb89d
description: Unique identifier for the Domain
readOnly: true
url:
type: string
example: test-api-domain.com
description: The registered Domain name
example:
id: 589a331aa51e760df7ccb89d
url: test-api-domain.com
locales:
type: object
properties:
primary:
description: The primary locale for the site or application.
type: object
properties:
id:
type: string
description: The unique identifier for the locale.
example: 653fd9af6a07fc9cfd7a5e57
cmsLocaleId:
type: string
description: A CMS-specific identifier for the locale.
example: 653ad57de882f528b32e810e
enabled:
type: boolean
description: Indicates if the locale is enabled.
example: false
displayName:
type: string
description: 'The display name of the locale, typically in English.'
example: English (United States)
displayImageId:
type: string
description: 'An optional ID for an image associated with the locale, nullable.'
nullable: true
example: null
redirect:
type: boolean
description: Determines if requests should redirect to the locale's subdirectory.
example: true
subdirectory:
type: string
description: 'The subdirectory path for the locale, used in URLs.'
example: ''
tag:
type: string
description: 'A tag or code representing the locale, often following a standard format like ''en-US''.'
example: en-US
secondary:
type: array
items:
type: object
properties:
id:
type: string
description: The unique identifier for the locale.
example: 653fd9af6a07fc9cfd7a5e57
cmsLocaleId:
type: string
description: A CMS-specific identifier for the locale.
example: 653ad57de882f528b32e810e
enabled:
type: boolean
description: Indicates if the locale is enabled.
example: false
displayName:
type: string
description: 'The display name of the locale, typically in English.'
example: English (United States)
displayImageId:
type: string
description: 'An optional ID for an image associated with the locale, nullable.'
nullable: true
example: null
redirect:
type: boolean
description: Determines if requests should redirect to the locale's subdirectory.
example: true
subdirectory:
type: string
description: 'The subdirectory path for the locale, used in URLs.'
example: ''
tag:
type: string
description: 'A tag or code representing the locale, often following a standard format like ''en-US''.'
example: en-US
description: A list of secondary locales available for the site or application.
'400':
description: Request body was incorrectly formatted. Likely invalid JSON being sent up.
'401':
description: Provided access token is invalid or does not have access to requested resource
'404':
description: Requested resource not found
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
patch:
x-fern-sdk-group-name: sites
x-fern-sdk-method-name: update
security:
- OAuth2:
- 'sites:write'
operationId: update-site
summary: Update Site
description: 'Update a site. This endpoint requires an Enterprise workspace. Required scope | `sites:write`'
tags:
- Sites
parameters:
- name: site_id
in: path
description: Unique identifier for a Site
example: 580e63e98c9a982ac9b8b741
required: true
schema:
type: string
format: objectid
default: null
requestBody:
content:
application/json:
schema:
properties:
name:
type: string
example: Super Cool Site
description: The name of the site
parentFolderId:
type: string
nullable: true
example: a9c420f9347c2139b248e913
description: The parent folder ID of the site
responses:
'200':
description: Request was successful
content:
application/json:
schema:
example:
id: 42e98c9a982ac9b8b742
workspaceId: 42e63e98c9a982ac9b8b742
displayName: The Hitchhiker's Guide to the Galaxy
shortName: hitchhikers-guide
previewUrl: 'https://screenshots.webflow.com/sites/6258612d1ee792848f805dcf/20231219211811_d5990556c743f33b7071300a03bf67e6.png'
timeZone: Magrathea/FactoryFloor
createdOn: '1979-10-12T12:00:00.000Z'
lastUpdated: '2023-04-02T12:42:00.000Z'
lastPublished: '2023-04-02T12:42:00.000Z'
parentFolderId: 1as2d3f4g5h6j7k8l9z0x1c2v3b4n5m6
customDomains:
- id: 589a331aa51e760df7ccb89d
url: hitchhikersguide.galaxy
- id: 589a331aa51e760df7ccb89e
url: heartofgold.spaceship
locales:
value:
primary:
id: 653fd9af6a07fc9cfd7a5e57
cmsLocaleId: 653ad57de882f528b32e810e
enabled: false
displayName: English (United States)
displayImageId: null
redirect: true
subdirectory: ''
tag: en-US
secondary:
- id: 653fd9af6a07fc9cfd7a5e56
cmsLocaleId: 653fd9af6a07fc9cfd7a5e5d
enabled: true
displayName: French (France)
displayImageId: null
subdirectory: fr-fr
tag: fr-FR
- id: 654112a3a525b2739d97664c
cmsLocaleId: 654112a3a525b2739d97664f
enabled: true
displayName: Spanish (Mexico)
displayImageId: null
subdirectory: es-mx
tag: es-MX
required:
- id
readOnly: null
properties:
id:
type: string
format: objectid
description: Unique identifier for the Site
example: 580e63e98c9a982ac9b8b741
workspaceId:
type: string
format: objectid
description: Unique identifier for the Workspace
example: 580e63e98c9a982ac9b8b741
createdOn:
type: string
format: date-time
description: Date the Site was created
example: '2016-10-24T19:41:29.156Z'
displayName:
type: string
description: Name given to Site
example: api_docs_sample_json
shortName:
type: string
description: Slugified version of name
example: api-docs-sample-json
lastPublished:
type: string
format: date-time
description: Date the Site was last published
example: '2016-10-24T19:43:17.271Z'
lastUpdated:
type: string
format: date-time
description: Date the Site was last updated
example: '2016-10-24T19:43:17.271Z'
previewUrl:
type: string
format: uri
description: URL of a generated image for the given Site
example: 'https://d1otoma47x30pg.cloudfront.net/580e63e98c9a982ac9b8b741/201610241243.png'
timeZone:
type: string
description: Site timezone set under Site Settings
example: America/Los_Angeles
parentFolderId:
type: string
format: objectid
nullable: true
description: The ID of the parent folder the Site exists in
example: 1as2d3f4g5h6j7k8l9z0x1c2v3b4n5m6
customDomains:
type: array
items:
type: object
required:
- id
properties:
id:
type: string
format: objectid
example: 589a331aa51e760df7ccb89d
description: Unique identifier for the Domain
readOnly: true
url:
type: string
example: test-api-domain.com
description: The registered Domain name
example:
id: 589a331aa51e760df7ccb89d
url: test-api-domain.com
locales:
type: object
properties:
primary:
description: The primary locale for the site or application.
type: object
properties:
id:
type: string
description: The unique identifier for the locale.
example: 653fd9af6a07fc9cfd7a5e57
cmsLocaleId:
type: string
description: A CMS-specific identifier for the locale.
example: 653ad57de882f528b32e810e
enabled:
type: boolean
description: Indicates if the locale is enabled.
example: false
displayName:
type: string
description: 'The display name of the locale, typically in English.'
example: English (United States)
displayImageId:
type: string
description: 'An optional ID for an image associated with the locale, nullable.'
nullable: true
example: null
redirect:
type: boolean
description: Determines if requests should redirect to the locale's subdirectory.
example: true
subdirectory:
type: string
description: 'The subdirectory path for the locale, used in URLs.'
example: ''
tag:
type: string
description: 'A tag or code representing the locale, often following a standard format like ''en-US''.'
example: en-US
secondary:
type: array
items:
type: object
properties:
id:
type: string
description: The unique identifier for the locale.
example: 653fd9af6a07fc9cfd7a5e57
cmsLocaleId:
type: string
description: A CMS-specific identifier for the locale.
example: 653ad57de882f528b32e810e
enabled:
type: boolean
description: Indicates if the locale is enabled.
example: false
displayName:
type: string
description: 'The display name of the locale, typically in English.'
example: English (United States)
displayImageId:
type: string
description: 'An optional ID for an image associated with the locale, nullable.'
nullable: true
example: null
redirect:
type: boolean
description: Determines if requests should redirect to the locale's subdirectory.
example: true
subdirectory:
type: string
description: 'The subdirectory path for the locale, used in URLs.'
example: ''
tag:
type: string
description: 'A tag or code representing the locale, often following a standard format like ''en-US''.'
example: en-US
description: A list of secondary locales available for the site or application.
'400':
description: Request body was incorrectly formatted. Likely invalid JSON being sent up.
'401':
description: Provided access token is invalid or does not have access to requested resource
'403':
description: Forbidden request
content:
application/json:
schema:
oneOf:
- allOf:
- example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
details:
type: array
description: Array of errors
items:
type:
- string
- object
- description: The request is missing the required scopes.
- properties:
code:
type: string
description: Error code
enum:
- missing_scopes
type: string
- allOf:
- example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
details:
type: array
description: Array of errors
items:
type:
- string
- object
- description: Error response for non-enterprise plan sites.
- properties:
code:
type: string
description: Error code
enum:
- missing_scopes
type: string
'404':
description: Requested resource not found
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
delete:
x-fern-sdk-group-name: sites
x-fern-sdk-method-name: delete
security:
- OAuth2:
- 'sites:write'
operationId: delete-site
summary: Delete Site
description: 'Delete a site. This endpoint requires an Enterprise workspace. Required scope | `sites:write`'
tags:
- Sites
parameters:
- name: site_id
in: path
description: Unique identifier for a Site
example: 580e63e98c9a982ac9b8b741
required: true
schema:
type: string
format: objectid
default: null
responses:
'204':
description: Request was successful. No Content is returned.
'400':
description: Request body was incorrectly formatted. Likely invalid JSON being sent up.
'401':
description: Provided access token is invalid or does not have access to requested resource
'403':
description: Forbidden request
content:
application/json:
schema:
oneOf:
- allOf:
- example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
details:
type: array
description: Array of errors
items:
type:
- string
- object
- description: The request is missing the required scopes.
- properties:
code:
type: string
description: Error code
enum:
- missing_scopes
type: string
- allOf:
- example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
details:
type: array
description: Array of errors
items:
type:
- string
- object
- description: Error response for non-enterprise plan sites.
- properties:
code:
type: string
description: Error code
enum:
- missing_scopes
type: string
'404':
description: Requested resource not found
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
'/sites/{site_id}/custom_domains':
get:
x-fern-sdk-group-name: sites
x-fern-sdk-method-name: get-custom-domain
security:
- OAuth2:
- 'sites:read'
operationId: get-custom-domains
summary: Get Custom Domains
description: 'Get a list of all custom domains related to site. Required scope | `sites:read`'
tags:
- Sites
parameters:
- name: site_id
in: path
description: Unique identifier for a Site
example: 580e63e98c9a982ac9b8b741
required: true
schema:
type: string
format: objectid
default: null
responses:
'200':
description: Request was successful
content:
application/json:
schema:
type: object
properties:
customDomains:
type: array
items:
type: object
required:
- id
properties:
id:
type: string
format: objectid
example: 589a331aa51e760df7ccb89d
description: Unique identifier for the Domain
readOnly: true
url:
type: string
example: test-api-domain.com
description: The registered Domain name
example:
id: 589a331aa51e760df7ccb89d
url: test-api-domain.com
example:
customDomains:
- id: 589a331aa51e760df7ccb89d
url: hitchhikersguide.galaxy
- id: 589a331aa51e760df7ccb89e
url: heartofgold.spaceship
'401':
description: Provided access token is invalid or does not have access to requested resource
'403':
description: Provided access token does not have access rights to this content.
'404':
description: Requested resource not found
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
'/sites/{site_id}/publish':
post:
x-fern-sdk-group-name: sites
x-fern-sdk-method-name: publish
security:
- OAuth2:
- 'sites:write'
operationId: site-publish
summary: Publish site
description: 'Publish a site to one more more domains. Required scope | `sites:write`'
tags:
- Sites
parameters:
- name: site_id
in: path
description: Unique identifier for a Site
example: 580e63e98c9a982ac9b8b741
required: true
schema:
type: string
format: objectid
default: null
requestBody:
content:
application/json:
schema:
type: object
properties:
customDomains:
description: Array of Custom Domain ids to publish
type: array
items:
description: The id of the Custom Domain
type: string
example: 589a331aa51e760df7ccb89d
example:
- 660c6449dd97ebc7346ac629
- 660c6449dd97ebc7346ac62f
publishToWebflowSubdomain:
description: Choice of whether to publish to the default Webflow Subdomain
type: boolean
default: false
example: false
responses:
'202':
description: Request accepted
content:
application/json:
schema:
type: object
properties:
customDomains:
description: Array of domains objects
type: array
items:
type: object
required:
- id
properties:
id:
type: string
format: objectid
example: 589a331aa51e760df7ccb89d
description: Unique identifier for the Domain
readOnly: true
url:
type: string
example: test-api-domain.com
description: The registered Domain name
example:
id: 589a331aa51e760df7ccb89d
url: test-api-domain.com
publishToWebflowSubdomain:
description: Flag for publishing to webflow.io subdomain
type: boolean
default: false
'400':
description: Bad Request
content:
application/json:
schema:
oneOf:
- description: Requested an invalid Domain. Please send a valid custom domain URI
schema:
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
details:
type: array
description: Array of errors
items:
type:
- string
- object
- description: You must pass at least one domain id to the publish endpoint
schema:
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
details:
type: array
description: Array of errors
items:
type:
- string
- object
'401':
description: Provided access token is invalid or does not have access to requested resource
'403':
description: Provided access token does not have access rights to this content.
'404':
description: Requested resource not found
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'/sites/{site_id}/activity_logs':
get:
x-fern-sdk-group-name:
- sites
- activity-logs
x-fern-sdk-method-name: list
summary: Get Site Activity Logs
operationId: get-site-activity-logs
description: 'Retrieve Activity Logs for a specific Site. Requires Site to be on an Enterprise plan. Required scope | `site_activity:read`'
tags:
- Site Activity
- Sites
security:
- OAuth2:
- 'site_activity:read'
parameters:
- name: site_id
in: path
description: Unique identifier for a Site
example: 580e63e98c9a982ac9b8b741
required: true
schema:
type: string
format: objectid
default: null
- in: query
allowEmptyValue: true
name: limit
example: 100
description: 'Maximum number of records to be returned (max limit: 100)'
required: false
schema:
type: number
- in: query
example: 0
allowEmptyValue: true
name: offset
description: Offset used for pagination if the results have more than limit records
required: false
schema:
type: number
responses:
'200':
description: A list of site activity logs
content:
application/json:
schema:
type: object
properties:
items:
type: array
items:
type: object
properties:
id:
type: string
createdOn:
type: string
format: date-time
lastUpdated:
type: string
format: date-time
event:
type: string
resourceOperation:
type: string
enum:
- CREATED
- MODIFIED
- PUBLISHED
- UNPUBLISHED
- DELETED
user:
type: object
nullable: true
properties:
id:
type: string
displayName:
type: string
resourceId:
type: string
nullable: true
resourceName:
type: string
nullable: true
newValue:
type: string
nullable: true
previousValue:
type: string
nullable: true
payload:
type: object
nullable: true
pagination:
description: Pagination object
type: object
properties:
limit:
type: number
description: The limit used for pagination
example: 100
offset:
type: number
description: The offset used for pagination
example: 0
total:
type: number
description: The total number of records
example: 100
example:
items:
- id: 654c16c7b229e56bcf26872d
createdOn: 2023-11-08T23:16:23.496Z
lastUpdated: 2023-11-08T23:16:23.496Z
event: cms_collection
user:
id: 6509cd56e90eec668b009712
displayName: John Doe
resourceOperation: CREATED
resourceId: 654c16c7b229e56bcf26870c
resourceName: foo-bar
newValue: null
previousValue: null
payload: null
pagination:
total: 1
offset: 0
limit: 25
'403':
description: Forbidden request
content:
application/json:
schema:
oneOf:
- allOf:
- example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
details:
type: array
description: Array of errors
items:
type:
- string
- object
- description: The request is missing the required scopes.
- properties:
code:
type: string
description: Error code
enum:
- missing_scopes
type: string
- allOf:
- example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
details:
type: array
description: Array of errors
items:
type:
- string
- object
- description: Error response for non-enterprise plan sites.
- properties:
code:
type: string
description: Error code
enum:
- missing_scopes
type: string
'404':
description: Requested resource not found
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
'/sites/{site_id}/collections':
get:
x-fern-sdk-group-name: collections
x-fern-sdk-method-name: list
security:
- OAuth2:
- 'cms:read'
operationId: list-collections
summary: List Collections
description: 'List of all Collections within a Site. Required scope | `cms:read`'
tags:
- Collections
- Sites
parameters:
- name: site_id
in: path
description: Unique identifier for a Site
example: 580e63e98c9a982ac9b8b741
required: true
schema:
type: string
format: objectid
default: null
responses:
'200':
description: Request was successful
content:
application/json:
schema:
type: object
example:
collections:
- id: 63692ab61fb2852f582ba8f5
displayName: Products
singularName: Product
slug: product
createdOn: '2019-06-12T13:35:14.238Z'
lastUpdated: '2022-11-17T15:08:50.480Z'
- id: 63692ab61fb2856e6a2ba8f6
displayName: Categories
singularName: Category
slug: category
createdOn: '2019-06-12T13:35:14.238Z'
lastUpdated: '2022-11-17T15:08:50.481Z'
- id: 63692ab61fb285a8562ba8f4
displayName: SKUs
singularName: SKU
slug: sku
createdOn: '2019-06-12T13:35:14.238Z'
lastUpdated: '2022-11-17T15:08:50.478Z'
properties:
collections:
description: An array of Collections
type: array
items:
example:
id: 580e63fc8c9a982ac9b8b745
displayName: Blog Posts
singularName: Blog Post
slug: post
createdOn: '2016-10-24T19:41:48.349Z'
lastUpdated: '2016-10-24T19:42:38.929Z'
fields:
- id: 23cc2d952d4e4631ffd4345d2743db4e
isEditable: true
isRequired: true
type: PlainText
slug: name
displayName: Name
helpText: null
description: A collection object
type: object
required:
- id
- fields
properties:
id:
type: string
format: objectid
description: Unique identifier for a Collection
example: 562ac0395358780a1f5e6fbd
readOnly: true
displayName:
type: string
example: Blog Posts
description: Name given to the Collection
singularName:
type: string
example: Blog Post
description: The name of one Item in Collection (e.g. ”Blog Post” if the Collection is called “Blog Posts”)
slug:
type: string
example: blog-posts
description: Slug of Collection in Site URL structure
createdOn:
type: string
format: date-time
example: '2022-12-07T16:51:37.571Z'
readOnly: true
description: The date the collection was created
lastUpdated:
type: string
format: date-time
example: '2022-12-07T16:51:37.571Z'
readOnly: true
description: The date the collection was last updated
'400':
description: Request body was incorrectly formatted. Likely invalid JSON being sent up.
'401':
description: Provided access token is invalid or does not have access to requested resource
'404':
description: Requested resource not found
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
post:
x-fern-sdk-group-name: collections
x-fern-sdk-method-name: create
security:
- OAuth2:
- 'cms:write'
operationId: create-collection
summary: Create Collection
description: 'Create a Collection for a site. Required scope | `cms:write`'
tags:
- Collections
- Sites
parameters:
- name: site_id
in: path
description: Unique identifier for a Site
example: 580e63e98c9a982ac9b8b741
required: true
schema:
type: string
format: objectid
default: null
requestBody:
description: 'Pass the Name of the collection, as well as the singular name of each item in the collection.'
required: true
content:
application/json:
schema:
type: object
required:
- displayName
- singularName
properties:
displayName:
type: string
description: Name of the collection. Each collection name must be distinct.
singularName:
type: string
description: Singular name of each item.
slug:
type: string
description: Part of a URL that identifier
example:
displayName: Blog Posts
singularName: Blog Post
slug: posts
responses:
'200':
description: Request was successful
content:
application/json:
schema:
example:
id: 580e63fc8c9a982ac9b8b745
displayName: Blog Posts
singularName: Blog Post
slug: post
createdOn: '2016-10-24T19:41:48.349Z'
lastUpdated: '2016-10-24T19:42:38.929Z'
fields:
- id: 23cc2d952d4e4631ffd4345d2743db4e
isEditable: true
isRequired: true
type: PlainText
slug: name
displayName: Name
helpText: null
description: A collection object
type: object
required:
- id
- fields
properties:
id:
type: string
format: objectid
description: Unique identifier for a Collection
example: 562ac0395358780a1f5e6fbd
readOnly: true
displayName:
type: string
example: Blog Posts
description: Name given to the Collection
singularName:
type: string
example: Blog Post
description: The name of one Item in Collection (e.g. ”Blog Post” if the Collection is called “Blog Posts”)
slug:
type: string
example: blog-posts
description: Slug of Collection in Site URL structure
createdOn:
type: string
format: date-time
example: '2022-12-07T16:51:37.571Z'
readOnly: true
description: The date the collection was created
lastUpdated:
type: string
format: date-time
example: '2022-12-07T16:51:37.571Z'
readOnly: true
description: The date the collection was last updated
fields:
type: array
description: The list of fields in the Collection
readOnly: true
items:
description: The details of a field in a collection
example:
id: 75821f618da60c18383330bcc0ca488b
isEditable: true
isRequired: false
type: RichText
slug: post-body
displayName: Post Body
helpText: Add the body of your post here
type: object
required:
- id
- type
- isRequired
- displayName
properties:
id:
type: string
format: objectid
description: Unique identifier for a Field
readOnly: true
isRequired:
type: boolean
description: define whether a field is required in a collection
isEditable:
type: boolean
description: Define whether the field is editable
readOnly: true
type:
type: string
enum:
- PlainText
- RichText
- Image
- MultiImage
- Video
- Link
- Email
- Phone
- Number
- DateTime
- Boolean
- Color
- ExtFileRef
description: Choose these appropriate field type for your collection data
slug:
type: string
description: Slug of Field in Site URL structure. Slugs should be all lowercase with no spaces. Any spaces will be converted to "-."
displayName:
type: string
description: The name of a field
helpText:
type: string
description: Additional text to help anyone filling out this field
'400':
description: Request body was incorrectly formatted. Likely invalid JSON being sent up.
'401':
description: Provided access token is invalid or does not have access to requested resource
'404':
description: Requested resource not found
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
'/collections/{collection_id}':
get:
x-fern-sdk-group-name: collections
x-fern-sdk-method-name: get
security:
- OAuth2:
- 'cms:read'
operationId: collection-details
summary: Get Collection Details
description: 'Get the full details of a collection from its ID. Required scope | `cms:read`'
tags:
- Collections
- Sites
parameters:
- name: collection_id
in: path
description: Unique identifier for a Collection
example: 580e63fc8c9a982ac9b8b745
required: true
schema:
type: string
format: objectid
responses:
'200':
description: Request was successful
content:
application/json:
schema:
example:
id: 580e63fc8c9a982ac9b8b745
displayName: Blog Posts
singularName: Blog Post
slug: post
createdOn: '2016-10-24T19:41:48.349Z'
lastUpdated: '2016-10-24T19:42:38.929Z'
fields:
- id: 23cc2d952d4e4631ffd4345d2743db4e
isEditable: true
isRequired: true
type: PlainText
slug: name
displayName: Name
helpText: null
description: A collection object
type: object
required:
- id
- fields
properties:
id:
type: string
format: objectid
description: Unique identifier for a Collection
example: 562ac0395358780a1f5e6fbd
readOnly: true
displayName:
type: string
example: Blog Posts
description: Name given to the Collection
singularName:
type: string
example: Blog Post
description: The name of one Item in Collection (e.g. ”Blog Post” if the Collection is called “Blog Posts”)
slug:
type: string
example: blog-posts
description: Slug of Collection in Site URL structure
createdOn:
type: string
format: date-time
example: '2022-12-07T16:51:37.571Z'
readOnly: true
description: The date the collection was created
lastUpdated:
type: string
format: date-time
example: '2022-12-07T16:51:37.571Z'
readOnly: true
description: The date the collection was last updated
fields:
type: array
description: The list of fields in the Collection
readOnly: true
items:
description: The details of a field in a collection
example:
id: 75821f618da60c18383330bcc0ca488b
isEditable: true
isRequired: false
type: RichText
slug: post-body
displayName: Post Body
helpText: Add the body of your post here
type: object
required:
- id
- type
- isRequired
- displayName
properties:
id:
type: string
format: objectid
description: Unique identifier for a Field
readOnly: true
isRequired:
type: boolean
description: define whether a field is required in a collection
isEditable:
type: boolean
description: Define whether the field is editable
readOnly: true
type:
type: string
enum:
- PlainText
- RichText
- Image
- MultiImage
- Video
- Link
- Email
- Phone
- Number
- DateTime
- Boolean
- Color
- ExtFileRef
description: Choose these appropriate field type for your collection data
slug:
type: string
description: Slug of Field in Site URL structure. Slugs should be all lowercase with no spaces. Any spaces will be converted to "-."
displayName:
type: string
description: The name of a field
helpText:
type: string
description: Additional text to help anyone filling out this field
'400':
description: Request body was incorrectly formatted. Likely invalid JSON being sent up.
'401':
description: Provided access token is invalid or does not have access to requested resource
'404':
description: Requested resource not found
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
delete:
security:
- OAuth2:
- 'cms:write'
operationId: delete-collection
summary: Delete Collection
description: 'Delete a collection using its ID. Required scope | `cms:write`'
tags:
- Collections
- Sites
parameters:
- name: collection_id
in: path
description: Unique identifier for a Collection
example: 580e63fc8c9a982ac9b8b745
required: true
schema:
type: string
format: objectid
responses:
'204':
description: Request was successful. No Content is returned.
'400':
description: Request body was incorrectly formatted. Likely invalid JSON being sent up.
'401':
description: Provided access token is invalid or does not have access to requested resource
'404':
description: Requested resource not found
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
'/collections/{collection_id}/fields':
post:
x-fern-sdk-group-name:
- collections
- fields
x-fern-sdk-method-name: create
security:
- OAuth2:
- 'cms:write'
operationId: create-field
summary: Create Collection Field
description: |
Create a custom field in a collection. Slugs must be all lowercase letters without spaces. If you pass a string with uppercase letters and/or spaces to the "Slug" property, Webflow will convert the slug to lowercase and replace spaces with "-." Only some field types can be created through the API. This endpoint does not currently support bulk creation. Required scope | `cms:write`
tags:
- Collections
- Sites
requestBody:
description: The field to create
required: true
content:
application/json:
schema:
description: Details about the field of a collection
example:
type: RichText
isRequired: false
displayName: Post Body
helpText: Add the body of your post here
type: object
required:
- type
- displayName
properties:
isRequired:
type: boolean
description: define whether a field is required in a collection
type:
type: string
enum:
- PlainText
- RichText
- Image
- MultiImage
- Video
- Link
- Email
- Phone
- Number
- DateTime
- Boolean
- Color
- File
description: Choose these appropriate field type for your collection data
displayName:
type: string
description: The name of a field
helpText:
type: string
description: Additional text to help anyone filling out this field
parameters:
- name: collection_id
in: path
description: Unique identifier for a Collection
example: 580e63fc8c9a982ac9b8b745
required: true
schema:
type: string
format: objectid
responses:
'200':
description: Request was successful
content:
application/json:
schema:
description: The details of a field in a collection
example:
id: 75821f618da60c18383330bcc0ca488b
isEditable: true
isRequired: false
type: RichText
slug: post-body
displayName: Post Body
helpText: Add the body of your post here
type: object
required:
- id
- type
- isRequired
- displayName
properties:
id:
type: string
format: objectid
description: Unique identifier for a Field
readOnly: true
isRequired:
type: boolean
description: define whether a field is required in a collection
isEditable:
type: boolean
description: Define whether the field is editable
readOnly: true
type:
type: string
enum:
- PlainText
- RichText
- Image
- MultiImage
- Video
- Link
- Email
- Phone
- Number
- DateTime
- Boolean
- Color
- ExtFileRef
description: Choose these appropriate field type for your collection data
slug:
type: string
description: Slug of Field in Site URL structure. Slugs should be all lowercase with no spaces. Any spaces will be converted to "-."
displayName:
type: string
description: The name of a field
helpText:
type: string
description: Additional text to help anyone filling out this field
'400':
description: Request body was incorrectly formatted. Likely invalid JSON being sent up.
'401':
description: Provided access token is invalid or does not have access to requested resource
'404':
description: Requested resource not found
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
'/collections/{collection_id}/fields/{field_id}':
patch:
x-fern-sdk-group-name:
- collections
- fields
x-fern-sdk-method-name: update
security:
- OAuth2:
- 'cms:write'
operationId: update-field
summary: Update Collection Field
description: 'Update a custom field in a collection. Required scope | `cms:write`'
tags:
- Collections
- Sites
requestBody:
description: The field details to update
content:
application/json:
schema:
description: Details about the field of a collection
example:
isRequired: false
displayName: Post Body
helpText: Add the body of your post here
type: object
properties:
isRequired:
type: boolean
description: Define whether a field is required in a collection
displayName:
type: string
description: The name of a field
helpText:
type: string
description: Additional text to help anyone filling out this field
parameters:
- name: collection_id
in: path
description: Unique identifier for a Collection
example: 580e63fc8c9a982ac9b8b745
required: true
schema:
type: string
format: objectid
- name: field_id
in: path
description: Unique identifier for a Field in a collection
example: 580e63fc8c9a982ac9b8b745
required: true
schema:
type: string
format: objectid
responses:
'200':
description: Request was successful
content:
application/json:
schema:
description: The details of a field in a collection
example:
id: 75821f618da60c18383330bcc0ca488b
isEditable: true
isRequired: false
type: RichText
slug: post-body
displayName: Post Body
helpText: Add the body of your post here
type: object
required:
- id
- type
- isRequired
- displayName
properties:
id:
type: string
format: objectid
description: Unique identifier for a Field
readOnly: true
isRequired:
type: boolean
description: define whether a field is required in a collection
isEditable:
type: boolean
description: Define whether the field is editable
readOnly: true
type:
type: string
enum:
- PlainText
- RichText
- Image
- MultiImage
- Video
- Link
- Email
- Phone
- Number
- DateTime
- Boolean
- Color
- ExtFileRef
description: Choose these appropriate field type for your collection data
slug:
type: string
description: Slug of Field in Site URL structure. Slugs should be all lowercase with no spaces. Any spaces will be converted to "-."
displayName:
type: string
description: The name of a field
helpText:
type: string
description: Additional text to help anyone filling out this field
'400':
description: Request body was incorrectly formatted. Likely invalid JSON being sent up.
'401':
description: Provided access token is invalid or does not have access to requested resource
'404':
description: Requested resource not found
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
delete:
x-fern-sdk-group-name: collections
x-fern-sdk-method-name: delete
security:
- OAuth2:
- 'cms:write'
operationId: delete-field
summary: Delete Collection Field
description: 'Delete a custom field in a collection. This endpoint does not currently support bulk deletion. Required scope | `cms:write`'
tags:
- Collections
- Sites
parameters:
- name: collection_id
in: path
description: Unique identifier for a Collection
example: 580e63fc8c9a982ac9b8b745
required: true
schema:
type: string
format: objectid
- name: field_id
in: path
description: Unique identifier for a Field in a collection
example: 580e63fc8c9a982ac9b8b745
required: true
schema:
type: string
format: objectid
responses:
'204':
description: Request was successful. No Content is returned.
'400':
description: Request body was incorrectly formatted. Likely invalid JSON being sent up.
'401':
description: Provided access token is invalid or does not have access to requested resource
'404':
description: Requested resource not found
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
'/collections/{collection_id}/items':
get:
x-fern-sdk-group-name:
- collections
- items
x-fern-sdk-method-name: list-items
security:
- OAuth2:
- 'CMS:read'
operationId: list-collection-items
summary: List Collection Items
description: 'List of all Items within a Collection. Required scope | `CMS:read`'
tags:
- Items
- Collections
- Sites
parameters:
- name: collection_id
in: path
description: Unique identifier for a Collection
example: 580e63fc8c9a982ac9b8b745
required: true
schema:
type: string
format: objectid
- name: cmsLocaleId
in: query
allowEmptyValue: true
description: 'Unique identifier for a CMS Locale. This UID is different from the Site locale identifier and is listed as `cmsLocaleId` in the Sites response. To query multiple locales, input a comma separated string.'
schema:
type: string
- in: query
example: 0
allowEmptyValue: true
name: offset
description: Offset used for pagination if the results have more than limit records
required: false
schema:
type: number
- in: query
allowEmptyValue: true
name: limit
example: 100
description: 'Maximum number of records to be returned (max limit: 100)'
required: false
schema:
type: number
- name: name
in: query
allowEmptyValue: true
description: The name of the item(s)
schema:
type: string
- name: slug
in: query
allowEmptyValue: true
description: The slug of the item
schema:
type: string
- name: lastPublished
in: query
allowEmptyValue: true
description: The last published date of the item(s)
schema:
type: object
properties:
lte:
type: string
format: date-time
example: '2024-04-22T16:00:31.000Z'
gte:
type: string
format: date-time
example: '2024-04-19T16:00:31.000Z'
style: deepObject
explode: true
- name: sortBy
in: query
allowEmptyValue: true
description: Sort results by the provided value
required: false
schema:
type: string
enum:
- lastPublished
- name
- slug
- name: sortOrder
in: query
allowEmptyValue: true
description: Sorts the results by asc or desc
required: false
schema:
type: string
enum:
- asc
- desc
responses:
'200':
description: Request was successful
content:
application/json:
schema:
description: Results from collection items list
example:
items:
- id: 62b720ef280c7a7a3be8cabe
lastPublished: '2022-06-30T13:35:20.878Z'
lastUpdated: '2022-06-25T14:51:27.809Z'
createdOn: '2022-06-25T14:51:27.809Z'
isArchived: false
isDraft: false
fieldData:
url: 'https://boards.greenhouse.io/webflow/jobs/26567701'
name: Senior Data Analyst
department: Data
slug: senior-data-analyst
pagination:
limit: 25
offset: 0
total: 2
properties:
items:
type: array
description: List of Items within the collection
items:
description: |
The fields that define the schema for a given Item are based on the Collection that Item belongs to. Beyond the user defined fields, there are a handful of additional fields that are automatically created for all items
required:
- id
properties:
id:
type: string
readOnly: true
example: 580e64008c9a982ac9b8b754
description: Unique identifier for the Item
cmsLocaleId:
type: string
example: 653ad57de882f528b32e810e
description: Identifier for the locale of the CMS item
lastPublished:
type: string
format: date-string
readOnly: true
example: 2023-03-17T18:47:35.560Z
description: The date the item was last published
lastUpdated:
type: string
format: date-string
readOnly: true
example: 2023-03-17T18:47:35.560Z
description: The date the item was last updated
createdOn:
type: string
format: date-string
readOnly: true
example: 2023-03-17T18:47:35.560Z
description: The date the item was created
isArchived:
type: boolean
default: false
description: Boolean determining if the Item is set to archived
isDraft:
type: boolean
default: false
description: Boolean determining if the Item is set to draft
fieldData:
type: object
properties:
name:
type: string
description: Name of the Item
slug:
type: string
description: 'URL structure of the Item in your site. Note: Updates to an item slug will break all links referencing the old slug.'
additionalProperties: true
example:
date: 2022-11-18T00:00:00.000Z
featured: false
name: My new item
slug: my-new-item
color: '#db4b68'
example:
id: 42b720ef280c7a7a3be8cabe
cmsLocaleId: 653ad57de882f528b32e810e
lastPublished: '2022-11-29T16:22:43.159Z'
lastUpdated: '2022-11-17T17:19:43.282Z'
createdOn: '2022-11-17T17:11:57.148Z'
isArchived: false
isDraft: false
fieldData:
date: '2022-11-18T00:00:00.000Z'
featured: true
name: Pan Galactic Gargle Blaster Recipe
slug: pan-galactic-gargle-blaster
color: '#db4b68'
pagination:
type: object
properties:
limit:
type: number
default: 100
description: The limit specified in the request
offset:
type: number
default: 0
description: The offset specified for pagination
total:
type: number
description: Total number of items in the collection
'400':
description: Request body was incorrectly formatted. Likely invalid JSON being sent up.
'401':
description: Provided access token is invalid or does not have access to requested resource
'404':
description: Requested resource not found
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
'/collections/{collection_id}/items/live':
get:
x-fern-sdk-group-name:
- collections
- items
x-fern-sdk-method-name: list-items-live
security:
- OAuth2:
- 'CMS:read'
operationId: list-collection-items-live
summary: List Collection Items (Live)
description: 'List of all live Items within a Collection. Required scope | `CMS:read`'
tags:
- Items
- Collections
- Sites
parameters:
- name: collection_id
in: path
description: Unique identifier for a Collection
example: 580e63fc8c9a982ac9b8b745
required: true
schema:
type: string
format: objectid
- name: cmsLocaleId
in: query
allowEmptyValue: true
description: 'Unique identifier for a CMS Locale. This UID is different from the Site locale identifier and is listed as `cmsLocaleId` in the Sites response. To query multiple locales, input a comma separated string.'
schema:
type: string
- in: query
example: 0
allowEmptyValue: true
name: offset
description: Offset used for pagination if the results have more than limit records
required: false
schema:
type: number
- in: query
allowEmptyValue: true
name: limit
example: 100
description: 'Maximum number of records to be returned (max limit: 100)'
required: false
schema:
type: number
- name: name
in: query
allowEmptyValue: true
description: The name of the item(s)
schema:
type: string
- name: slug
in: query
allowEmptyValue: true
description: The slug of the item
schema:
type: string
- name: lastPublished
in: query
allowEmptyValue: true
description: The last published date of the item(s)
schema:
type: object
properties:
lte:
type: string
format: date-time
example: '2024-04-22T16:00:31.000Z'
gte:
type: string
format: date-time
example: '2024-04-19T16:00:31.000Z'
style: deepObject
explode: true
- name: sortBy
in: query
allowEmptyValue: true
description: Sort results by the provided value
required: false
schema:
type: string
enum:
- lastPublished
- name
- slug
- name: sortOrder
in: query
allowEmptyValue: true
description: Sorts the results by asc or desc
required: false
schema:
type: string
enum:
- asc
- desc
responses:
'200':
description: Request was successful
content:
application/json:
schema:
description: Results from collection items list
example:
items:
- id: 62b720ef280c7a7a3be8cabe
lastPublished: '2022-06-30T13:35:20.878Z'
lastUpdated: '2022-06-25T14:51:27.809Z'
createdOn: '2022-06-25T14:51:27.809Z'
isArchived: false
isDraft: false
fieldData:
url: 'https://boards.greenhouse.io/webflow/jobs/26567701'
name: Senior Data Analyst
department: Data
slug: senior-data-analyst
pagination:
limit: 25
offset: 0
total: 2
properties:
items:
type: array
description: List of Items within the collection
items:
description: |
The fields that define the schema for a given Item are based on the Collection that Item belongs to. Beyond the user defined fields, there are a handful of additional fields that are automatically created for all items
required:
- id
properties:
id:
type: string
readOnly: true
example: 580e64008c9a982ac9b8b754
description: Unique identifier for the Item
cmsLocaleId:
type: string
example: 653ad57de882f528b32e810e
description: Identifier for the locale of the CMS item
lastPublished:
type: string
format: date-string
readOnly: true
example: 2023-03-17T18:47:35.560Z
description: The date the item was last published
lastUpdated:
type: string
format: date-string
readOnly: true
example: 2023-03-17T18:47:35.560Z
description: The date the item was last updated
createdOn:
type: string
format: date-string
readOnly: true
example: 2023-03-17T18:47:35.560Z
description: The date the item was created
isArchived:
type: boolean
default: false
description: Boolean determining if the Item is set to archived
isDraft:
type: boolean
default: false
description: Boolean determining if the Item is set to draft
fieldData:
type: object
properties:
name:
type: string
description: Name of the Item
slug:
type: string
description: 'URL structure of the Item in your site. Note: Updates to an item slug will break all links referencing the old slug.'
additionalProperties: true
example:
date: 2022-11-18T00:00:00.000Z
featured: false
name: My new item
slug: my-new-item
color: '#db4b68'
example:
id: 42b720ef280c7a7a3be8cabe
cmsLocaleId: 653ad57de882f528b32e810e
lastPublished: '2022-11-29T16:22:43.159Z'
lastUpdated: '2022-11-17T17:19:43.282Z'
createdOn: '2022-11-17T17:11:57.148Z'
isArchived: false
isDraft: false
fieldData:
date: '2022-11-18T00:00:00.000Z'
featured: true
name: Pan Galactic Gargle Blaster Recipe
slug: pan-galactic-gargle-blaster
color: '#db4b68'
pagination:
type: object
properties:
limit:
type: number
default: 100
description: The limit specified in the request
offset:
type: number
default: 0
description: The offset specified for pagination
total:
type: number
description: Total number of items in the collection
'400':
description: Request body was incorrectly formatted. Likely invalid JSON being sent up.
'401':
description: Provided access token is invalid or does not have access to requested resource
'404':
description: Requested resource not found
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
post:
x-fern-sdk-group-name:
- collections
- items
x-fern-sdk-method-name: create-item-live
security:
- OAuth2:
- 'CMS:write'
operationId: create-item-live
summary: Create Collection Item (Live)
description: 'Create live Item in a Collection. This Item will be published to the live site. To create items across multiple locales, please use this endpoint. Required scope | `CMS:write`'
tags:
- Items
- Collections
- Sites
parameters:
- name: collection_id
in: path
description: Unique identifier for a Collection
example: 580e63fc8c9a982ac9b8b745
required: true
schema:
type: string
format: objectid
requestBody:
description: Details of the item to create
content:
application/json:
schema:
description: |
The fields that define the schema for a given Item are based on the Collection that Item belongs to. Beyond the user defined fields, there are a handful of additional fields that are automatically created for all items
required:
- id
properties:
id:
type: string
readOnly: true
example: 580e64008c9a982ac9b8b754
description: Unique identifier for the Item
cmsLocaleId:
type: string
example: 653ad57de882f528b32e810e
description: Identifier for the locale of the CMS item
lastPublished:
type: string
format: date-string
readOnly: true
example: 2023-03-17T18:47:35.560Z
description: The date the item was last published
lastUpdated:
type: string
format: date-string
readOnly: true
example: 2023-03-17T18:47:35.560Z
description: The date the item was last updated
createdOn:
type: string
format: date-string
readOnly: true
example: 2023-03-17T18:47:35.560Z
description: The date the item was created
isArchived:
type: boolean
default: false
description: Boolean determining if the Item is set to archived
isDraft:
type: boolean
default: false
description: Boolean determining if the Item is set to draft
fieldData:
type: object
properties:
name:
type: string
description: Name of the Item
slug:
type: string
description: 'URL structure of the Item in your site. Note: Updates to an item slug will break all links referencing the old slug.'
additionalProperties: true
example:
date: 2022-11-18T00:00:00.000Z
featured: false
name: My new item
slug: my-new-item
color: '#db4b68'
example:
id: 42b720ef280c7a7a3be8cabe
cmsLocaleId: 653ad57de882f528b32e810e
lastPublished: '2022-11-29T16:22:43.159Z'
lastUpdated: '2022-11-17T17:19:43.282Z'
createdOn: '2022-11-17T17:11:57.148Z'
isArchived: false
isDraft: false
fieldData:
date: '2022-11-18T00:00:00.000Z'
featured: true
name: Pan Galactic Gargle Blaster Recipe
slug: pan-galactic-gargle-blaster
color: '#db4b68'
responses:
'202':
description: Request was successful
content:
application/json:
schema:
description: |
The fields that define the schema for a given Item are based on the Collection that Item belongs to. Beyond the user defined fields, there are a handful of additional fields that are automatically created for all items
required:
- id
properties:
id:
type: string
readOnly: true
example: 580e64008c9a982ac9b8b754
description: Unique identifier for the Item
cmsLocaleId:
type: string
example: 653ad57de882f528b32e810e
description: Identifier for the locale of the CMS item
lastPublished:
type: string
format: date-string
readOnly: true
example: 2023-03-17T18:47:35.560Z
description: The date the item was last published
lastUpdated:
type: string
format: date-string
readOnly: true
example: 2023-03-17T18:47:35.560Z
description: The date the item was last updated
createdOn:
type: string
format: date-string
readOnly: true
example: 2023-03-17T18:47:35.560Z
description: The date the item was created
isArchived:
type: boolean
default: false
description: Boolean determining if the Item is set to archived
isDraft:
type: boolean
default: false
description: Boolean determining if the Item is set to draft
fieldData:
type: object
properties:
name:
type: string
description: Name of the Item
slug:
type: string
description: 'URL structure of the Item in your site. Note: Updates to an item slug will break all links referencing the old slug.'
additionalProperties: true
example:
date: 2022-11-18T00:00:00.000Z
featured: false
name: My new item
slug: my-new-item
color: '#db4b68'
example:
id: 42b720ef280c7a7a3be8cabe
cmsLocaleId: 653ad57de882f528b32e810e
lastPublished: '2022-11-29T16:22:43.159Z'
lastUpdated: '2022-11-17T17:19:43.282Z'
createdOn: '2022-11-17T17:11:57.148Z'
isArchived: false
isDraft: false
fieldData:
date: '2022-11-18T00:00:00.000Z'
featured: true
name: Pan Galactic Gargle Blaster Recipe
slug: pan-galactic-gargle-blaster
color: '#db4b68'
'400':
description: Request body was incorrectly formatted. Likely invalid JSON being sent up.
'401':
description: Provided access token is invalid or does not have access to requested resource
'404':
description: Requested resource not found
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
'/collections/{collection_id}/items/bulk':
post:
x-fern-sdk-group-name:
- collections
- items
x-fern-sdk-method-name: create-item-for-multiple-locales
security:
- OAuth2:
- 'cms:write'
operationId: create-item-for-multiple-locales
summary: Create item for multiple locales
description: 'Create single Item in a Collection with multiple corresponding locales. Required scope | `CMS:write`'
tags:
- Items
- Collections
- Sites
parameters:
- name: collection_id
in: path
description: Unique identifier for a Collection
example: 580e63fc8c9a982ac9b8b745
required: true
schema:
type: string
format: objectid
requestBody:
description: Details of the item to create
content:
application/json:
schema:
description: |
The fields that define the schema for a given Item are based on the Collection that Item belongs to. Beyond the user defined fields, there are a handful of additional fields that are automatically created for all items
required:
- id
properties:
id:
type: string
readOnly: true
example: 580e64008c9a982ac9b8b754
description: Unique identifier for the Item
cmsLocaleIds:
type: array
description: Array of identifiers for the locales where the item will be created
items:
type: string
description: CMS Locale ID
example:
- 653ad57de882f528b32e810e
- 6514390aea353fc691d69827
- 65143930ea353fc691d69cd8
lastPublished:
type: string
format: date-string
nullable: true
readOnly: true
example: 2023-03-17T18:47:35.560Z
description: The date the item was last published
lastUpdated:
type: string
format: date-string
readOnly: true
example: 2023-03-17T18:47:35.560Z
description: The date the item was last updated
createdOn:
type: string
format: date-string
readOnly: true
example: 2023-03-17T18:47:35.560Z
description: The date the item was created
isArchived:
type: boolean
default: false
description: Boolean determining if the Item is set to archived
isDraft:
type: boolean
default: false
description: Boolean determining if the Item is set to draft
fieldData:
type: object
properties:
name:
type: string
description: Name of the Item
slug:
type: string
description: 'URL structure of the Item in your site. Note: Updates to an item slug will break all links referencing the old slug.'
additionalProperties: true
example:
date: 2022-11-18T00:00:00.000Z
featured: false
name: My new item
slug: my-new-item
color: '#db4b68'
example:
items:
- id: 65df88b3d9706dfafead9117
cmsLocaleId: 653ad57de882f528b32e810e
lastPublished: null
lastUpdated: '2024-02-28T19:25:39.942Z'
createdOn: '2024-02-28T19:25:39.942Z'
isArchived: false
isDraft: false
fieldData:
name: My New Item
slug: my-new-item
- id: 65df88b3d9706dfafead9117
cmsLocaleId: 653fd9af6a07fc9cfd7a5e5d
lastPublished: null
lastUpdated: '2024-02-28T19:25:39.942Z'
createdOn: '2024-02-28T19:25:39.942Z'
isArchived: false
isDraft: false
fieldData:
name: My New Item
slug: my-new-item
responses:
'202':
description: Request was successful
content:
application/json:
schema:
description: |
The fields that define the schema for a given Item are based on the Collection that Item belongs to. Beyond the user defined fields, there are a handful of additional fields that are automatically created for all items
required:
- id
properties:
id:
type: string
readOnly: true
example: 580e64008c9a982ac9b8b754
description: Unique identifier for the Item
cmsLocaleIds:
type: array
description: Array of identifiers for the locales where the item will be created
items:
type: string
description: CMS Locale ID
example:
- 653ad57de882f528b32e810e
- 6514390aea353fc691d69827
- 65143930ea353fc691d69cd8
lastPublished:
type: string
format: date-string
nullable: true
readOnly: true
example: 2023-03-17T18:47:35.560Z
description: The date the item was last published
lastUpdated:
type: string
format: date-string
readOnly: true
example: 2023-03-17T18:47:35.560Z
description: The date the item was last updated
createdOn:
type: string
format: date-string
readOnly: true
example: 2023-03-17T18:47:35.560Z
description: The date the item was created
isArchived:
type: boolean
default: false
description: Boolean determining if the Item is set to archived
isDraft:
type: boolean
default: false
description: Boolean determining if the Item is set to draft
fieldData:
type: object
properties:
name:
type: string
description: Name of the Item
slug:
type: string
description: 'URL structure of the Item in your site. Note: Updates to an item slug will break all links referencing the old slug.'
additionalProperties: true
example:
date: 2022-11-18T00:00:00.000Z
featured: false
name: My new item
slug: my-new-item
color: '#db4b68'
example:
items:
- id: 65df88b3d9706dfafead9117
cmsLocaleId: 653ad57de882f528b32e810e
lastPublished: null
lastUpdated: '2024-02-28T19:25:39.942Z'
createdOn: '2024-02-28T19:25:39.942Z'
isArchived: false
isDraft: false
fieldData:
name: My New Item
slug: my-new-item
- id: 65df88b3d9706dfafead9117
cmsLocaleId: 653fd9af6a07fc9cfd7a5e5d
lastPublished: null
lastUpdated: '2024-02-28T19:25:39.942Z'
createdOn: '2024-02-28T19:25:39.942Z'
isArchived: false
isDraft: false
fieldData:
name: My New Item
slug: my-new-item
'400':
description: Request body was incorrectly formatted. Likely invalid JSON being sent up.
'401':
description: Provided access token is invalid or does not have access to requested resource
'404':
description: Requested resource not found
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
'/collections/{collection_id}/items/{item_id}':
get:
x-fern-sdk-group-name:
- collections
- items
x-fern-sdk-method-name: get-item
security:
- OAuth2:
- 'CMS:read'
operationId: Get-Item
summary: Get Collection Item
description: 'Get details of a selected Collection Item. Required scope | `CMS:read`'
tags:
- Items
- Collections
- Sites
parameters:
- name: collection_id
in: path
description: Unique identifier for a Collection
example: 580e63fc8c9a982ac9b8b745
required: true
schema:
type: string
format: objectid
- name: item_id
in: path
description: Unique identifier for an Item
example: 580e64008c9a982ac9b8b754
required: true
schema:
type: string
format: objectid
- name: cmsLocaleId
in: query
allowEmptyValue: true
description: 'Unique identifier for a CMS Locale. This UID is different from the Site locale identifier and is listed as `cmsLocaleId` in the Sites response. To query multiple locales, input a comma separated string.'
schema:
type: string
responses:
'200':
description: Request was successful
content:
application/json:
schema:
description: |
The fields that define the schema for a given Item are based on the Collection that Item belongs to. Beyond the user defined fields, there are a handful of additional fields that are automatically created for all items
required:
- id
properties:
id:
type: string
readOnly: true
example: 580e64008c9a982ac9b8b754
description: Unique identifier for the Item
cmsLocaleId:
type: string
example: 653ad57de882f528b32e810e
description: Identifier for the locale of the CMS item
lastPublished:
type: string
format: date-string
readOnly: true
example: 2023-03-17T18:47:35.560Z
description: The date the item was last published
lastUpdated:
type: string
format: date-string
readOnly: true
example: 2023-03-17T18:47:35.560Z
description: The date the item was last updated
createdOn:
type: string
format: date-string
readOnly: true
example: 2023-03-17T18:47:35.560Z
description: The date the item was created
isArchived:
type: boolean
default: false
description: Boolean determining if the Item is set to archived
isDraft:
type: boolean
default: false
description: Boolean determining if the Item is set to draft
fieldData:
type: object
properties:
name:
type: string
description: Name of the Item
slug:
type: string
description: 'URL structure of the Item in your site. Note: Updates to an item slug will break all links referencing the old slug.'
additionalProperties: true
example:
date: 2022-11-18T00:00:00.000Z
featured: false
name: My new item
slug: my-new-item
color: '#db4b68'
example:
id: 42b720ef280c7a7a3be8cabe
cmsLocaleId: 653ad57de882f528b32e810e
lastPublished: '2022-11-29T16:22:43.159Z'
lastUpdated: '2022-11-17T17:19:43.282Z'
createdOn: '2022-11-17T17:11:57.148Z'
isArchived: false
isDraft: false
fieldData:
date: '2022-11-18T00:00:00.000Z'
featured: true
name: Pan Galactic Gargle Blaster Recipe
slug: pan-galactic-gargle-blaster
color: '#db4b68'
'400':
description: Request body was incorrectly formatted. Likely invalid JSON being sent up.
'401':
description: Provided access token is invalid or does not have access to requested resource
'404':
description: Requested resource not found
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
patch:
x-fern-sdk-group-name:
- collections
- items
x-fern-sdk-method-name: update-item
security:
- OAuth2:
- 'CMS:write'
operationId: update-item
summary: Update Collection Item
description: 'Update a selected Item in a Collection. Required scope | `CMS:write`'
tags:
- Items
- Collections
- Sites
parameters:
- name: collection_id
in: path
description: Unique identifier for a Collection
example: 580e63fc8c9a982ac9b8b745
required: true
schema:
type: string
format: objectid
- name: item_id
in: path
description: Unique identifier for an Item
example: 580e64008c9a982ac9b8b754
required: true
schema:
type: string
format: objectid
requestBody:
description: Details of the item to update
content:
application/json:
schema:
description: |
The fields that define the schema for a given Item are based on the Collection that Item belongs to. Beyond the user defined fields, there are a handful of additional fields that are automatically created for all items
required:
- id
properties:
id:
type: string
readOnly: true
example: 580e64008c9a982ac9b8b754
description: Unique identifier for the Item
cmsLocaleId:
type: string
example: 653ad57de882f528b32e810e
description: Identifier for the locale of the CMS item
lastPublished:
type: string
format: date-string
readOnly: true
example: 2023-03-17T18:47:35.560Z
description: The date the item was last published
lastUpdated:
type: string
format: date-string
readOnly: true
example: 2023-03-17T18:47:35.560Z
description: The date the item was last updated
createdOn:
type: string
format: date-string
readOnly: true
example: 2023-03-17T18:47:35.560Z
description: The date the item was created
isArchived:
type: boolean
default: false
description: Boolean determining if the Item is set to archived
isDraft:
type: boolean
default: false
description: Boolean determining if the Item is set to draft
fieldData:
type: object
properties:
name:
type: string
description: Name of the Item
slug:
type: string
description: 'URL structure of the Item in your site. Note: Updates to an item slug will break all links referencing the old slug.'
additionalProperties: true
example:
date: 2022-11-18T00:00:00.000Z
featured: false
name: My new item
slug: my-new-item
color: '#db4b68'
example:
id: 42b720ef280c7a7a3be8cabe
cmsLocaleId: 653ad57de882f528b32e810e
lastPublished: '2022-11-29T16:22:43.159Z'
lastUpdated: '2022-11-17T17:19:43.282Z'
createdOn: '2022-11-17T17:11:57.148Z'
isArchived: false
isDraft: false
fieldData:
date: '2022-11-18T00:00:00.000Z'
featured: true
name: Pan Galactic Gargle Blaster Recipe
slug: pan-galactic-gargle-blaster
color: '#db4b68'
responses:
'200':
description: Request was successful
content:
application/json:
schema:
description: |
The fields that define the schema for a given Item are based on the Collection that Item belongs to. Beyond the user defined fields, there are a handful of additional fields that are automatically created for all items
required:
- id
properties:
id:
type: string
readOnly: true
example: 580e64008c9a982ac9b8b754
description: Unique identifier for the Item
cmsLocaleId:
type: string
example: 653ad57de882f528b32e810e
description: Identifier for the locale of the CMS item
lastPublished:
type: string
format: date-string
readOnly: true
example: 2023-03-17T18:47:35.560Z
description: The date the item was last published
lastUpdated:
type: string
format: date-string
readOnly: true
example: 2023-03-17T18:47:35.560Z
description: The date the item was last updated
createdOn:
type: string
format: date-string
readOnly: true
example: 2023-03-17T18:47:35.560Z
description: The date the item was created
isArchived:
type: boolean
default: false
description: Boolean determining if the Item is set to archived
isDraft:
type: boolean
default: false
description: Boolean determining if the Item is set to draft
fieldData:
type: object
properties:
name:
type: string
description: Name of the Item
slug:
type: string
description: 'URL structure of the Item in your site. Note: Updates to an item slug will break all links referencing the old slug.'
additionalProperties: true
example:
date: 2022-11-18T00:00:00.000Z
featured: false
name: My new item
slug: my-new-item
color: '#db4b68'
example:
id: 42b720ef280c7a7a3be8cabe
cmsLocaleId: 653ad57de882f528b32e810e
lastPublished: '2022-11-29T16:22:43.159Z'
lastUpdated: '2022-11-17T17:19:43.282Z'
createdOn: '2022-11-17T17:11:57.148Z'
isArchived: false
isDraft: false
fieldData:
date: '2022-11-18T00:00:00.000Z'
featured: true
name: Pan Galactic Gargle Blaster Recipe
slug: pan-galactic-gargle-blaster
color: '#db4b68'
'400':
description: Request body was incorrectly formatted. Likely invalid JSON being sent up.
'401':
description: Provided access token is invalid or does not have access to requested resource
'404':
description: Requested resource not found
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
delete:
x-fern-sdk-group-name:
- collections
- items
x-fern-sdk-method-name: delete-item
security:
- OAuth2:
- 'CMS:write'
operationId: delete-item
summary: Delete Collection Item
description: 'Delete an Item from a Collection. This endpoint does not currently support bulk deletion. Required scope | `CMS:write`'
tags:
- Items
- Collections
- Sites
parameters:
- name: collection_id
in: path
description: Unique identifier for a Collection
example: 580e63fc8c9a982ac9b8b745
required: true
schema:
type: string
format: objectid
- name: item_id
in: path
description: Unique identifier for an Item
example: 580e64008c9a982ac9b8b754
required: true
schema:
type: string
format: objectid
- name: cmsLocaleId
in: query
allowEmptyValue: true
description: 'Unique identifier for a CMS Locale. This UID is different from the Site locale identifier and is listed as `cmsLocaleId` in the Sites response. To query multiple locales, input a comma separated string.'
schema:
type: string
responses:
'204':
description: Request was successful
'400':
description: Request body was incorrectly formatted. Likely invalid JSON being sent up.
'401':
description: Provided access token is invalid or does not have access to requested resource
'404':
description: Requested resource not found
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
'/collections/{collection_id}/items/{item_id}/live':
get:
x-fern-sdk-group-name:
- collections
- items
x-fern-sdk-method-name: get-item-live
security:
- OAuth2:
- 'CMS:read'
operationId: get-item-live
summary: Get Collection Item (Live)
description: 'Get details of a selected Collection live Item. Required scope | `CMS:read`'
tags:
- Items
- Collections
- Sites
parameters:
- name: collection_id
in: path
description: Unique identifier for a Collection
example: 580e63fc8c9a982ac9b8b745
required: true
schema:
type: string
format: objectid
- name: item_id
in: path
description: Unique identifier for an Item
example: 580e64008c9a982ac9b8b754
required: true
schema:
type: string
format: objectid
- name: cmsLocaleId
in: query
allowEmptyValue: true
description: 'Unique identifier for a CMS Locale. This UID is different from the Site locale identifier and is listed as `cmsLocaleId` in the Sites response. To query multiple locales, input a comma separated string.'
schema:
type: string
responses:
'200':
description: Request was successful
content:
application/json:
schema:
description: |
The fields that define the schema for a given Item are based on the Collection that Item belongs to. Beyond the user defined fields, there are a handful of additional fields that are automatically created for all items
required:
- id
properties:
id:
type: string
readOnly: true
example: 580e64008c9a982ac9b8b754
description: Unique identifier for the Item
cmsLocaleId:
type: string
example: 653ad57de882f528b32e810e
description: Identifier for the locale of the CMS item
lastPublished:
type: string
format: date-string
readOnly: true
example: 2023-03-17T18:47:35.560Z
description: The date the item was last published
lastUpdated:
type: string
format: date-string
readOnly: true
example: 2023-03-17T18:47:35.560Z
description: The date the item was last updated
createdOn:
type: string
format: date-string
readOnly: true
example: 2023-03-17T18:47:35.560Z
description: The date the item was created
isArchived:
type: boolean
default: false
description: Boolean determining if the Item is set to archived
isDraft:
type: boolean
default: false
description: Boolean determining if the Item is set to draft
fieldData:
type: object
properties:
name:
type: string
description: Name of the Item
slug:
type: string
description: 'URL structure of the Item in your site. Note: Updates to an item slug will break all links referencing the old slug.'
additionalProperties: true
example:
date: 2022-11-18T00:00:00.000Z
featured: false
name: My new item
slug: my-new-item
color: '#db4b68'
example:
id: 42b720ef280c7a7a3be8cabe
cmsLocaleId: 653ad57de882f528b32e810e
lastPublished: '2022-11-29T16:22:43.159Z'
lastUpdated: '2022-11-17T17:19:43.282Z'
createdOn: '2022-11-17T17:11:57.148Z'
isArchived: false
isDraft: false
fieldData:
date: '2022-11-18T00:00:00.000Z'
featured: true
name: Pan Galactic Gargle Blaster Recipe
slug: pan-galactic-gargle-blaster
color: '#db4b68'
'400':
description: Request body was incorrectly formatted. Likely invalid JSON being sent up.
'401':
description: Provided access token is invalid or does not have access to requested resource
'404':
description: Requested resource not found
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
patch:
x-fern-sdk-group-name:
- collections
- items
x-fern-sdk-method-name: update-item-live
security:
- OAuth2:
- 'CMS:write'
operationId: update-item-live
summary: Update Collection Item (Live)
description: 'Update a selected live Item in a Collection. The updates for this Item will be published to the live site. Required scope | `CMS:write`'
tags:
- Items
- Collections
- Sites
parameters:
- name: collection_id
in: path
description: Unique identifier for a Collection
example: 580e63fc8c9a982ac9b8b745
required: true
schema:
type: string
format: objectid
- name: item_id
in: path
description: Unique identifier for an Item
example: 580e64008c9a982ac9b8b754
required: true
schema:
type: string
format: objectid
requestBody:
description: Details of the item to update
content:
application/json:
schema:
description: |
The fields that define the schema for a given Item are based on the Collection that Item belongs to. Beyond the user defined fields, there are a handful of additional fields that are automatically created for all items
required:
- id
properties:
id:
type: string
readOnly: true
example: 580e64008c9a982ac9b8b754
description: Unique identifier for the Item
cmsLocaleId:
type: string
example: 653ad57de882f528b32e810e
description: Identifier for the locale of the CMS item
lastPublished:
type: string
format: date-string
readOnly: true
example: 2023-03-17T18:47:35.560Z
description: The date the item was last published
lastUpdated:
type: string
format: date-string
readOnly: true
example: 2023-03-17T18:47:35.560Z
description: The date the item was last updated
createdOn:
type: string
format: date-string
readOnly: true
example: 2023-03-17T18:47:35.560Z
description: The date the item was created
isArchived:
type: boolean
default: false
description: Boolean determining if the Item is set to archived
isDraft:
type: boolean
default: false
description: Boolean determining if the Item is set to draft
fieldData:
type: object
properties:
name:
type: string
description: Name of the Item
slug:
type: string
description: 'URL structure of the Item in your site. Note: Updates to an item slug will break all links referencing the old slug.'
additionalProperties: true
example:
date: 2022-11-18T00:00:00.000Z
featured: false
name: My new item
slug: my-new-item
color: '#db4b68'
example:
id: 42b720ef280c7a7a3be8cabe
cmsLocaleId: 653ad57de882f528b32e810e
lastPublished: '2022-11-29T16:22:43.159Z'
lastUpdated: '2022-11-17T17:19:43.282Z'
createdOn: '2022-11-17T17:11:57.148Z'
isArchived: false
isDraft: false
fieldData:
date: '2022-11-18T00:00:00.000Z'
featured: true
name: Pan Galactic Gargle Blaster Recipe
slug: pan-galactic-gargle-blaster
color: '#db4b68'
responses:
'200':
description: Request was successful
content:
application/json:
schema:
description: |
The fields that define the schema for a given Item are based on the Collection that Item belongs to. Beyond the user defined fields, there are a handful of additional fields that are automatically created for all items
required:
- id
properties:
id:
type: string
readOnly: true
example: 580e64008c9a982ac9b8b754
description: Unique identifier for the Item
cmsLocaleId:
type: string
example: 653ad57de882f528b32e810e
description: Identifier for the locale of the CMS item
lastPublished:
type: string
format: date-string
readOnly: true
example: 2023-03-17T18:47:35.560Z
description: The date the item was last published
lastUpdated:
type: string
format: date-string
readOnly: true
example: 2023-03-17T18:47:35.560Z
description: The date the item was last updated
createdOn:
type: string
format: date-string
readOnly: true
example: 2023-03-17T18:47:35.560Z
description: The date the item was created
isArchived:
type: boolean
default: false
description: Boolean determining if the Item is set to archived
isDraft:
type: boolean
default: false
description: Boolean determining if the Item is set to draft
fieldData:
type: object
properties:
name:
type: string
description: Name of the Item
slug:
type: string
description: 'URL structure of the Item in your site. Note: Updates to an item slug will break all links referencing the old slug.'
additionalProperties: true
example:
date: 2022-11-18T00:00:00.000Z
featured: false
name: My new item
slug: my-new-item
color: '#db4b68'
example:
id: 42b720ef280c7a7a3be8cabe
cmsLocaleId: 653ad57de882f528b32e810e
lastPublished: '2022-11-29T16:22:43.159Z'
lastUpdated: '2022-11-17T17:19:43.282Z'
createdOn: '2022-11-17T17:11:57.148Z'
isArchived: false
isDraft: false
fieldData:
date: '2022-11-18T00:00:00.000Z'
featured: true
name: Pan Galactic Gargle Blaster Recipe
slug: pan-galactic-gargle-blaster
color: '#db4b68'
'400':
description: Request body was incorrectly formatted. Likely invalid JSON being sent up.
'401':
description: Provided access token is invalid or does not have access to requested resource
'404':
description: Requested resource not found
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
delete:
x-fern-sdk-group-name:
- collections
- items
x-fern-sdk-method-name: delete-item-live
security:
- OAuth2:
- 'CMS:write'
operationId: delete-item-live
summary: Delete Collection Item (Live)
description: 'Delete a live Item from a Collection. The Item will be unpublished from the live site. This endpoint does not currently support bulk deletion. Required scope | `CMS:write`'
tags:
- Items
- Collections
- Sites
parameters:
- name: collection_id
in: path
description: Unique identifier for a Collection
example: 580e63fc8c9a982ac9b8b745
required: true
schema:
type: string
format: objectid
- name: item_id
in: path
description: Unique identifier for an Item
example: 580e64008c9a982ac9b8b754
required: true
schema:
type: string
format: objectid
- name: cmsLocaleId
in: query
allowEmptyValue: true
description: 'Unique identifier for a CMS Locale. This UID is different from the Site locale identifier and is listed as `cmsLocaleId` in the Sites response. To query multiple locales, input a comma separated string.'
schema:
type: string
responses:
'204':
description: Request was successful
'400':
description: Request body was incorrectly formatted. Likely invalid JSON being sent up.
'401':
description: Provided access token is invalid or does not have access to requested resource
'404':
description: Requested resource not found
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
'/collections/{collection_id}/items/publish':
post:
x-fern-sdk-group-name:
- collections
- items
x-fern-sdk-method-name: publish-item
security:
- OAuth2:
- 'cms:write'
operationId: publish-item
summary: Publish Item
description: 'Publish an item or multiple items. Required scope | `cms:write`'
tags:
- Items
- Collections
- Sites
parameters:
- name: collection_id
in: path
description: Unique identifier for a Collection
example: 580e63fc8c9a982ac9b8b745
required: true
schema:
type: string
format: objectid
requestBody:
description: An array of Item IDs
content:
application/json:
schema:
type: object
required:
- itemIds
properties:
itemIds:
type: array
items:
type: string
format: objectid
example:
itemIds:
- 643fd856d66b6528195ee2ca
- 643fd856d66b6528195ee2cb
- 643fd856d66b6528195ee2cc
responses:
'202':
description: Request was successful
content:
application/json:
schema:
type: object
properties:
publishedItemIds:
type: array
items:
type: string
errors:
type: array
items:
type: string
example:
publishedItemIds:
- 643fd856d66b6528195ee2ca
- 643fd856d66b6528195ee2cb
errors:
- Staging item ID 643fd856d66b6528195ee2cf not found.
'400':
description: Request body was incorrectly formatted. Likely invalid JSON being sent up.
'401':
description: Provided access token is invalid or does not have access to requested resource
'404':
description: Requested resource not found
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
'/sites/{site_id}/pages':
get:
x-fern-sdk-group-name: pages
x-fern-sdk-method-name: list
security:
- OAuth2:
- 'page:read'
operationId: list-pages
summary: List Pages
description: 'List of all pages for a site Required scope | `pages:read`'
tags:
- Pages
parameters:
- name: site_id
in: path
description: Unique identifier for a Site
example: 580e63e98c9a982ac9b8b741
required: true
schema:
type: string
format: objectid
default: null
- name: locale
in: query
allowEmptyValue: true
example: 65427cf400e02b306eaa04a0
description: 'Unique identifier for a specific locale. Applicable, when using localization.'
schema:
type: string
- in: query
allowEmptyValue: true
name: limit
example: 100
description: 'Maximum number of records to be returned (max limit: 100)'
required: false
schema:
type: number
- in: query
example: 0
allowEmptyValue: true
name: offset
description: Offset used for pagination if the results have more than limit records
required: false
schema:
type: number
responses:
'200':
description: Request was successful
content:
application/json:
schema:
description: The Page object
type: object
example:
pages:
- id: 6596da6045e56dee495bcbba
siteId: 6258612d1ee792848f805dcf
parentId: null
collectionId: null
title: Guide to the Galaxy
slug: guide-to-the-galaxy
createdOn: '2024-03-11T10:42:00.000Z'
lastUpdated: '2024-03-11T10:42:42.000Z'
archived: false
draft: false
canBranch: true
seo:
title: The Ultimate Hitchhiker's Guide to the Galaxy
description: 'Everything you need to know about the galaxy, from avoiding Vogon poetry to the importance of towels.'
openGraph:
title: Explore the Cosmos with The Ultimate Guide
titleCopied: false
description: Dive deep into the mysteries of the universe with your guide to everything galactic.
descriptionCopied: false
- id: 6596da6045e56dee495bcbad
siteId: 6258612d1ee792848f805dcf
parentId: null
collectionId: null
title: Towel Day Celebrations
slug: towel-day
createdOn: '2024-05-25T09:00:00.000Z'
lastUpdated: '2024-05-25T09:42:00.000Z'
archived: false
draft: false
canBranch: true
seo:
title: Celebrate Towel Day - The Hitchhiker's Guide to the Galaxy
description: 'A guide to celebrating Towel Day, in honor of the most massively useful thing an interstellar hitchhiker can have.'
openGraph:
title: Towel Day - Don't Panic
titleCopied: false
description: 'Join the galaxy in celebrating Towel Day, the day dedicated to carrying towels everywhere in memory of Douglas Adams.'
descriptionCopied: false
pagination:
limit: 20
offset: 0
total: 2
properties:
pages:
type: array
items:
description: The Page object
type: object
required:
- pageId
example:
id: 6596da6045e56dee495bcbba
siteId: 6258612d1ee792848f805dcf
parentId: null
collectionId: null
title: Guide to the Galaxy
slug: guide-to-the-galaxy
createdOn: '2024-03-11T10:42:00.000Z'
lastUpdated: '2024-03-11T10:42:42.000Z'
archived: false
draft: false
canBranch: true
seo:
title: The Ultimate Hitchhiker's Guide to the Galaxy
description: 'Everything you need to know about the galaxy, from avoiding Vogon poetry to the importance of towels.'
openGraph:
title: Explore the Cosmos with The Ultimate Guide
titleCopied: false
description: Dive deep into the mysteries of the universe with your guide to everything galactic.
descriptionCopied: false
properties:
id:
type: string
format: objectid
readOnly: true
description: Unique identifier for the Page
example: 63499e4e6e9ed5abbfe42b69
siteId:
type: string
format: objectid
readOnly: true
description: Unique identifier for the Site
example: 580e63e98c9a982ac9b8b741
title:
type: string
description: Title of the Page
example: My New Page
slug:
type: string
description: slug of the Page (derived from title)
example: my-new-page
parentId:
type: string
format: objectid
description: Identifier of the parent folder
readOnly: true
example: 6419db964a9c435aa3af6251
collectionId:
type: string
format: objectid
readOnly: true
description: 'Unique identifier for a linked Collection, value will be null if the Page is not part of a Collection.'
example: 6390c49774a71f12831a08e3
createdOn:
type: string
format: date-time
readOnly: true
description: The date the Page was created
example: '2016-10-24T19:42:38.929Z'
lastUpdated:
type: string
format: date-time
readOnly: true
description: The date the Page was most recently updated
example: '2016-10-24T19:42:38.929Z'
archived:
type: boolean
description: Whether the Page has been archived
default: false
example: false
readOnly: true
draft:
type: boolean
description: Whether the Page is a draft
default: false
example: false
readOnly: true
canBranch:
type: boolean
description: 'Indicates whether the Page supports [Page Branching](https://university.webflow.com/lesson/page-branching)'
readOnly: true
default: false
example: false
isMembersOnly:
type: boolean
description: 'Indicates whether the Page is restricted by [Memberships Controls](https://university.webflow.com/lesson/webflow-memberships-overview#how-to-manage-page-restrictions)'
readOnly: true
default: false
example: false
seo:
type: object
description: SEO-related fields for the Page
properties:
title:
type: string
description: The Page title shown in search engine results
example: CoffeeStyle eCommerce - Webflow HTML website template
description:
type: string
description: The Page description shown in search engine results
example: This Webflow template offers a quick start into an ecommerce / memberships site
openGraph:
type: object
description: Open Graph fields for the Page
properties:
title:
type: string
description: The title supplied to Open Graph annotations
example: My snazzy Open Graph title
titleCopied:
type: boolean
description: Indicates the Open Graph title was copied from the SEO title
readOnly: true
default: true
description:
type: string
description: The description supplied to Open Graph annotations
example: My informative Open Graph description
descriptionCopied:
type: boolean
description: Indicates the Open Graph description was copied from the SEO description
readOnly: true
default: true
pagination:
description: Pagination object
type: object
properties:
limit:
type: number
description: The limit used for pagination
example: 100
offset:
type: number
description: The offset used for pagination
example: 0
total:
type: number
description: The total number of records
example: 100
'400':
description: Request body was incorrectly formatted. Likely invalid JSON being sent up.
'401':
description: Provided access token is invalid or does not have access to requested resource
'404':
description: Requested resource not found
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
'/pages/{page_id}':
put:
security:
- OAuth2:
- 'page:write'
description: 'Update Page-level metadata, including SEO and Open Graph fields. Required scope | `pages:write`'
summary: Update Page Metadata
operationId: update-page-settings
tags:
- Pages
parameters:
- name: page_id
in: path
description: Unique identifier for a Page
example: 63c720f9347c2139b248e552
required: true
schema:
type: string
format: objectid
default: null
- name: locale
in: query
allowEmptyValue: true
example: 65427cf400e02b306eaa04a0
description: 'Unique identifier for a specific locale. Applicable, when using localization.'
schema:
type: string
requestBody:
content:
application/json:
schema:
description: The Page object
type: object
required:
- pageId
example:
id: 6596da6045e56dee495bcbba
siteId: 6258612d1ee792848f805dcf
parentId: null
collectionId: null
title: Guide to the Galaxy
slug: guide-to-the-galaxy
createdOn: '2024-03-11T10:42:00.000Z'
lastUpdated: '2024-03-11T10:42:42.000Z'
archived: false
draft: false
canBranch: true
seo:
title: The Ultimate Hitchhiker's Guide to the Galaxy
description: 'Everything you need to know about the galaxy, from avoiding Vogon poetry to the importance of towels.'
openGraph:
title: Explore the Cosmos with The Ultimate Guide
titleCopied: false
description: Dive deep into the mysteries of the universe with your guide to everything galactic.
descriptionCopied: false
properties:
id:
type: string
format: objectid
readOnly: true
description: Unique identifier for the Page
example: 63499e4e6e9ed5abbfe42b69
siteId:
type: string
format: objectid
readOnly: true
description: Unique identifier for the Site
example: 580e63e98c9a982ac9b8b741
title:
type: string
description: Title of the Page
example: My New Page
slug:
type: string
description: slug of the Page (derived from title)
example: my-new-page
parentId:
type: string
format: objectid
description: Identifier of the parent folder
readOnly: true
example: 6419db964a9c435aa3af6251
collectionId:
type: string
format: objectid
readOnly: true
description: 'Unique identifier for a linked Collection, value will be null if the Page is not part of a Collection.'
example: 6390c49774a71f12831a08e3
createdOn:
type: string
format: date-time
readOnly: true
description: The date the Page was created
example: '2016-10-24T19:42:38.929Z'
lastUpdated:
type: string
format: date-time
readOnly: true
description: The date the Page was most recently updated
example: '2016-10-24T19:42:38.929Z'
archived:
type: boolean
description: Whether the Page has been archived
default: false
example: false
readOnly: true
draft:
type: boolean
description: Whether the Page is a draft
default: false
example: false
readOnly: true
canBranch:
type: boolean
description: 'Indicates whether the Page supports [Page Branching](https://university.webflow.com/lesson/page-branching)'
readOnly: true
default: false
example: false
isMembersOnly:
type: boolean
description: 'Indicates whether the Page is restricted by [Memberships Controls](https://university.webflow.com/lesson/webflow-memberships-overview#how-to-manage-page-restrictions)'
readOnly: true
default: false
example: false
seo:
type: object
description: SEO-related fields for the Page
properties:
title:
type: string
description: The Page title shown in search engine results
example: CoffeeStyle eCommerce - Webflow HTML website template
description:
type: string
description: The Page description shown in search engine results
example: This Webflow template offers a quick start into an ecommerce / memberships site
openGraph:
type: object
description: Open Graph fields for the Page
properties:
title:
type: string
description: The title supplied to Open Graph annotations
example: My snazzy Open Graph title
titleCopied:
type: boolean
description: Indicates the Open Graph title was copied from the SEO title
readOnly: true
default: true
description:
type: string
description: The description supplied to Open Graph annotations
example: My informative Open Graph description
descriptionCopied:
type: boolean
description: Indicates the Open Graph description was copied from the SEO description
readOnly: true
default: true
responses:
'200':
description: Request was successful
content:
application/json:
schema:
description: The Page object
type: object
required:
- pageId
example:
id: 6390c49774a71f0e3c1a08ee
siteId: 6390c49674a71f84b51a08d8
title: Blog Categories Template
slug: detail_blog-category
collectionId: 6390c49774a71f12831a08e3
createdOn: '2018-10-14T21:55:49.063Z'
lastUpdated: '2022-12-07T16:51:37.571Z'
archived: false
draft: false
canBranch: true
isMembersOnly: false
seo:
title: CoffeeStyle eCommerce - Webflow HTML website template
description: This Webflow template offers a quick start into an e-commerce / memberships site
openGraph:
title: CoffeeStyle eCommerce - Webflow HTML website template
titleCopied: true
description: This Webflow template offers a quick start into an e-commerce / memberships site
descriptionCopied: true
localeId: 653fd9af6a07fc9cfd7a5e57
publishedPath: /heart-of-gold
properties:
id:
type: string
format: objectid
readOnly: true
description: Unique identifier for the Page
example: 63499e4e6e9ed5abbfe42b69
siteId:
type: string
format: objectid
readOnly: true
description: Unique identifier for the Site
example: 580e63e98c9a982ac9b8b741
title:
type: string
description: Title of the Page
example: My New Page
slug:
type: string
description: slug of the Page (derived from title)
example: my-new-page
parentId:
type: string
format: objectid
description: Identifier of the parent folder
readOnly: true
example: 6419db964a9c435aa3af6251
collectionId:
type: string
format: objectid
readOnly: true
description: 'Unique identifier for a linked Collection, value will be null if the Page is not part of a Collection.'
example: 6390c49774a71f12831a08e3
createdOn:
type: string
format: date-time
readOnly: true
description: The date the Page was created
example: '2016-10-24T19:42:38.929Z'
lastUpdated:
type: string
format: date-time
readOnly: true
description: The date the Page was most recently updated
example: '2016-10-24T19:42:38.929Z'
archived:
type: boolean
description: Whether the Page has been archived
default: false
example: false
readOnly: true
draft:
type: boolean
description: Whether the Page is a draft
default: false
example: false
readOnly: true
canBranch:
type: boolean
description: 'Indicates whether the Page supports [Page Branching](https://university.webflow.com/lesson/page-branching)'
readOnly: true
default: false
example: false
isMembersOnly:
type: boolean
description: 'Indicates whether the Page is restricted by [Memberships Controls](https://university.webflow.com/lesson/webflow-memberships-overview#how-to-manage-page-restrictions)'
readOnly: true
default: false
example: false
seo:
type: object
description: SEO-related fields for the Page
properties:
title:
type: string
description: The Page title shown in search engine results
example: CoffeeStyle eCommerce - Webflow HTML website template
description:
type: string
description: The Page description shown in search engine results
example: This Webflow template offers a quick start into an ecommerce / memberships site
openGraph:
type: object
description: Open Graph fields for the Page
properties:
title:
type: string
description: The title supplied to Open Graph annotations
example: My snazzy Open Graph title
titleCopied:
type: boolean
description: Indicates the Open Graph title was copied from the SEO title
readOnly: true
default: true
description:
type: string
description: The description supplied to Open Graph annotations
example: My informative Open Graph description
descriptionCopied:
type: boolean
description: Indicates the Open Graph description was copied from the SEO description
readOnly: true
default: true
localeId:
description: Unique ID of the page locale
type: string
format: objectid
nullable: true
example: 653fd9af6a07fc9cfd7a5e57
publishedPath:
description: Relative path of the published page URL
type: string
example: /heart-of-gold
'400':
description: Request body was incorrectly formatted. Likely invalid JSON being sent up.
'401':
description: Provided access token is invalid or does not have access to requested resource
'404':
description: Requested resource not found
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
'/pages/{page_id}/dom':
get:
x-fern-sdk-group-name: pages
x-fern-sdk-method-name: get-content
security:
- OAuth2:
- 'page:read'
summary: Get Page Content
description: 'Get static content from a static page. If you do not provide a Locale ID in your request, the response will return any content that can be localized from the Primary locale Required scope | `pages:read`'
operationId: get-static-content
tags:
- Pages
parameters:
- name: page_id
in: path
description: Unique identifier for a Page
example: 63c720f9347c2139b248e552
required: true
schema:
type: string
format: objectid
default: null
- name: locale
in: query
allowEmptyValue: true
example: 65427cf400e02b306eaa04a0
description: 'Unique identifier for a specific locale. Applicable, when using localization.'
schema:
type: string
- in: query
allowEmptyValue: true
name: limit
example: 100
description: 'Maximum number of records to be returned (max limit: 100)'
required: false
schema:
type: number
- in: query
example: 0
allowEmptyValue: true
name: offset
description: Offset used for pagination if the results have more than limit records
required: false
schema:
type: number
responses:
'200':
description: Request was successful
content:
application/json:
schema:
description: |
The DOM (Document Object Model) schema represents the content structure of a web page. It captures various content nodes, such as text and images, along with their associated attributes. Each node has a unique identifier and can be of different types like text or image. The schema also provides pagination details for scenarios where the content nodes are too many to be fetched in a single request.
type: object
example:
pageId: 658205daa3e8206a523b5ad4
nodes:
- id: a245c12d-995b-55ee-5ec7-aa36a6cad623
type: text
text:
html:
The Hitchhiker's Guide to the Galaxy
text: The Hitchhiker's Guide to the Galaxy
attributes: {}
- id: a245c12d-995b-55ee-5ec7-aa36a6cad627
type: text
text:
html:
Don't Panic!
Always know where your towel is.
text: null
attributes: {}
- id: a245c12d-995b-55ee-5ec7-aa36a6cad629
type: image
image:
alt: 'Marvin, the Paranoid Android'
assetId: 659595234426a9fcbad57043
attributes: {}
pagination:
limit: 3
offset: 0
total: 3
properties:
pageId:
type: string
description: Page ID
nodes:
type: array
items:
description: |
A generic representation of a content element within the Document Object Model (DOM). Each node has a unique identifier and a specific type that determines its content structure and attributes.
type: object
properties:
id:
type: string
description: Node UUID
readOnly: true
type:
type: string
enum:
- text
- image
text:
description: |
Represents textual content within the DOM. It contains both the raw text and its HTML representation, allowing for flexibility in rendering and processing. Additional attributes can be associated with the text for styling or other purposes.
type: object
properties:
html:
type: string
text:
type: string
nullable: true
image:
description: |
Represents an image within the DOM. It contains details about the image, such as its alternative text (alt) for accessibility and an asset identifier for fetching the actual image resource. Additional attributes can be associated with the image for styling or other purposes.
type: object
properties:
alt:
type: string
nullable: true
assetId:
type: string
attributes:
type: object
description: The custom attributes of the node
additionalProperties:
type: string
pagination:
description: Pagination object
type: object
properties:
limit:
type: number
description: The limit used for pagination
example: 100
offset:
type: number
description: The offset used for pagination
example: 0
total:
type: number
description: The total number of records
example: 100
'400':
description: Request body was incorrectly formatted. Likely invalid JSON being sent up.
'401':
description: Provided access token is invalid or does not have access to requested resource
'403':
description: Provided access token does not have access rights to this content.
'404':
description: Requested resource not found
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
post:
security:
- OAuth2:
- 'page:write'
summary: Update Page Content
description: 'Update static content on a static page. This endpoint supports sending 1000 nodes per request. Required scope | `pages:write`'
operationId: update-static-content
tags:
- Pages
parameters:
- name: page_id
in: path
description: Unique identifier for a Page
example: 63c720f9347c2139b248e552
required: true
schema:
type: string
format: objectid
default: null
- name: locale
in: query
required: true
description: The locale identifier.
schema:
type: string
requestBody:
content:
application/json:
schema:
description: |
The DOM (Document Object Model) schema represents the content structure of a web page. It captures various content nodes, such as text and images, along with their associated attributes. Each node has a unique identifier and can be of different types like text or image. The schema also provides pagination details for scenarios where the content nodes are too many to be fetched in a single request.
type: object
properties:
nodes:
type: array
items:
type: object
properties:
nodeId:
type: string
description: Node UUID
example: a245c12d-995b-55ee-5ec7-aa36a6cad623
text:
type: string
description: 'HTML content of the node, including the HTML tag. The HTML tags must be the same as what''s returned from the Get Content endpoint.'
example:
- nodeId: a245c12d-995b-55ee-5ec7-aa36a6cad629
text: ''
responses:
'200':
description: Request was successful
content:
application/json:
schema:
type: object
properties:
errors:
type: array
description: 'A list of error messages, if any.'
items:
type: string
example: []
required:
- errors
'400':
description: Request body was incorrectly formatted. Likely invalid JSON being sent up.
'401':
description: Provided access token is invalid or does not have access to requested resource
'403':
description: Provided access token does not have access rights to this content.
'404':
description: Requested resource not found
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
'/pages/{page_id}/custom_code':
get:
x-fern-sdk-group-name:
- pages
- scripts
x-fern-sdk-method-name: get-custom-code
security:
- OAuth2:
- 'custom_code:read'
operationId: get-page-custom-code
summary: Get Custom Code
description: |
Get all registered scripts that have been applied to a specific Page. In order to use the Custom Code APIs for Sites and Pages, Custom Code Scripts must first be registered to a Site via the `registered_scripts` endpoints, and then applied to a Site or Page using the appropriate `custom_code` endpoints. Access to this endpoint requires a bearer token from a Data Client App. Required scope | `custom_code:read`
tags:
- Custom Code - Pages
- Custom Code
- Sites
parameters:
- name: page_id
in: path
description: Unique identifier for a Page
example: 63c720f9347c2139b248e552
required: true
schema:
type: string
format: objectid
default: null
responses:
'200':
description: Request was successful
content:
application/json:
schema:
type: object
properties:
scripts:
type: array
description: A list of scripts applied to a Site or a Page
items:
type: object
required:
- id
- version
- location
properties:
id:
description: ID of the registered custom code script
type: string
format: objectId
location:
description: 'Location of the script, either in the header or footer of the published site'
type: string
default: header
enum:
- header
- footer
version:
type: string
description: Semantic Version String for the registered script *e.g. 0.0.1*
attributes:
type: object
description: Developer-specified key/value pairs to be applied as attributes to the script
example:
- id: cms_slider
- location: header
- version: 1.0.0
lastUpdated:
type: string
format: date-string
readOnly: true
description: Date when the Site's scripts were last updated
createdOn:
type: string
format: date-string
readOnly: true
description: Date when the Site's scripts were created
example:
scripts:
- id: cms_slider
location: header
version: 1.0.0
attributes:
my-attribute: some-value
- id: alert
location: header
version: 0.0.1
example:
value:
scripts:
- id: cms_slider
location: header
version: 1.0.0
attributes:
my-attribute: some-value
- id: alert
location: header
version: 0.0.1
attributes: {}
lastUpdated: '2022-10-26T00:28:54.191Z'
createdOn: '2022-10-26T00:28:54.191Z'
'400':
description: Request body was incorrectly formatted. Likely invalid JSON being sent up.
'401':
description: Provided access token is invalid or does not have access to requested resource
'404':
description: Requested resource not found
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
delete:
x-fern-sdk-group-name:
- pages
- scripts
x-fern-sdk-method-name: delete-custom-code
security:
- OAuth2:
- 'custom_code:write'
operationId: delete-page-custom-code
summary: Delete Custom Code
description: |
Delete the custom code block that an app has created for a page In order to use the Custom Code APIs for Sites and Pages, Custom Code Scripts must first be registered to a Site via the `registered_scripts` endpoints, and then applied to a Site or Page using the appropriate `custom_code` endpoints. Access to this endpoint requires a bearer token from a Data Client App. Required scope | `custom_code:write`
tags:
- Custom Code - Pages
- Custom Code
- Sites
parameters:
- name: page_id
in: path
description: Unique identifier for a Page
example: 63c720f9347c2139b248e552
required: true
schema:
type: string
format: objectid
default: null
responses:
'204':
description: Request was successful. No Content is returned.
'400':
description: Request body was incorrectly formatted. Likely invalid JSON being sent up.
'401':
description: Provided access token is invalid or does not have access to requested resource
'404':
description: Requested resource not found
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
put:
x-fern-sdk-group-name:
- pages
- scripts
x-fern-sdk-method-name: upsert-custom-code
security:
- OAuth2:
- 'custom_code:write'
operationId: add-custom-code-to-page
summary: Add/Update Custom Code
description: |
Add a registered script to a Page. In order to use the Custom Code APIs for Sites and Pages, Custom Code Scripts must first be registered to a Site via the `registered_scripts` endpoints, and then applied to a Site or Page using the appropriate `custom_code` endpoints. Access to this endpoint requires a bearer token from a Data Client App. Required scope | `custom_code:write`
tags:
- Custom Code - Pages
- Custom Code
- Sites
parameters:
- name: page_id
in: path
description: Unique identifier for a Page
example: 63c720f9347c2139b248e552
required: true
schema:
type: string
format: objectid
default: null
requestBody:
content:
application/json:
schema:
type: object
properties:
scripts:
type: array
description: A list of scripts applied to a Site or a Page
items:
type: object
required:
- id
- version
- location
properties:
id:
description: ID of the registered custom code script
type: string
format: objectId
location:
description: 'Location of the script, either in the header or footer of the published site'
type: string
default: header
enum:
- header
- footer
version:
type: string
description: Semantic Version String for the registered script *e.g. 0.0.1*
attributes:
type: object
description: Developer-specified key/value pairs to be applied as attributes to the script
example:
- id: cms_slider
- location: header
- version: 1.0.0
lastUpdated:
type: string
format: date-string
readOnly: true
description: Date when the Site's scripts were last updated
createdOn:
type: string
format: date-string
readOnly: true
description: Date when the Site's scripts were created
example:
scripts:
- id: cms_slider
location: header
version: 1.0.0
attributes:
my-attribute: some-value
- id: alert
location: header
version: 0.0.1
responses:
'200':
description: Request was successful
content:
application/json:
schema:
type: object
properties:
scripts:
type: array
description: A list of scripts applied to a Site or a Page
items:
type: object
required:
- id
- version
- location
properties:
id:
description: ID of the registered custom code script
type: string
format: objectId
location:
description: 'Location of the script, either in the header or footer of the published site'
type: string
default: header
enum:
- header
- footer
version:
type: string
description: Semantic Version String for the registered script *e.g. 0.0.1*
attributes:
type: object
description: Developer-specified key/value pairs to be applied as attributes to the script
example:
- id: cms_slider
- location: header
- version: 1.0.0
lastUpdated:
type: string
format: date-string
readOnly: true
description: Date when the Site's scripts were last updated
createdOn:
type: string
format: date-string
readOnly: true
description: Date when the Site's scripts were created
example:
scripts:
- id: cms_slider
location: header
version: 1.0.0
attributes:
my-attribute: some-value
- id: alert
location: header
version: 0.0.1
example:
scripts:
- id: cms_slider
location: header
version: 1.0.0
attributes:
my-attribute: some-value
- id: alert
location: header
version: 0.0.1
attributes: {}
lastUpdated: '2022-10-26T00:28:54.191Z'
createdOn: '2022-10-26T00:28:54.191Z'
'400':
description: Request body was incorrectly formatted. Likely invalid JSON being sent up.
'401':
description: Provided access token is invalid or does not have access to requested resource
'404':
description: Requested resource not found
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
'/sites/{site_id}/custom_code':
get:
x-fern-sdk-group-name:
- sites
- scripts
x-fern-sdk-method-name: get-custom-code
security:
- OAuth2:
- 'custom_code:read'
operationId: get-site-custom-code
summary: Get Custom Code
description: |
Get all registered scripts that have been applied to a specific Site. Access to this endpoint requires a bearer token from a Data Client App. Required scope | `custom_code:read`
tags:
- Custom Code - Sites
- Custom Code
- Sites
parameters:
- name: site_id
in: path
description: Unique identifier for a Site
example: 580e63e98c9a982ac9b8b741
required: true
schema:
type: string
format: objectid
default: null
responses:
'200':
description: Request was successful
content:
application/json:
schema:
type: object
properties:
scripts:
type: array
description: A list of scripts applied to a Site or a Page
items:
type: object
required:
- id
- version
- location
properties:
id:
description: ID of the registered custom code script
type: string
format: objectId
location:
description: 'Location of the script, either in the header or footer of the published site'
type: string
default: header
enum:
- header
- footer
version:
type: string
description: Semantic Version String for the registered script *e.g. 0.0.1*
attributes:
type: object
description: Developer-specified key/value pairs to be applied as attributes to the script
example:
- id: cms_slider
- location: header
- version: 1.0.0
lastUpdated:
type: string
format: date-string
readOnly: true
description: Date when the Site's scripts were last updated
createdOn:
type: string
format: date-string
readOnly: true
description: Date when the Site's scripts were created
example:
scripts:
- id: cms_slider
location: header
version: 1.0.0
attributes:
my-attribute: some-value
- id: alert
location: header
version: 0.0.1
example:
scripts:
- id: cms_slider
location: header
version: 1.0.0
attributes:
my-attribute: some-value
- id: alert
location: header
version: 0.0.1
attributes: {}
lastUpdated: '2022-10-26T00:28:54.191Z'
createdOn: '2022-10-26T00:28:54.191Z'
'400':
description: Request body was incorrectly formatted. Likely invalid JSON being sent up.
'401':
description: Provided access token is invalid or does not have access to requested resource
'404':
description: Requested resource not found
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
delete:
x-fern-sdk-group-name:
- sites
- scripts
x-fern-sdk-method-name: delete-custom-code
security:
- OAuth2:
- 'custom_code:write'
operationId: delete-site-custom-code
summary: Delete Custom Code
description: |
Delete the custom code block that an app created for a Site Access to this endpoint requires a bearer token from a Data Client App. Required scope | `custom_code:write`
tags:
- Custom Code - Sites
- Custom Code
- Sites
parameters:
- name: site_id
in: path
description: Unique identifier for a Site
example: 580e63e98c9a982ac9b8b741
required: true
schema:
type: string
format: objectid
default: null
responses:
'204':
description: Request was successful. No Content is returned.
'400':
description: Request body was incorrectly formatted. Likely invalid JSON being sent up.
'401':
description: Provided access token is invalid or does not have access to requested resource
'404':
description: Requested resource not found
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
put:
x-fern-sdk-group-name:
- sites
- scripts
x-fern-sdk-method-name: upsert-custom-code
security:
- OAuth2:
- 'custom_code:write'
operationId: add-custom-code-tosite
summary: Add/Update Custom Code
description: |
Add a registered script to a Site. In order to use the Custom Code APIs for Sites and Pages, Custom Code Scripts must first be registered to a Site via the `registered_scripts` endpoints, and then applied to a Site or Page using the appropriate `custom_code` endpoints. Access to this endpoint requires a bearer token from a Data Client App. Required scope | `custom_code:write`
tags:
- Custom Code - Sites
- Custom Code
- Sites
parameters:
- name: site_id
in: path
description: Unique identifier for a Site
example: 580e63e98c9a982ac9b8b741
required: true
schema:
type: string
format: objectid
default: null
requestBody:
content:
application/json:
schema:
type: object
properties:
scripts:
type: array
description: A list of scripts applied to a Site or a Page
items:
type: object
required:
- id
- version
- location
properties:
id:
description: ID of the registered custom code script
type: string
format: objectId
location:
description: 'Location of the script, either in the header or footer of the published site'
type: string
default: header
enum:
- header
- footer
version:
type: string
description: Semantic Version String for the registered script *e.g. 0.0.1*
attributes:
type: object
description: Developer-specified key/value pairs to be applied as attributes to the script
example:
- id: cms_slider
- location: header
- version: 1.0.0
lastUpdated:
type: string
format: date-string
readOnly: true
description: Date when the Site's scripts were last updated
createdOn:
type: string
format: date-string
readOnly: true
description: Date when the Site's scripts were created
example:
scripts:
- id: cms_slider
location: header
version: 1.0.0
attributes:
my-attribute: some-value
- id: alert
location: header
version: 0.0.1
responses:
'200':
description: Request was successful
content:
application/json:
schema:
type: object
properties:
scripts:
type: array
description: A list of scripts applied to a Site or a Page
items:
type: object
required:
- id
- version
- location
properties:
id:
description: ID of the registered custom code script
type: string
format: objectId
location:
description: 'Location of the script, either in the header or footer of the published site'
type: string
default: header
enum:
- header
- footer
version:
type: string
description: Semantic Version String for the registered script *e.g. 0.0.1*
attributes:
type: object
description: Developer-specified key/value pairs to be applied as attributes to the script
example:
- id: cms_slider
- location: header
- version: 1.0.0
lastUpdated:
type: string
format: date-string
readOnly: true
description: Date when the Site's scripts were last updated
createdOn:
type: string
format: date-string
readOnly: true
description: Date when the Site's scripts were created
example:
scripts:
- id: cms_slider
location: header
version: 1.0.0
attributes:
my-attribute: some-value
- id: alert
location: header
version: 0.0.1
example:
scripts:
- id: cms_slider
location: header
version: 1.0.0
attributes:
my-attribute: some-value
- id: alert
location: header
version: 0.0.1
'400':
description: Request body was incorrectly formatted. Likely invalid JSON being sent up.
'401':
description: Provided access token is invalid or does not have access to requested resource
'404':
description: Requested resource not found
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
'/sites/{site_id}/registered_scripts':
get:
x-fern-sdk-group-name: scripts
x-fern-sdk-method-name: list
security:
- OAuth2:
- 'custom_code:read'
operationId: get-scripts
summary: Get Registered Scripts
description: |
List of scripts registered to a Site. In order to use the Custom Code APIs for Sites and Pages, Custom Code Scripts must first be registered to a Site via the `registered_scripts` endpoints, and then applied to a Site or Page using the appropriate `custom_code` endpoints. Additionally, Scripts can be remotely hosted, or registered as inline snippets. Access to this endpoint requires a bearer token from a Data Client App. Required scope | `custom_code:read`
tags:
- Custom Code
- Registered Scripts
parameters:
- name: site_id
in: path
description: Unique identifier for a Site
example: 580e63e98c9a982ac9b8b741
required: true
schema:
type: string
format: objectid
default: null
responses:
'200':
description: Request was successful
content:
application/json:
schema:
type: object
description: A list of scripts registered to the site
properties:
registeredScripts:
type: array
items:
description: Registered custom code for application
properties:
id:
type: string
readOnly: true
description: 'Human readable id, derived from the user-specified display name'
canCopy:
type: boolean
description: Define whether the script can be copied on site duplication and transfer
default: false
displayName:
type: string
description: User-facing name for the script. Must be between 1 and 50 alphanumeric characters
hostedLocation:
type: string
description: URI for an externally hosted script location
integrityHash:
type: string
description: Sub-Resource Integrity Hash. Only required for externally hosted scripts (passed via hostedLocation)
format: hash
createdOn:
type: string
format: date-string
readOnly: true
description: Timestamp when the script version was created
lastUpdated:
type: string
format: date-string
readOnly: true
description: Timestamp when the script version was last updated
version:
type: string
description: 'A Semantic Version (SemVer) string, denoting the version of the script'
example:
id: cms_slider
displayName: CMS Slider
hostedLocation: 'https://cdn.jsdelivr.net/.../cmsslider.js'
integrityHash: sha384-J+YlJ8v0gpaRoKH7SbFbEmxOZlAxLiwNjfSsBhDooGa5roXlPPpXbEevck4J7YZ+
canCopy: true
version: 1.0.0
createdOn: '2022-10-26T00:28:54.191Z'
example:
registeredScripts:
- id: alert
version: 0.0.1
displayName: Alert
hostedLocation: 'https://cdn.webflow.io/.../alert-0.0.1.js'
integrityHash: null
createdOn: '2022-10-26T00:28:54.191Z'
canCopy: false
- id: alert
version: 0.0.2
displayName: Alert
hostedLocation: 'https://cdn.webflow.io/.../alert-0.0.2.js'
integrityHash: null
createdOn: '2022-10-26T00:28:54.191Z'
canCopy: false
- id: cms_slider
version: 1.0.0
displayName: CMS Slider
hostedLocation: 'https://cdn.jsdelivr.net/.../cms_slider.js'
integrityHash: sha384-J+YlJ8v0gpaRoKH7SbFbEmxOZlAxLiwNjfSsBhDooGa5roXlPPpXbEevck4J7YZ+
createdOn: '2022-10-26T00:28:54.191Z'
canCopy: true
'400':
description: Request body was incorrectly formatted. Likely invalid JSON being sent up.
'401':
description: Provided access token is invalid or does not have access to requested resource
'404':
description: Requested resource not found
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
'/sites/{site_id}/registered_scripts/hosted':
post:
x-fern-sdk-group-name: scripts
x-fern-sdk-method-name: register-hosted
security:
- OAuth2:
- 'custom_code:write'
operationId: post-hosted-script
summary: Register Script - Hosted
description: |
Add a script to a Site's Custom Code registry. In order to use the Custom Code APIs for Sites and Pages, Custom Code Scripts must first be registered to a Site via the `registered_scripts` endpoints, and then applied to a Site or Page using the appropriate `custom_code` endpoints. Additionally, Scripts can be remotely hosted, or registered as inline snippets. Access to this endpoint requires a bearer token from a Data Client App. Required scope | `custom_code:write`
tags:
- Custom Code
- Registered Scripts
parameters:
- name: site_id
in: path
description: Unique identifier for a Site
example: 580e63e98c9a982ac9b8b741
required: true
schema:
type: string
format: objectid
default: null
requestBody:
content:
application/json:
schema:
description: A registered external script
required:
- displayName
- version
- hostedLocation
- integrityHash
properties:
hostedLocation:
type: string
description: URI for an externally hosted script location
integrityHash:
type: string
description: Sub-Resource Integrity Hash
format: hash
canCopy:
type: boolean
description: Define whether the script can be copied on site duplication and transfer
default: false
version:
type: string
description: 'A Semantic Version (SemVer) string, denoting the version of the script'
displayName:
type: string
description: User-facing name for the script. Must be between 1 and 50 alphanumeric characters
examples:
- displayName: CMS Slider
hostedLocation: 'https://cdn.jsdelivr.net/.../cmsslider.js'
integrityHash: sha384-J+YlJ8v0gpaRoKH7SbFbEmxOZlAxLiwNjfSsBhDooGa5roXlPPpXbEevck4J7YZ+
canCopy: true
version: 1.0.0
responses:
'201':
description: Request was successful
content:
application/json:
schema:
description: Registered custom code for application
properties:
id:
type: string
readOnly: true
description: 'Human readable id, derived from the user-specified display name'
canCopy:
type: boolean
description: Define whether the script can be copied on site duplication and transfer
default: false
displayName:
type: string
description: User-facing name for the script. Must be between 1 and 50 alphanumeric characters
hostedLocation:
type: string
description: URI for an externally hosted script location
integrityHash:
type: string
description: Sub-Resource Integrity Hash. Only required for externally hosted scripts (passed via hostedLocation)
format: hash
createdOn:
type: string
format: date-string
readOnly: true
description: Timestamp when the script version was created
lastUpdated:
type: string
format: date-string
readOnly: true
description: Timestamp when the script version was last updated
version:
type: string
description: 'A Semantic Version (SemVer) string, denoting the version of the script'
example:
id: cms_slider
displayName: CMS Slider
hostedLocation: 'https://cdn.jsdelivr.net/.../cmsslider.js'
integrityHash: sha384-J+YlJ8v0gpaRoKH7SbFbEmxOZlAxLiwNjfSsBhDooGa5roXlPPpXbEevck4J7YZ+
canCopy: true
version: 1.0.0
createdOn: '2022-10-26T00:28:54.191Z'
'400':
description: Request body was incorrectly formatted. Likely invalid JSON being sent up.
'401':
description: Provided access token is invalid or does not have access to requested resource
'404':
description: Requested resource not found
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
'/sites/{site_id}/registered_scripts/inline':
post:
x-fern-sdk-group-name: scripts
x-fern-sdk-method-name: register-inline
security:
- OAuth2:
- 'custom_code:write'
operationId: post-inline-scripts
summary: Register Script - Inline
description: |
Add a script to a Site's Custom Code registry. Inline scripts can be between 1 and 2000 characters. In order to use the Custom Code APIs for Sites and Pages, Custom Code Scripts must first be registered to a Site via the `registered_scripts` endpoints, and then applied to a Site or Page using the appropriate `custom_code` endpoints. Access to this endpoint requires a bearer token from a Data Client App. Required scope | `custom_code:write`
tags:
- Custom Code
- Registered Scripts
parameters:
- name: site_id
in: path
description: Unique identifier for a Site
example: 580e63e98c9a982ac9b8b741
required: true
schema:
type: string
format: objectid
default: null
requestBody:
content:
application/json:
schema:
description: A registered inline (Webflow-hosted) script
required:
- displayName
- version
- sourceCode
properties:
sourceCode:
type: string
description: The code to be added to the site (to be hosted by Webflow).
example: alert('hello world');
integrityHash:
type: string
description: Sub-Resource Integrity Hash. Only required for externally hosted scripts (passed via hostedLocation)
format: hash
canCopy:
type: boolean
description: Define whether the script can be copied on site duplication and transfer
default: false
version:
type: string
description: 'A Semantic Version (SemVer) string, denoting the version of the script'
displayName:
type: string
description: User-facing name for the script. Must be between 1 and 50 alphanumeric characters
example:
displayName: Alert
sourceCode: alert('hello world');
integrityHash: null
version: 0.0.1
responses:
'201':
description: Created
content:
application/json:
schema:
description: Registered custom code for application
properties:
id:
type: string
readOnly: true
description: 'Human readable id, derived from the user-specified display name'
canCopy:
type: boolean
description: Define whether the script can be copied on site duplication and transfer
default: false
displayName:
type: string
description: User-facing name for the script. Must be between 1 and 50 alphanumeric characters
hostedLocation:
type: string
description: URI for an externally hosted script location
integrityHash:
type: string
description: Sub-Resource Integrity Hash. Only required for externally hosted scripts (passed via hostedLocation)
format: hash
createdOn:
type: string
format: date-string
readOnly: true
description: Timestamp when the script version was created
lastUpdated:
type: string
format: date-string
readOnly: true
description: Timestamp when the script version was last updated
version:
type: string
description: 'A Semantic Version (SemVer) string, denoting the version of the script'
example:
id: alert
displayName: Alert
hostedLocation: 'https://uploads-ssl.webflow.com/6258612d1ee792848f805dcf%2F64b6c769ff52ba6c3d904a91%2F660d6e15b3d1696f2d2b1447%2Falert-0.0.1.js'
integrityHash: null
canCopy: false
version: 0.0.1
createdOn: '2022-10-26T00:28:54.191Z'
'400':
description: Request body was incorrectly formatted. Likely invalid JSON being sent up.
'401':
description: Provided access token is invalid or does not have access to requested resource
'404':
description: Requested resource not found
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
'/sites/{site_id}/custom_code/blocks':
get:
x-fern-sdk-group-name:
- sites
- scripts
x-fern-sdk-method-name: list-custom-code-blocks
security:
- OAuth2:
- 'custom_code:read'
operationId: get-site-custom-code-blocks
summary: List Custom Code Blocks
description: |
Get all instances of Custom Code applied to a Site or Pages. Access to this endpoint requires a bearer token from a Data Client App. Required scope | `custom_code:read`
tags:
- Custom Code
parameters:
- name: site_id
in: path
description: Unique identifier for a Site
example: 580e63e98c9a982ac9b8b741
required: true
schema:
type: string
format: objectid
default: null
- in: query
example: 0
allowEmptyValue: true
name: offset
description: Offset used for pagination if the results have more than limit records
required: false
schema:
type: number
- in: query
allowEmptyValue: true
name: limit
example: 100
description: 'Maximum number of records to be returned (max limit: 100)'
required: false
schema:
type: number
responses:
'200':
description: Request was successful
content:
application/json:
schema:
description: Custom Code Blocks corresponding to where scripts were applied
properties:
blocks:
type: array
items:
description: A specific instance of Custom Code applied to a Site or Page
properties:
siteId:
type: string
description: The Site id where the custom code was applied
pageId:
type: string
nullable: true
description: The Page id (if applied at Page-level)
type:
type: string
nullable: true
enum:
- page
- site
description: Whether the Custom Code script is applied at the Site-level or Page-level
scripts:
type: array
description: A list of scripts applied to a Site or a Page
items:
type: object
required:
- id
- version
- location
properties:
id:
description: ID of the registered custom code script
type: string
format: objectId
location:
description: 'Location of the script, either in the header or footer of the published site'
type: string
default: header
enum:
- header
- footer
version:
type: string
description: Semantic Version String for the registered script *e.g. 0.0.1*
attributes:
type: object
description: Developer-specified key/value pairs to be applied as attributes to the script
example:
- id: cms_slider
- location: header
- version: 1.0.0
createdOn:
type: string
format: date-time
readOnly: true
description: The date the Block was created
example: '2016-10-24T19:42:38.929Z'
lastUpdated:
type: string
format: date-time
readOnly: true
description: The date the Block was most recently updated
example: '2016-10-24T19:42:38.929Z'
pagination:
description: Pagination object
type: object
properties:
limit:
type: number
description: The limit used for pagination
example: 100
offset:
type: number
description: The offset used for pagination
example: 0
total:
type: number
description: The total number of records
example: 100
example:
blocks:
- siteId: 6258612d1ee792848f805dcf
pageId: null
type: site
scripts:
- id: chartjs
displayName: ChartJS
version: 4.4.2
location: header
attributes: {}
lastUpdated: '2024-04-03T16:49:15.461Z'
createdOn: '2024-04-03T16:49:15.461Z'
- siteId: 6390c49674a71f84b51a08d8
pageId: 6419db964a9c43f6a3af6348
type: page
scripts:
- id: cms_slider
location: header
version: 1.0.0
attributes:
my-attribute: some-value
- id: alert
location: header
version: 0.0.1
attributes: {}
lastUpdated: '2022-10-26T00:28:54.191Z'
createdOn: '2022-10-26T00:28:54.191Z'
pagination:
total: 1
offset: 0
limit: 10
'400':
description: Request body was incorrectly formatted. Likely invalid JSON being sent up.
'401':
description: Provided access token is invalid or does not have access to requested resource
'404':
description: Requested resource not found
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
'/sites/{site_id}/assets':
get:
x-fern-sdk-group-name: assets
x-fern-sdk-method-name: list
security:
- OAuth2:
- 'assets:read'
operationId: list-assets
summary: List Assets
description: 'List assets for a given site Required scope | `assets:read`'
tags:
- Assets
parameters:
- name: site_id
in: path
description: Unique identifier for a Site
example: 580e63e98c9a982ac9b8b741
required: true
schema:
type: string
format: objectid
default: null
- name: locale
in: query
allowEmptyValue: true
example: 65427cf400e02b306eaa04a0
description: 'Unique identifier for a specific locale. Applicable, when using localization.'
schema:
type: string
responses:
'200':
description: Request was successful
content:
application/json:
schema:
description: A list of assets
type: array
example:
assets:
- id: 63e5889e7fe4eafa7384cea4
originalFileName: Candy-Wrapper.svg
displayName: 63e5889e7fe4eafa7384cea4_Candy-Wrapper.png
contentType: image/png
size: 2212772
siteId: 63938b302ea6b0aa6f3d8745
createdOn: '2023-02-09T23:58:22.294Z'
lastUpdated: '2023-03-01T23:42:57.862Z'
hostedUrl: 'https://s3.amazonaws.com/webflow-prod-assets/63938b302ea6b0aa6f3d8745/63e5889e7fe4eafa7384cea4_Vectors-Wrapper.svg'
variants:
- hostedUrl: 'https://s3.amazonaws.com/webflow-prod-assets/6258612d1ee792848f805dcf/660d83ce30f3a599ddb0bdb3_Screenshot%202024-03-20%20at%209.03.24%E2%80%AFPM-p-500.png'
originalFileName: Screenshot%202024-03-20%20at%209.03.24%E2%80%AFPM-p-500.png
displayName: 660d83ce30f3a599ddb0bdb3_Screenshot%202024-03-20%20at%209.03.24%E2%80%AFPM-p-500.png
format: png
width: 500
height: null
quality: 100
error: null
items:
properties:
id:
type: string
format: objectid
example: 55131cd036c09f7d07883dfc
description: Unique identifier for this asset
originalFileName:
type: string
example: image.png
description: Original file name at the time of upload
displayName:
type: string
example: example-image-123.png
description: Display name of the asset
contentType:
type: string
example: image/png
format: mime-type
description: File format type
size:
type: integer
description: size in bytes
example: 1500
siteId:
type: string
format: objectid
example: 62749158efef318abc8d5a0f
description: Unique identifier for the site that hosts this asset
createdOn:
type: string
format: date-time
example: '2016-09-02T23:26:22.241Z'
description: Date the asset metadata was created
lastUpdated:
type: string
format: date-time
example: '2016-09-06T21:12:22.148Z'
description: Date the asset metadata was last updated
hostedUrl:
type: string
format: uri
example: example.com/hostedimage.png
description: Link to the asset
variants:
type: array
items:
properties:
hostedUrl:
type: string
format: uri
example: example.com/hostedimage.png
description: URL of where the asset variant is hosted
originalFileName:
type: string
example: image.png
description: Original file name of the variant
displayName:
type: string
example: A brown dog
description: Display name of the variant
format:
type: string
description: format of the variant
width:
type: integer
description: Width in pixels
example: 1500
height:
type: integer
description: Height in pixels
example: 900
quality:
type: integer
description: Value between 0 and 100 representing the image quality
error:
type: string
description: Any associated validation errors
'400':
description: Request body was incorrectly formatted. Likely invalid JSON being sent up.
'401':
description: Provided access token is invalid or does not have access to requested resource
'404':
description: Requested resource not found
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
post:
x-fern-sdk-group-name: assets
x-fern-sdk-method-name: create
security:
- OAuth2:
- 'assets:write'
operationId: create-asset
summary: Create Asset Metadata
description: |
Create a new asset entry. This endpoint generates a response with the following information: `uploadUrl` and `uploadDetails`. You can use these two properties to [upload the file to Amazon s3 by making a POST](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html) request to the `uploadUrl` with the `uploadDetails` object as your header information in the request. Required scope | `assets:write`
tags:
- Assets
parameters:
- name: site_id
in: path
description: Unique identifier for a Site
example: 580e63e98c9a982ac9b8b741
required: true
schema:
type: string
format: objectid
default: null
requestBody:
description: Information about the asset to create
required: true
content:
application/json:
schema:
description: The request to create a webhook
required:
- fileName
- fileHash
properties:
fileName:
type: string
example: file.png
description: file name including file extension
fileHash:
type: string
example: 3c7d87c9575702bc3b1e991f4d3c638e
description: MD5 hash of the file
parentFolder:
type: string
example: 6436b1ce5281cace05b65aea
description: id of the Asset folder (optional)
responses:
'200':
description: Request was successful
content:
application/json:
schema:
properties:
uploadDetails:
type: object
description: Metadata for uploading the asset binary
properties:
acl:
type: string
example: public-read
bucket:
type: string
example: webflow-bucket-name
X-Amz-Algorithm:
type: string
example: AWS4-HMAC-SHA256
X-Amz-Credential:
type: string
example: ///s3/aws4_request
X-Amz-Date:
type: string
example:
key:
type: string
example: /_
Policy:
type: string
example:
X-Amz-Signature:
type: string
example:
success_action_status:
type: string
example: '201'
content-type:
type: string
format: mime-type
example: image/png
Cache-Control:
type: string
example: 'max-age=31536000, must-revalidate'
contentType:
type: string
example: image/png
id:
type: string
format: objectid
example: 55131cd036c09f7d07883dfc
parentFolder:
type: string
format: objectid
default: null
example: 6436b1ce5281cace05b65aea
description: Parent folder for the asset
uploadUrl:
type: string
format: uri
example: example.com/assets/image.png
assetUrl:
type: string
format: uri
example: example.com/assets/image.png
description: S3 link to the asset
hostedUrl:
type: string
format: uri
description: Represents the link to the asset
example: example.com/hostedimage.png
originalFileName:
type: string
example: image.png
description: 'Original file name when uploaded. If not specified at time of upload, it may be extracted from the raw file name'
createdOn:
type: string
format: date-time
example: '2016-09-02T23:26:22.241Z'
description: Date the asset metadata was created
lastUpdated:
type: string
format: date-time
example: '2016-09-06T21:12:22.148Z'
description: Date the asset metadata was last updated
example:
uploadDetails:
acl: public-read
bucket: webflow-bucket-name
X-Amz-Algorithm: AWS4-HMAC-SHA256
X-Amz-Credential: ///s3/aws4_request
X-Amz-Date:
key: /_
Policy:
X-Amz-Signature:
success_action_status: '201'
content-type: image/png
Cache-Control: 'max-age=31536000, must-revalidate'
contentType: image/png
id: 64358b9544249dc43d37d2b7
parentFolder: 6436b1ce5281cace05b65aea
uploadUrl: 'https://s3.amazonaws.com/webflow-dev-assets/643021114e290e0d3a0602b2/64358b9544249dc43d37d2b7_Screenshot%202023-04-11%20at%209.50.42%20AM.png'
assetUrl: 'https://s3.amazonaws.com/webflow-prod-assets/6258612d1ee792848f805dcf/660d907ab9e91e3e9f56385e_paranoidAndroid-2024.png'
hostedUrl: 'https://d1otoma47x30pg.cloudfront.net/643021114e290e0d3a0602b2/64358b9544249dc43d37d2b7_Screenshot%202023-04-11%20at%209.50.42%20AM.png'
originalFileName: file.png
createdOn: '2023-04-11T16:32:21.804Z'
lastUpdated: '2023-04-12T20:31:03.197Z'
'400':
description: Request body was incorrectly formatted. Likely invalid JSON being sent up.
'401':
description: Provided access token is invalid or does not have access to requested resource
'404':
description: Requested resource not found
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
'/assets/{asset_id}':
get:
x-fern-sdk-group-name: assets
x-fern-sdk-method-name: get
security:
- OAuth2:
- 'assets:read'
operationId: get-asset
summary: Get Asset
description: 'Get an Asset Required scope | `assets:read`'
tags:
- Assets
parameters:
- name: asset_id
in: path
description: Unique identifier for an Asset on a site
example: 580e63fc8c9a982ac9b8b745
required: true
schema:
type: string
format: objectid
- name: locale
in: query
allowEmptyValue: true
example: 65427cf400e02b306eaa04a0
description: 'Unique identifier for a specific locale. Applicable, when using localization.'
schema:
type: string
responses:
'200':
description: Request was successful
content:
application/json:
schema:
properties:
id:
type: string
format: objectid
example: 55131cd036c09f7d07883dfc
description: Unique identifier for this asset
originalFileName:
type: string
example: image.png
description: Original file name at the time of upload
displayName:
type: string
example: example-image-123.png
description: Display name of the asset
contentType:
type: string
example: image/png
format: mime-type
description: File format type
size:
type: integer
description: size in bytes
example: 1500
siteId:
type: string
format: objectid
example: 62749158efef318abc8d5a0f
description: Unique identifier for the site that hosts this asset
createdOn:
type: string
format: date-time
example: '2016-09-02T23:26:22.241Z'
description: Date the asset metadata was created
lastUpdated:
type: string
format: date-time
example: '2016-09-06T21:12:22.148Z'
description: Date the asset metadata was last updated
hostedUrl:
type: string
format: uri
example: example.com/hostedimage.png
description: Link to the asset
variants:
type: array
items:
properties:
hostedUrl:
type: string
format: uri
example: example.com/hostedimage.png
description: URL of where the asset variant is hosted
originalFileName:
type: string
example: image.png
description: Original file name of the variant
displayName:
type: string
example: A brown dog
description: Display name of the variant
format:
type: string
description: format of the variant
width:
type: integer
description: Width in pixels
example: 1500
height:
type: integer
description: Height in pixels
example: 900
quality:
type: integer
description: Value between 0 and 100 representing the image quality
error:
type: string
description: Any associated validation errors
'400':
description: Request body was incorrectly formatted. Likely invalid JSON being sent up.
'401':
description: Provided access token is invalid or does not have access to requested resource
'404':
description: Requested resource not found
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
patch:
x-fern-sdk-group-name: assets
x-fern-sdk-method-name: update
security:
- OAuth2:
- 'assets:write'
operationId: patch-asset
summary: Update Asset
description: 'Update an Asset Required scope | `assets:write`'
tags:
- Assets
parameters:
- name: asset_id
in: path
description: Unique identifier for an Asset on a site
example: 580e63fc8c9a982ac9b8b745
required: true
schema:
type: string
format: objectid
- name: locale
in: query
allowEmptyValue: true
example: 65427cf400e02b306eaa04a0
description: 'Unique identifier for a specific locale. Applicable, when using localization.'
schema:
type: string
requestBody:
description: Information about the asset to update
required: true
content:
application/json:
schema:
description: The request to update an asset
required:
- displayName
properties:
displayName:
type: string
example: bulldoze.png
description: file name including file extension
altText:
type: string
example: Arthur Dent's House Before Bulldozed for a Bypass
description: Alternate text describing the file
responses:
'200':
description: Request was successful
content:
application/json:
schema:
properties:
id:
type: string
format: objectid
example: 55131cd036c09f7d07883dfc
description: Unique identifier for this asset
originalFileName:
type: string
example: image.png
description: Original file name at the time of upload
displayName:
type: string
example: example-image-123.png
description: Display name of the asset
contentType:
type: string
example: image/png
format: mime-type
description: File format type
size:
type: integer
description: size in bytes
example: 1500
siteId:
type: string
format: objectid
example: 62749158efef318abc8d5a0f
description: Unique identifier for the site that hosts this asset
createdOn:
type: string
format: date-time
example: '2016-09-02T23:26:22.241Z'
description: Date the asset metadata was created
lastUpdated:
type: string
format: date-time
example: '2016-09-06T21:12:22.148Z'
description: Date the asset metadata was last updated
hostedUrl:
type: string
format: uri
example: example.com/hostedimage.png
description: Link to the asset
variants:
type: array
items:
properties:
hostedUrl:
type: string
format: uri
example: example.com/hostedimage.png
description: URL of where the asset variant is hosted
originalFileName:
type: string
example: image.png
description: Original file name of the variant
displayName:
type: string
example: A brown dog
description: Display name of the variant
format:
type: string
description: format of the variant
width:
type: integer
description: Width in pixels
example: 1500
height:
type: integer
description: Height in pixels
example: 900
quality:
type: integer
description: Value between 0 and 100 representing the image quality
error:
type: string
description: Any associated validation errors
'400':
description: Request body was incorrectly formatted. Likely invalid JSON being sent up.
'401':
description: Provided access token is invalid or does not have access to requested resource
'404':
description: Requested resource not found
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
delete:
x-fern-sdk-group-name: assets
x-fern-sdk-method-name: delete
security:
- OAuth2:
- 'assets:write'
operationId: delete-asset
summary: Delete Asset
description: Delete an Asset
tags:
- Assets
parameters:
- name: asset_id
in: path
description: Unique identifier for an Asset on a site
example: 580e63fc8c9a982ac9b8b745
required: true
schema:
type: string
format: objectid
responses:
'204':
description: Request was successful. No Content is returned.
'400':
description: Request body was incorrectly formatted. Likely invalid JSON being sent up.
'401':
description: Provided access token is invalid or does not have access to requested resource
'404':
description: Requested resource not found
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
'/sites/{site_id}/asset_folders':
get:
x-fern-sdk-group-name: assets
x-fern-sdk-method-name: list-folders
security:
- OAuth2:
- 'assets:read'
operationId: list-asset-folders
summary: List Asset Folders
description: 'List Asset Folders within a given site
Required scope | `assets:read`'
tags:
- Asset Folders
parameters:
- name: site_id
in: path
description: Unique identifier for a Site
example: 580e63e98c9a982ac9b8b741
required: true
schema:
type: string
format: objectid
default: null
responses:
'200':
description: Request was successful
content:
application/json:
schema:
description: The Asset Folders object
type: object
example:
assetFolders:
- id: 6390c49774a71f0e3c1a08ee
displayName: emoji icons
parentFolder: null
assets:
- 63e5889e7fe4eafa7384cea4
- 659595234426a9fcbad57043
siteId: 6390c49674a71f84b51a08d8
createdOn: 2018-10-14T21:55:49.063Z
lastUpdated: 2022-12-07T16:51:37.571Z
pagination:
total: 1
offset: 0
limit: 1
properties:
assetFolders:
type: array
description: A list of Asset folders
items:
description: Asset Folder details
example:
id: 6390c49774a71f0e3c1a08ee
displayName: emoji icons
parentFolder: 6390c49774a71f99f21a08eb
assets:
- 63e5889e7fe4eafa7384cea4
- 659595234426a9fcbad57043
siteId: 6390c49674a71f84b51a08d8
createdOn: 2018-10-14T21:55:49.063Z
lastUpdated: 2022-12-07T16:51:37.571Z
properties:
id:
type: string
format: objectid
description: Unique identifier for the Asset Folder
example: 55131cd036c09f7d07883dfc
displayName:
type: string
description: User visible name for the Asset Folder
parentFolder:
type: string
default: null
description: Pointer to parent Asset Folder (or null if root)
example: 6390c49774a71f99f21a08eb
assets:
type: array
description: Array of Asset instances in the folder
items:
type: string
format: objectid
description: Unique identifier for the Asset
example: 63e5889e7fe4eafa7384cea4
siteId:
type: string
format: objectid
description: The unique id of the site the Asset Folder belongs to
example: 545bbecb7bdd6769632504a7
createdOn:
type: string
format: date-time
description: Date that the Asset Folder was created on
example: '2018-10-04T15:21:02.042Z'
lastUpdated:
type: string
format: date-time
description: Date that the Asset Folder was last updated on
example: '2018-10-04T15:21:02.042Z'
pagination:
description: Pagination object
type: object
properties:
limit:
type: number
description: The limit used for pagination
example: 100
offset:
type: number
description: The offset used for pagination
example: 0
total:
type: number
description: The total number of records
example: 100
'400':
description: Request body was incorrectly formatted. Likely invalid JSON being sent up.
'401':
description: Provided access token is invalid or does not have access to requested resource
'404':
description: Requested resource not found
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
post:
x-fern-sdk-group-name: assets
x-fern-sdk-method-name: create-folder
security:
- OAuth2:
- 'assets:write'
operationId: create-asset-folder
summary: Create Asset Folder
description: 'Create an Asset Folder within a given site
Required scope | `assets:write`'
tags:
- Asset Folders
parameters:
- name: site_id
in: path
description: Unique identifier for a Site
example: 580e63e98c9a982ac9b8b741
required: true
schema:
type: string
format: objectid
default: null
requestBody:
required: true
content:
application/json:
schema:
required:
- displayName
properties:
displayName:
type: string
example: my asset folder
description: A human readable name for the Asset Folder
parentFolder:
type: string
example: 6390c49774a71f99f21a08eb
default: null
description: An (optional) pointer to a parent Asset Folder (or null for root)
responses:
'200':
description: Request was successful
content:
application/json:
schema:
description: Asset Folder details
example:
id: 6390c49774a71f0e3c1a08ee
displayName: emoji icons
parentFolder: 6390c49774a71f99f21a08eb
assets:
- 63e5889e7fe4eafa7384cea4
- 659595234426a9fcbad57043
siteId: 6390c49674a71f84b51a08d8
createdOn: 2018-10-14T21:55:49.063Z
lastUpdated: 2022-12-07T16:51:37.571Z
properties:
id:
type: string
format: objectid
description: Unique identifier for the Asset Folder
example: 55131cd036c09f7d07883dfc
displayName:
type: string
description: User visible name for the Asset Folder
parentFolder:
type: string
default: null
description: Pointer to parent Asset Folder (or null if root)
example: 6390c49774a71f99f21a08eb
assets:
type: array
description: Array of Asset instances in the folder
items:
type: string
format: objectid
description: Unique identifier for the Asset
example: 63e5889e7fe4eafa7384cea4
siteId:
type: string
format: objectid
description: The unique id of the site the Asset Folder belongs to
example: 545bbecb7bdd6769632504a7
createdOn:
type: string
format: date-time
description: Date that the Asset Folder was created on
example: '2018-10-04T15:21:02.042Z'
lastUpdated:
type: string
format: date-time
description: Date that the Asset Folder was last updated on
example: '2018-10-04T15:21:02.042Z'
'400':
description: Request body was incorrectly formatted. Likely invalid JSON being sent up.
'401':
description: Provided access token is invalid or does not have access to requested resource
'404':
description: Requested resource not found
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
'/asset_folders/{asset_folder_id}':
get:
x-fern-sdk-group-name: assets
x-fern-sdk-method-name: get-folder
security:
- OAuth2:
- 'assets:read'
operationId: get-asset-folder
summary: Get Asset Folder
description: 'Get details about a specific Asset Folder
Required scope | `assets:read`'
tags:
- Asset Folders
parameters:
- name: asset_folder_id
in: path
description: Unique identifier for an Asset Folder
example: 6390c49774a71f0e3c1a08ee
required: true
schema:
type: string
format: objectid
responses:
'200':
description: Request was successful
content:
application/json:
schema:
description: Asset Folder details
example:
id: 6390c49774a71f0e3c1a08ee
displayName: emoji icons
parentFolder: 6390c49774a71f99f21a08eb
assets:
- 63e5889e7fe4eafa7384cea4
- 659595234426a9fcbad57043
siteId: 6390c49674a71f84b51a08d8
createdOn: 2018-10-14T21:55:49.063Z
lastUpdated: 2022-12-07T16:51:37.571Z
properties:
id:
type: string
format: objectid
description: Unique identifier for the Asset Folder
example: 55131cd036c09f7d07883dfc
displayName:
type: string
description: User visible name for the Asset Folder
parentFolder:
type: string
default: null
description: Pointer to parent Asset Folder (or null if root)
example: 6390c49774a71f99f21a08eb
assets:
type: array
description: Array of Asset instances in the folder
items:
type: string
format: objectid
description: Unique identifier for the Asset
example: 63e5889e7fe4eafa7384cea4
siteId:
type: string
format: objectid
description: The unique id of the site the Asset Folder belongs to
example: 545bbecb7bdd6769632504a7
createdOn:
type: string
format: date-time
description: Date that the Asset Folder was created on
example: '2018-10-04T15:21:02.042Z'
lastUpdated:
type: string
format: date-time
description: Date that the Asset Folder was last updated on
example: '2018-10-04T15:21:02.042Z'
'400':
description: Request body was incorrectly formatted. Likely invalid JSON being sent up.
'401':
description: Provided access token is invalid or does not have access to requested resource
'404':
description: Requested resource not found
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
'/sites/{site_id}/webhooks':
get:
x-fern-sdk-group-name: webhooks
x-fern-sdk-method-name: list
operationId: list-webhooks
summary: List Webhooks
description: |
List all App-created Webhooks registered for a given site Required scope | `sites:read`
tags:
- Webhooks
parameters:
- name: site_id
in: path
description: Unique identifier for a Site
example: 580e63e98c9a982ac9b8b741
required: true
schema:
type: string
format: objectid
default: null
responses:
'200':
description: Request was successful
content:
application/json:
schema:
example:
webhooks:
- id: 57ca0a9e418c504a6e1acbb6
triggerType: form_submission
siteId: 562ac0395358780a1f5e6fbd
workspaceId: 4f4e46fd476ea8c507000001
filter:
name: Email Form
createdOn: '2016-09-02T23:26:22.241Z'
lastTriggered: '2023-02-08T23:59:28.572Z'
url: 'https://webhook.site/7f7f7f7f-7f7f-7f7f-7f7f-7f7f7f7f7f7f'
- id: 578d85cce0c47cd2865f4cf2
triggerType: form_submission
siteId: 562ac0395358780a1f5e6fbd
workspaceId: 4f4e46fd476ea8c507000001
filter:
name: Email Form
createdOn: '2016-07-19T01:43:40.585Z'
lastTriggered: '2023-02-08T23:59:28.572Z'
url: 'https://webhook.site/7f7f7f7f-7f7f-7f7f-7f7f-7f7f7f7f7f7f'
- id: 578d85cce0c47cd2865f4cf3
triggerType: form_submission
siteId: 562ac0395358780a1f5e6fbd
workspaceId: 4f4e46fd476ea8c507000001
filter:
name: Email Form
createdOn: '2016-07-19T01:43:40.605Z'
lastTriggered: '2023-02-08T23:59:28.572Z'
url: 'https://webhook.site/7f7f7f7f-7f7f-7f7f-7f7f-7f7f7f7f7f7f'
properties:
pagination:
description: Pagination object
type: object
properties:
limit:
type: number
description: The limit used for pagination
example: 100
offset:
type: number
description: The offset used for pagination
example: 0
total:
type: number
description: The total number of records
example: 100
webhooks:
type: array
items:
example:
id: 582266e0cd48de0f0e3c6d8b
triggerType: form_submission
siteId: 562ac0395358780a1f5e6fbd
workspaceId: 4f4e46fd476ea8c507000001
createdOn: '2022-11-08T23:59:28.572Z'
lastTriggered: '2023-02-08T23:59:28.572Z'
filter: null
url: 'https://webhook.site/7f7f7f7f-7f7f-7f7f-7f7f-7f7f7f7f7f7f'
properties:
id:
type: string
format: objectid
example: 57ca0a9e418c504a6e1acbb6
description: Unique identifier for the Webhook registration
workspaceId:
type: string
format: objectid
example: 580e63e98c9a982ac9b8b741
description: Unique identifier for the Workspace the Webhook is registered in
siteId:
type: string
format: objectid
example: 562ac0395358780a1f5e6fbd
description: Unique identifier for the Site the Webhook is registered in
triggerType:
type: string
example: form_submission
description: |
* `form_submission` - Sends the [form_submission](#form_submission) event
* `site_publish` - Sends a [site_publish](#site_publish) event
* `page_created` - Send the [page_created](#page_created) event
* `page_metadata_updated` - Sends the [page_metadata_updated](#page_metadata_updated) event
* `page_deleted` - Sends the [page_deleted](#page_deleted) event
* `ecomm_new_order` - Sends the new [ecomm_new_order](#ecomm_new_order) event
* `ecomm_order_changed` - Sends the [ecomm_order_changed](#ecomm_order_changed) event
* `ecomm_inventory_changed` - Sends the [ecomm_inventory_changed](#ecomm_inventory_changed) event
* `user_account_added` - Sends the [user_account_added](#user_account_added) event
* `user_account_updated` - Sends the [user_account_updated](#user_account_updated) event
* `user_account_deleted` - Sends the [user_account_deleted](#user_account_deleted) event
* `collection_item_created` - Sends the [collection_item_created](#collection_item_created) event
* `collection_item_changed` - Sends the [collection_item_changed](#collection_item_changed) event
* `collection_item_deleted` - Sends the [collection_item_deleted](#collection_item_deleted) event
* `collection_item_unpublished` - Sends the [collection_item_unpublished](#collection_item_unpublished) event
enum:
- form_submission
- site_publish
- page_created
- page_metadata_updated
- page_deleted
- ecomm_new_order
- ecomm_order_changed
- ecomm_inventory_changed
- user_account_added
- user_account_updated
- user_account_deleted
- collection_item_created
- collection_item_changed
- collection_item_deleted
- collection_item_unpublished
filter:
description: Filter for selecting which events you want Webhooks to be sent for. Only supported for form_submission trigger types.
type: object
lastTriggered:
type: string
format: date-time
example: '2016-09-06T21:12:22.148Z'
description: Date the Webhook instance was last triggered
createdOn:
type: string
format: date-time
example: '2016-09-02T23:26:22.241Z'
description: Date the Webhook registration was created
url:
type: string
example: 'https://example.com/webhook'
description: URL to send the Webhook payload to
'400':
description: Request body was incorrectly formatted. Likely invalid JSON being sent up.
'401':
description: Provided access token is invalid or does not have access to requested resource
'404':
description: Requested resource not found
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
post:
x-fern-sdk-group-name: webhooks
x-fern-sdk-method-name: create
operationId: create-webhook
summary: Create Webhook
description: |
Create a new Webhook, to be notified when Webflow resources change. Limit of 75 registrations per `triggerType`, per site. Access to this endpoint requires a bearer token from a Data Client App. The only exceptions are for creating webhooks with `site_publish` or `form_submission` triggers, which can be done with Site Tokens Required scope | `sites:write`
tags:
- Webhooks
parameters:
- name: site_id
in: path
description: Unique identifier for a Site
example: 580e63e98c9a982ac9b8b741
required: true
schema:
type: string
format: objectid
default: null
requestBody:
description: The Webhook registration object
required: true
content:
application/json:
schema:
description: The request to create a Webhook
required:
- triggerType
- url
properties:
triggerType:
type: string
example: form_submission
description: |
* `form_submission` - Sends the [form_submission](#form_submission) event
* `site_publish` - Sends a [site_publish](#site_publish) event
* `page_created` - Send the [page_created](#page_created) event
* `page_metadata_updated` - Sends the [page_metadata_updated](#page_metadata_updated) event
* `page_deleted` - Sends the [page_deleted](#page_deleted) event
* `ecomm_new_order` - Sends the new [ecomm_new_order](#ecomm_new_order) event
* `ecomm_order_changed` - Sends the [ecomm_order_changed](#ecomm_order_changed) event
* `ecomm_inventory_changed` - Sends the [ecomm_inventory_changed](#ecomm_inventory_changed) event
* `user_account_added` - Sends the [user_account_added](#user_account_added) event
* `user_account_updated` - Sends the [user_account_updated](#user_account_updated) event
* `user_account_deleted` - Sends the [user_account_deleted](#user_account_deleted) event
* `collection_item_created` - Sends the [collection_item_created](#collection_item_created) event
* `collection_item_changed` - Sends the [collection_item_changed](#collection_item_changed) event
* `collection_item_deleted` - Sends the [collection_item_deleted](#collection_item_deleted) event
* `collection_item_unpublished` - Sends the [collection_item_unpublished](#collection_item_unpublished) event
enum:
- form_submission
- site_publish
- page_created
- page_metadata_updated
- page_deleted
- ecomm_new_order
- ecomm_order_changed
- ecomm_inventory_changed
- user_account_added
- user_account_updated
- user_account_deleted
- collection_item_created
- collection_item_changed
- collection_item_deleted
- collection_item_unpublished
url:
type: string
format: uri
example: 'https://api.mydomain.com/webhook'
description: |
The server URI that Webflow will call when your Webhook is triggered
filter:
type: object
example:
name: Email Form
description: |
Filter for selecting which events you want Webhooks to be triggered for.
** Only available for `form_submission` trigger types. **
responses:
'201':
description: Request was successful
content:
application/json:
schema:
example:
id: 582266e0cd48de0f0e3c6d8b
triggerType: form_submission
siteId: 562ac0395358780a1f5e6fbd
workspaceId: 4f4e46fd476ea8c507000001
createdOn: '2022-11-08T23:59:28.572Z'
lastTriggered: '2023-02-08T23:59:28.572Z'
filter: null
url: 'https://webhook.site/7f7f7f7f-7f7f-7f7f-7f7f-7f7f7f7f7f7f'
properties:
id:
type: string
format: objectid
example: 57ca0a9e418c504a6e1acbb6
description: Unique identifier for the Webhook registration
workspaceId:
type: string
format: objectid
example: 580e63e98c9a982ac9b8b741
description: Unique identifier for the Workspace the Webhook is registered in
siteId:
type: string
format: objectid
example: 562ac0395358780a1f5e6fbd
description: Unique identifier for the Site the Webhook is registered in
triggerType:
type: string
example: form_submission
description: |
* `form_submission` - Sends the [form_submission](#form_submission) event
* `site_publish` - Sends a [site_publish](#site_publish) event
* `page_created` - Send the [page_created](#page_created) event
* `page_metadata_updated` - Sends the [page_metadata_updated](#page_metadata_updated) event
* `page_deleted` - Sends the [page_deleted](#page_deleted) event
* `ecomm_new_order` - Sends the new [ecomm_new_order](#ecomm_new_order) event
* `ecomm_order_changed` - Sends the [ecomm_order_changed](#ecomm_order_changed) event
* `ecomm_inventory_changed` - Sends the [ecomm_inventory_changed](#ecomm_inventory_changed) event
* `user_account_added` - Sends the [user_account_added](#user_account_added) event
* `user_account_updated` - Sends the [user_account_updated](#user_account_updated) event
* `user_account_deleted` - Sends the [user_account_deleted](#user_account_deleted) event
* `collection_item_created` - Sends the [collection_item_created](#collection_item_created) event
* `collection_item_changed` - Sends the [collection_item_changed](#collection_item_changed) event
* `collection_item_deleted` - Sends the [collection_item_deleted](#collection_item_deleted) event
* `collection_item_unpublished` - Sends the [collection_item_unpublished](#collection_item_unpublished) event
enum:
- form_submission
- site_publish
- page_created
- page_metadata_updated
- page_deleted
- ecomm_new_order
- ecomm_order_changed
- ecomm_inventory_changed
- user_account_added
- user_account_updated
- user_account_deleted
- collection_item_created
- collection_item_changed
- collection_item_deleted
- collection_item_unpublished
filter:
description: Filter for selecting which events you want Webhooks to be sent for. Only supported for form_submission trigger types.
type: object
lastTriggered:
type: string
format: date-time
example: '2016-09-06T21:12:22.148Z'
description: Date the Webhook instance was last triggered
createdOn:
type: string
format: date-time
example: '2016-09-02T23:26:22.241Z'
description: Date the Webhook registration was created
url:
type: string
example: 'https://example.com/webhook'
description: URL to send the Webhook payload to
'400':
description: Request body was incorrectly formatted. Likely invalid JSON being sent up.
'401':
description: Provided access token is invalid or does not have access to requested resource
'404':
description: Requested resource not found
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
'/webhooks/{webhook_id}':
get:
x-fern-sdk-group-name: webhooks
x-fern-sdk-method-name: get
operationId: get-webhook
summary: Get Webhook
description: Get a specific Webhook instance
tags:
- Webhooks
parameters:
- name: webhook_id
in: path
description: Unique identifier for a Webhook
example: 580e64008c9a982ac9b8b754
required: true
schema:
type: string
format: objectid
responses:
'200':
description: Request was successful
content:
application/json:
schema:
example:
id: 582266e0cd48de0f0e3c6d8b
triggerType: form_submission
siteId: 562ac0395358780a1f5e6fbd
workspaceId: 4f4e46fd476ea8c507000001
createdOn: '2022-11-08T23:59:28.572Z'
lastTriggered: '2023-02-08T23:59:28.572Z'
filter: null
url: 'https://webhook.site/7f7f7f7f-7f7f-7f7f-7f7f-7f7f7f7f7f7f'
properties:
id:
type: string
format: objectid
example: 57ca0a9e418c504a6e1acbb6
description: Unique identifier for the Webhook registration
workspaceId:
type: string
format: objectid
example: 580e63e98c9a982ac9b8b741
description: Unique identifier for the Workspace the Webhook is registered in
siteId:
type: string
format: objectid
example: 562ac0395358780a1f5e6fbd
description: Unique identifier for the Site the Webhook is registered in
triggerType:
type: string
example: form_submission
description: |
* `form_submission` - Sends the [form_submission](#form_submission) event
* `site_publish` - Sends a [site_publish](#site_publish) event
* `page_created` - Send the [page_created](#page_created) event
* `page_metadata_updated` - Sends the [page_metadata_updated](#page_metadata_updated) event
* `page_deleted` - Sends the [page_deleted](#page_deleted) event
* `ecomm_new_order` - Sends the new [ecomm_new_order](#ecomm_new_order) event
* `ecomm_order_changed` - Sends the [ecomm_order_changed](#ecomm_order_changed) event
* `ecomm_inventory_changed` - Sends the [ecomm_inventory_changed](#ecomm_inventory_changed) event
* `user_account_added` - Sends the [user_account_added](#user_account_added) event
* `user_account_updated` - Sends the [user_account_updated](#user_account_updated) event
* `user_account_deleted` - Sends the [user_account_deleted](#user_account_deleted) event
* `collection_item_created` - Sends the [collection_item_created](#collection_item_created) event
* `collection_item_changed` - Sends the [collection_item_changed](#collection_item_changed) event
* `collection_item_deleted` - Sends the [collection_item_deleted](#collection_item_deleted) event
* `collection_item_unpublished` - Sends the [collection_item_unpublished](#collection_item_unpublished) event
enum:
- form_submission
- site_publish
- page_created
- page_metadata_updated
- page_deleted
- ecomm_new_order
- ecomm_order_changed
- ecomm_inventory_changed
- user_account_added
- user_account_updated
- user_account_deleted
- collection_item_created
- collection_item_changed
- collection_item_deleted
- collection_item_unpublished
filter:
description: Filter for selecting which events you want Webhooks to be sent for. Only supported for form_submission trigger types.
type: object
lastTriggered:
type: string
format: date-time
example: '2016-09-06T21:12:22.148Z'
description: Date the Webhook instance was last triggered
createdOn:
type: string
format: date-time
example: '2016-09-02T23:26:22.241Z'
description: Date the Webhook registration was created
url:
type: string
example: 'https://example.com/webhook'
description: URL to send the Webhook payload to
'400':
description: Request body was incorrectly formatted. Likely invalid JSON being sent up.
'401':
description: Provided access token is invalid or does not have access to requested resource
'404':
description: Requested resource not found
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
delete:
x-fern-sdk-group-name: webhooks
x-fern-sdk-method-name: delete
operationId: remove-webhook
summary: Remove Webhook
description: Remove a Webhook
tags:
- Webhooks
parameters:
- name: webhook_id
in: path
description: Unique identifier for a Webhook
example: 580e64008c9a982ac9b8b754
required: true
schema:
type: string
format: objectid
responses:
'204':
description: Request was successful. No Content is returned.
'400':
description: Request body was incorrectly formatted. Likely invalid JSON being sent up.
'401':
description: Provided access token is invalid or does not have access to requested resource
'404':
description: Requested resource not found
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
'/sites/{site_id}/forms':
get:
x-fern-sdk-group-name: forms
x-fern-sdk-method-name: list
security:
- OAuth2:
- 'forms:read'
operationId: list-forms
summary: List Forms
description: 'List forms for a given site Required scope | `forms:read`'
tags:
- Forms
parameters:
- name: site_id
in: path
description: Unique identifier for a Site
example: 580e63e98c9a982ac9b8b741
required: true
schema:
type: string
format: objectid
default: null
- in: query
allowEmptyValue: true
name: limit
example: 100
description: 'Maximum number of records to be returned (max limit: 100)'
required: false
schema:
type: number
- in: query
example: 0
allowEmptyValue: true
name: offset
description: Offset used for pagination if the results have more than limit records
required: false
schema:
type: number
responses:
'200':
description: Request was successful
content:
application/json:
schema:
description: A list of forms
example:
forms:
- displayName: Email Form
createdOn: '2016-10-24T19:41:29.156Z'
lastUpdated: '2016-10-24T19:43:17.271Z'
fields:
- 660d5bcc9c0772150459dfb1:
displayName: Name
type: Plain
placeholder: null
userVisible: true
- 589a331aa51e760df7ccb89d:
displayName: Email
type: Email
placeholder: Enter your email
userVisible: true
responseSettings:
redirectUrl: 'https://example.com'
redirectMethod: GET
redirectAction: null
sendEmailConfirmation: true
id: 589a331aa51e760df7ccb89e
siteId: 580e63e98c9a982ac9b8b741
siteDomainId: 6419db964a9c436a4baf6248
pageId: 6419db964a9c43f6a3af6348
pageName: Home
workspaceId: 580e63fc8c9a982ac9b8b744
- displayName: Name Form
createdOn: '2016-10-24T19:41:29.156Z'
lastUpdated: '2016-10-24T19:43:17.271Z'
fields:
- 589a331aa51e760df7ccb89d:
displayName: Name
type: Plain
placeholder: Enter your name
userVisible: true
responseSettings:
redirectUrl: 'https://example.com'
redirectMethod: GET
redirectAction: null
sendEmailConfirmation: false
id: 580ff8d7ba3e45ba9fe588e9
siteId: 580e63e98c9a982ac9b8b741
siteDomainId: 6419db964a9c436a4baf6248
pageId: 6419db964a9c43f6a3af6348
pageName: Home
workspaceId: 580e63fc8c9a982ac9b8b744
pagination:
limit: 25
offset: 0
total: 2
properties:
forms:
type: array
items:
example:
displayName: Email Form
createdOn: '2016-10-24T19:41:29.156Z'
lastUpdated: '2016-10-24T19:43:17.271Z'
fields:
- 660d5bcc9c0772150459dfb1: null
displayName: Name
type: Plain
placeholder: null
userVisible: true
- 589a331aa51e760df7ccb89d:
displayName: Email
type: Email
placeholder: Enter your email
userVisible: true
responseSettings:
redirectUrl: 'https://example.com'
redirectMethod: GET
redirectAction: null
sendEmailConfirmation: true
id: 589a331aa51e760df7ccb89e
siteId: 580e63e98c9a982ac9b8b741
siteDomainId: 6419db964a9c436a4baf6248
pageId: 6419db964a9c43f6a3af6348
pageName: Home
workspaceId: 580e63fc8c9a982ac9b8b744
description: A Webflow form
properties:
displayName:
type: string
description: The Form name displayed on the site
example: Galactic Intake Form
createdOn:
type: string
format: date-time
description: Date that the Form was created on
example: '2018-10-04T15:21:02.042Z'
lastUpdated:
type: string
format: date-time
description: Date that the Form was last updated on
example: '2018-10-04T15:21:02.042Z'
fields:
description: A list of form fields
type: array
items:
type: object
description: A collection of form fields with additional properties.
maxProperties: 1
additionalProperties:
description: An object containing field info for a specific fieldID.
type: object
properties:
displayName:
type: string
description: The field name displayed on the site
example: Email
type:
type: string
description: The field type
enum:
- Plain
- Email
- Password
- Phone
- Number
example: Email
placeholder:
type: string
description: The placeholder text for the field
nullable: true
example: Enter your email
userVisible:
type: boolean
description: Whether the field is visible to the user
example: true
responseSettings:
description: Settings for form responses
type: object
properties:
redirectUrl:
type: string
description: The url or path to redirect the user to after form submission
example: /thank-you
redirectMethod:
type: string
description: The HTTP request method to use for the redirectUrl (eg. POST or GET)
nullable: true
example: GET
redirectAction:
type: string
description: The action to take after form submission
nullable: true
example: 'POST https://example.com'
sendEmailConfirmation:
type: boolean
description: Whether to send an email confirmation to the user
example: true
id:
type: string
format: objectid
description: The unique id for the Form
example: 545bbecb7bdd6769632504a7
siteId:
type: string
format: objectid
description: The unique id of the Site the Form belongs to
example: 545bbecb7bdd6769632504a7
siteDomainId:
type: string
format: objectid
description: The unique id corresponding to the site's Domain name
example: 6419db964a9c436a4baf6247
pageId:
type: string
format: objectid
description: The unique id for the Page on which the Form is placed
example: 6419db964a9c43f6a3af6243
pageName:
type: string
description: The user-visible name of the Page where the Form is placed
example: Home
workspaceId:
type: string
format: objectid
description: The unique id of the Workspace the Site belongs to
example: 580e63fc8c9a982ac9b8b744
pagination:
description: Pagination object
type: object
properties:
limit:
type: number
description: The limit used for pagination
example: 100
offset:
type: number
description: The offset used for pagination
example: 0
total:
type: number
description: The total number of records
example: 100
'400':
description: Request body was incorrectly formatted. Likely invalid JSON being sent up.
'401':
description: Provided access token is invalid or does not have access to requested resource
'403':
description: Provided access token does not have access rights to this content.
'404':
description: Requested resource not found
'409':
description: 'To access this feature, the site needs to be republished.'
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
'/forms/{form_id}':
get:
x-fern-sdk-group-name: forms
x-fern-sdk-method-name: get
security:
- OAuth2:
- 'forms:read'
operationId: get-form-schema
summary: Get Form Schema
description: 'Get information about a given form Required scope | `forms:read`'
tags:
- Forms
parameters:
- name: form_id
in: path
description: Unique identifier for a Form
example: 580e63e98c9a982ac9b8b741
required: true
schema:
type: string
format: objectid
responses:
'200':
description: Request was successful
content:
application/json:
schema:
description: A form and its corresponding metadata
example:
displayName: Email Form
createdOn: '2016-10-24T19:41:29.156Z'
lastUpdated: '2016-10-24T19:43:17.271Z'
fields:
- 660d5bcc9c0772150459dfb1: null
displayName: Name
type: Plain
placeholder: null
userVisible: true
- 589a331aa51e760df7ccb89d:
displayName: Email
type: Email
placeholder: Enter your email
userVisible: true
responseSettings:
redirectUrl: 'https://example.com'
redirectMethod: GET
redirectAction: null
sendEmailConfirmation: true
id: 589a331aa51e760df7ccb89e
siteId: 580e63e98c9a982ac9b8b741
siteDomainId: 6419db964a9c436a4baf6248
pageId: 6419db964a9c43f6a3af6348
pageName: Home
workspaceId: 580e63fc8c9a982ac9b8b744
properties:
displayName:
type: string
description: The Form name displayed on the site
example: Galactic Intake Form
createdOn:
type: string
format: date-time
description: Date that the Form was created on
example: '2018-10-04T15:21:02.042Z'
lastUpdated:
type: string
format: date-time
description: Date that the Form was last updated on
example: '2018-10-04T15:21:02.042Z'
fields:
description: A list of form fields
type: array
items:
type: object
description: A collection of form fields with additional properties.
maxProperties: 1
additionalProperties:
description: An object containing field info for a specific fieldID.
type: object
properties:
displayName:
type: string
description: The field name displayed on the site
example: Email
type:
type: string
description: The field type
enum:
- Plain
- Email
- Password
- Phone
- Number
example: Email
placeholder:
type: string
description: The placeholder text for the field
nullable: true
example: Enter your email
userVisible:
type: boolean
description: Whether the field is visible to the user
example: true
responseSettings:
description: Settings for form responses
type: object
properties:
redirectUrl:
type: string
description: The url or path to redirect the user to after form submission
example: /thank-you
redirectMethod:
type: string
description: The HTTP request method to use for the redirectUrl (eg. POST or GET)
nullable: true
example: GET
redirectAction:
type: string
description: The action to take after form submission
nullable: true
example: 'POST https://example.com'
sendEmailConfirmation:
type: boolean
description: Whether to send an email confirmation to the user
example: true
id:
type: string
format: objectid
description: The unique id for the Form
example: 545bbecb7bdd6769632504a7
siteId:
type: string
format: objectid
description: The unique id of the Site the Form belongs to
example: 545bbecb7bdd6769632504a7
siteDomainId:
type: string
format: objectid
description: The unique id corresponding to the site's Domain name
example: 6419db964a9c436a4baf6247
pageId:
type: string
format: objectid
description: The unique id for the Page on which the Form is placed
example: 6419db964a9c43f6a3af6243
pageName:
type: string
description: The user-visible name of the Page where the Form is placed
example: Home
workspaceId:
type: string
format: objectid
description: The unique id of the Workspace the Site belongs to
example: 580e63fc8c9a982ac9b8b744
'400':
description: Request body was incorrectly formatted. Likely invalid JSON being sent up.
'401':
description: Provided access token is invalid or does not have access to requested resource
'403':
description: Provided access token does not have access rights to this content.
'404':
description: Requested resource not found
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
'/forms/{form_id}/submissions':
get:
x-fern-sdk-group-name: forms
x-fern-sdk-method-name: list-submissions
security:
- OAuth2:
- 'forms:read'
operationId: list-submissions
summary: List Form Submissions
description: 'List form submissions for a given form Required scope | `forms:read`'
tags:
- Forms
parameters:
- name: form_id
in: path
description: Unique identifier for a Form
example: 580e63e98c9a982ac9b8b741
required: true
schema:
type: string
format: objectid
responses:
'200':
description: Request was successful
content:
application/json:
schema:
description: A list of form submissions
example:
formSubmissions:
- id: 6321ca84df3949bfc6752327
formId: 6321ca84df3949bfc6752327
displayName: Sample Form
siteId: 62749158efef318abc8d5a0f
workspaceId: 62749158efef318abc8d5a0f
formResponse:
First Name: Arthur
Last Name: Dent
dateSubmitted: '2022-09-14T12:35:16.117Z'
- id: 660d64fabf6e0a0d4edab981
formId: 6321ca84df3949bfc6752327
displayName: Sample Form
siteId: 62749158efef318abc8d5a0f
workspaceId: 62749158efef318abc8d5a0f
formResponse:
First Name: Ford
Last Name: Prefect
dateSubmitted: '2022-09-14T12:35:16.117Z'
pagination:
limit: 25
offset: 0
total: 2
properties:
submissions:
type: array
items:
example:
id: 6321ca84df3949bfc6752327
formId: 6321ca84df3949bfc6752327
displayName: Sample Form
siteId: 62749158efef318abc8d5a0f
workspaceId: 62749158efef318abc8d5a0f
formResponse:
First Name: Arthur
Last Name: Dent
dateSubmitted: '2022-09-14T12:35:16.117Z'
properties:
id:
type: string
format: objectid
description: The unique id of the Form submission
example: 545bbecb7bdd6769632504a7
displayName:
type: string
description: The Form name displayed on the site
example: someone@email.com
siteId:
type: string
format: objectid
description: The unique id of the Site the Form belongs to
example: 545bbecb7bdd6769632504a7
workspaceId:
type: string
format: objectid
description: The unique id of the Workspace the Site belongs to
example: 580e63fc8c9a982ac9b8b744
dateSubmitted:
type: string
format: date-time
description: Date that the Form was submitted on
example: '2018-10-04T15:21:02.042Z'
formResponse:
type: object
description: The data submitted in the Form
example:
name: Arthur Dent
email: arthur.dent@mostlyharmless.com
pagination:
description: Pagination object
type: object
properties:
limit:
type: number
description: The limit used for pagination
example: 100
offset:
type: number
description: The offset used for pagination
example: 0
total:
type: number
description: The total number of records
example: 100
'400':
description: Request body was incorrectly formatted. Likely invalid JSON being sent up.
'401':
description: Provided access token is invalid or does not have access to requested resource
'403':
description: Provided access token does not have access rights to this content.
'404':
description: Requested resource not found
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
'/form_submissions/{form_submission_id}':
get:
x-fern-sdk-group-name: forms
x-fern-sdk-method-name: get-submission
security:
- OAuth2:
- 'forms:read'
operationId: get-form-submission
summary: Get Form Submission
description: 'Get information about a given form submission Required scope | `forms:read`'
tags:
- Forms
parameters:
- name: form_submission_id
in: path
description: Unique identifier for a Form Submission
example: 580e63e98c9a982ac9b8b741
required: true
schema:
type: string
format: objectid
responses:
'200':
description: Request was successful
content:
application/json:
schema:
description: A form submission
example:
id: 6321ca84df3949bfc6752327
formId: 6321ca84df3949bfc6752327
displayName: Sample Form
siteId: 62749158efef318abc8d5a0f
workspaceId: 62749158efef318abc8d5a0f
formResponse:
First Name: Arthur
Last Name: Dent
dateSubmitted: '2022-09-14T12:35:16.117Z'
properties:
id:
type: string
format: objectid
description: The unique id of the Form submission
example: 545bbecb7bdd6769632504a7
displayName:
type: string
description: The Form name displayed on the site
example: someone@email.com
siteId:
type: string
format: objectid
description: The unique id of the Site the Form belongs to
example: 545bbecb7bdd6769632504a7
workspaceId:
type: string
format: objectid
description: The unique id of the Workspace the Site belongs to
example: 580e63fc8c9a982ac9b8b744
dateSubmitted:
type: string
format: date-time
description: Date that the Form was submitted on
example: '2018-10-04T15:21:02.042Z'
formResponse:
type: object
description: The data submitted in the Form
example:
name: Arthur Dent
email: arthur.dent@mostlyharmless.com
'400':
description: Request body was incorrectly formatted. Likely invalid JSON being sent up.
'401':
description: Provided access token is invalid or does not have access to requested resource
'403':
description: Provided access token does not have access rights to this content.
'404':
description: Requested resource not found
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
patch:
x-fern-sdk-group-name: forms
x-fern-sdk-method-name: update-submission
security:
- OAuth2:
- 'forms:write'
operationId: modify-form-submission
summary: Modify Form Submission
description: 'Update hidden fields on a form submission Required scope | `forms:write`'
tags:
- Forms
parameters:
- name: form_submission_id
in: path
description: Unique identifier for a Form Submission
example: 580e63e98c9a982ac9b8b741
required: true
schema:
type: string
format: objectid
requestBody:
required: true
content:
application/json:
schema:
properties:
formSubmissionData:
type: object
description: 'An existing **hidden field** defined on the form schema, and the corresponding value to set'
example:
hidden-field-name: new value
responses:
'200':
description: Request was successful
content:
application/json:
schema:
description: A form submission
example:
id: 6321ca84df3949bfc6752327
formId: 6321ca84df3949bfc6752327
displayName: Sample Form
siteId: 62749158efef318abc8d5a0f
workspaceId: 62749158efef318abc8d5a0f
formResponse:
First Name: Arthur
Last Name: Dent
dateSubmitted: '2022-09-14T12:35:16.117Z'
properties:
id:
type: string
format: objectid
description: The unique id of the Form submission
example: 545bbecb7bdd6769632504a7
displayName:
type: string
description: The Form name displayed on the site
example: someone@email.com
siteId:
type: string
format: objectid
description: The unique id of the Site the Form belongs to
example: 545bbecb7bdd6769632504a7
workspaceId:
type: string
format: objectid
description: The unique id of the Workspace the Site belongs to
example: 580e63fc8c9a982ac9b8b744
dateSubmitted:
type: string
format: date-time
description: Date that the Form was submitted on
example: '2018-10-04T15:21:02.042Z'
formResponse:
type: object
description: The data submitted in the Form
example:
name: Arthur Dent
email: arthur.dent@mostlyharmless.com
'400':
description: Request body was incorrectly formatted. Likely invalid JSON being sent up.
'401':
description: Provided access token is invalid or does not have access to requested resource
'403':
description: Provided access token does not have access rights to this content.
'404':
description: Requested resource not found
'409':
description: 'To access this feature, the site needs to be republished.'
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
'/sites/{site_id}/users':
get:
x-fern-sdk-group-name: users
x-fern-sdk-method-name: list
security:
- OAuth2:
- 'users:read'
operationId: list-users
summary: List Users
description: 'Get a list of users for a site
Required scope | `users:read`'
tags:
- User Accounts
parameters:
- name: site_id
in: path
description: Unique identifier for a Site
example: 580e63e98c9a982ac9b8b741
required: true
schema:
type: string
format: objectid
default: null
- in: query
example: 0
allowEmptyValue: true
name: offset
description: Offset used for pagination if the results have more than limit records
required: false
schema:
type: number
- in: query
allowEmptyValue: true
name: limit
example: 100
description: 'Maximum number of records to be returned (max limit: 100)'
required: false
schema:
type: number
- name: sort
in: query
allowEmptyValue: true
description: |
Sort string to use when ordering users
Example(`CreatedOn`, `Email`, `Status`, `LastLogin`, `UpdatedOn`).
Can be prefixed with a `-` to reverse the sort (ex. `-CreatedOn`)
schema:
type: string
enum:
- CreatedOn
- '-CreatedOn'
- Email
- '-Email'
- Status
- '-Status'
- LastLogin
- '-LastLogin'
- UpdatedOn
- '-UpdatedOn'
x-fern-enum:
CreatedOn:
name: CreatedOnAscending
description: Sorts users in ascending order based on their created date
'-CreatedOn':
name: CreatedOnDescending
description: Sorts users in descending order based on their created date
Email:
name: EmailAscending
description: Sorts users in ascending order based on their email
'-Email':
name: EmailDescending
description: Sorts users in descending order based on their email
Status:
name: StatusAscending
description: Sorts users in ascending order based on their status
'-Status':
name: StatusDescending
description: Sorts users in descending order based on their status
LastLogin:
name: LastLoginAscending
description: Sorts users in ascending order based on their last login date
'-LastLogin':
name: LastLoginDescending
description: Sorts users in descending order based on their last login date
UpdatedOn:
name: UpdatedOnAscending
description: Sorts users in ascending order based on their update date
'-UpdatedOn':
name: UpdatedOnDescending
description: Sorts users in descending order based on their update date
example: CreatedOn
required: false
responses:
'200':
description: Request was successful
content:
application/json:
schema:
type: object
description: The list users results
properties:
count:
type: number
description: Number of users returned
limit:
type: number
default: 10
description: The limit specified in the request
offset:
type: number
default: 0
description: The offset specified for pagination
total:
type: number
description: Total number of users in the collection
users:
type: array
description: List of Users for a Site
items:
description: |
The fields that define the schema for a given Item are based on the Collection that Item belongs to. Beyond the user defined fields, there are a handful of additional fields that are automatically created for all items
example:
id: 6287ec36a841b25637c663df
isEmailVerified: true
lastUpdated: '2022-05-20T13:46:12.093Z'
invitedOn: '2022-05-20T13:46:12.093Z'
createdOn: '2022-05-20T13:46:12.093Z'
lastLogin: '2022-05-20T13:46:12.093Z'
status: verified
accessGroups:
- slug: webflowers
type: admin
data:
name: Arthur Dent
email: arthur.dent@mostlyharmless.com
accept-privacy: true
accept-communications: true
favoriteDrink: Tea
currentPlanet: Somewhere in the vicinity of Betelgeuse
properties:
id:
readOnly: true
type: string
format: objectid
example: 6287ec36a841b25637c663df
description: Unique identifier for the User
isEmailVerified:
readOnly: true
type: boolean
description: Shows whether the user has verified their email address
lastUpdated:
readOnly: true
type: string
format: date-time
description: The timestamp the user was updated
example: '2016-10-24T19:41:29.156Z'
invitedOn:
readOnly: true
type: string
format: date-time
description: The timestamp the user was invited
example: '2016-10-24T19:41:29.156Z'
createdOn:
readOnly: true
type: string
format: date-time
description: The timestamp the user was created
example: '2016-10-24T19:41:29.156Z'
lastLogin:
readOnly: true
type: string
format: date-time
description: The timestamp the user was logged in
example: '2016-10-24T19:41:29.156Z'
status:
readOnly: true
type: string
description: The status of the user
enum:
- invited
- verified
- unverified
accessGroups:
type: array
description: Access groups the user belongs to
example:
- slug: webflowers
type: admin
- slug: platinum
type: ecommerce
items:
type: object
description: Access group slugs and types
properties:
slug:
type: string
description: Access group identifier for APIs
type:
type: string
enum:
- admin
- ecommerce
description: |
The type of access group based on how it was assigned to the user.
* `admin` - Assigned to the user via API or in the designer
* `ecommerce` - Assigned to the user via an ecommerce purchase
data:
type: object
description: An object containing the User's basic info and custom fields
properties:
data:
type: object
properties:
name:
type: string
description: |
The name of the user
email:
type: string
description: |
The email address of the user
accept-privacy:
type: boolean
description: |
Boolean indicating if the user has accepted the privacy policy
accept-communications:
type: boolean
description: |
Boolean indicating if the user has accepted to receive communications
additionalProperties:
description: Custom user attributes
type: string
example:
users:
- id: 6287ec36a841b25637c663df
isEmailVerified: false
lastUpdated: '2022-05-20T13:46:12.093Z'
createdOn: '2022-05-20T13:46:12.093Z'
status: unverified
accessGroups:
- slug: vogon-construction-crew
type: admin
data:
accept-privacy: false
accept-communications: false
email: zaphod.beeblebrox@heart-of-gold.com
name: Zaphod Beeblebrox
- id: 6287ec36a841b25637c663f0
isEmailVerified: false
lastUpdated: '2022-05-19T05:32:04.581Z'
createdOn: '2022-05-19T05:32:04.581Z'
status: unverified
accessGroups:
- slug: improbability-drive-test-subjects
type: admin
data:
accept-privacy: false
accept-communications: false
email: ford.prefect@hitchhikers-guide.com
name: Ford Prefect
- id: 6287ec36a841b25637c663d9
isEmailVerified: true
lastUpdated: '2022-05-17T03:34:06.720Z'
createdOn: '2022-05-17T03:34:06.720Z'
status: verified
accessGroups:
- slug: heart-of-gold-crew
type: admin
data:
accept-privacy: false
accept-communications: false
email: arthur.dent@earthling.com
name: Arthur Dent
- id: 6287ec37a841b25637c6641b
isEmailVerified: false
lastUpdated: '2022-05-15T03:46:09.748Z'
createdOn: '2022-05-15T03:46:09.748Z'
status: unverified
accessGroups:
- slug: hitchhikers-guide-research-team
type: admin
data:
accept-privacy: false
accept-communications: false
email: marvin@paranoid-android.com
name: Marvin the Paranoid Android
- id: 6287ec37a841b25637c66449
isEmailVerified: true
lastUpdated: '2022-05-15T02:55:38.786Z'
createdOn: '2022-05-15T02:55:38.786Z'
status: verified
accessGroups:
- slug: milliways-reservationists
type: admin
data:
accept-privacy: false
accept-communications: false
email: trillian@trillian-alternative.com
name: Trillian
count: 5
limit: 5
offset: 0
total: 201
example:
users:
- id: 6287ec36a841b25637c663df
isEmailVerified: false
lastUpdated: '2022-05-20T13:46:12.093Z'
createdOn: '2022-05-20T13:46:12.093Z'
status: unverified
accessGroups:
- slug: vogon-construction-crew
type: admin
data:
accept-privacy: false
accept-communications: false
email: zaphod.beeblebrox@heart-of-gold.com
name: Zaphod Beeblebrox
- id: 6287ec36a841b25637c663f0
isEmailVerified: false
lastUpdated: '2022-05-19T05:32:04.581Z'
createdOn: '2022-05-19T05:32:04.581Z'
status: unverified
accessGroups:
- slug: improbability-drive-test-subjects
type: admin
data:
accept-privacy: false
accept-communications: false
email: ford.prefect@hitchhikers-guide.com
name: Ford Prefect
- id: 6287ec36a841b25637c663d9
isEmailVerified: true
lastUpdated: '2022-05-17T03:34:06.720Z'
createdOn: '2022-05-17T03:34:06.720Z'
status: verified
accessGroups:
- slug: heart-of-gold-crew
type: admin
data:
accept-privacy: false
accept-communications: false
email: arthur.dent@earthling.com
name: Arthur Dent
- id: 6287ec37a841b25637c6641b
isEmailVerified: false
lastUpdated: '2022-05-15T03:46:09.748Z'
createdOn: '2022-05-15T03:46:09.748Z'
status: unverified
accessGroups:
- slug: hitchhikers-guide-research-team
type: admin
data:
accept-privacy: false
accept-communications: false
email: marvin@paranoid-android.com
name: Marvin the Paranoid Android
- id: 6287ec37a841b25637c66449
isEmailVerified: true
lastUpdated: '2022-05-15T02:55:38.786Z'
createdOn: '2022-05-15T02:55:38.786Z'
status: verified
accessGroups:
- slug: milliways-reservationists
type: admin
data:
accept-privacy: false
accept-communications: false
email: trillian@trillian-alternative.com
name: Trillian
count: 5
limit: 5
offset: 0
total: 201
'400':
description: Validation failure
'401':
description: Provided access token is invalid or does not have access to requested resource
'403':
description: Forbidden
content:
application/json:
schema:
oneOf:
- allOf:
- example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
details:
type: array
description: Array of errors
items:
type:
- string
- object
- description: The request is missing the required scopes.
- properties:
code:
type: string
description: Error code
enum:
- missing_scopes
type: string
- allOf:
- example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
details:
type: array
description: Array of errors
items:
type:
- string
- object
- description: The site does not have Users enabled.
- properties:
code:
type: string
description: Error code
enum:
- users_not_enabled
- null
'404':
description: Requested resource not found
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
'/sites/{site_id}/users/{user_id}':
get:
x-fern-sdk-group-name: users
x-fern-sdk-method-name: get
security:
- OAuth2:
- 'users:read'
operationId: get-user
summary: Get User
description: 'Get a User by ID
Required scope | `users:read`'
tags:
- User Accounts
parameters:
- name: site_id
in: path
description: Unique identifier for a Site
example: 580e63e98c9a982ac9b8b741
required: true
schema:
type: string
format: objectid
default: null
- name: user_id
in: path
description: Unique identifier for a User
example: 580e63e98c9a982ac9b8b741
required: true
schema:
type: string
format: objectid
responses:
'200':
description: Request was successful
content:
application/json:
schema:
description: |
The fields that define the schema for a given Item are based on the Collection that Item belongs to. Beyond the user defined fields, there are a handful of additional fields that are automatically created for all items
example:
id: 6287ec36a841b25637c663df
isEmailVerified: true
lastUpdated: '2022-05-20T13:46:12.093Z'
invitedOn: '2022-05-20T13:46:12.093Z'
createdOn: '2022-05-20T13:46:12.093Z'
lastLogin: '2022-05-20T13:46:12.093Z'
status: verified
accessGroups:
- slug: webflowers
type: admin
data:
name: Arthur Dent
email: arthur.dent@mostlyharmless.com
accept-privacy: true
accept-communications: true
favoriteDrink: Tea
currentPlanet: Somewhere in the vicinity of Betelgeuse
properties:
id:
readOnly: true
type: string
format: objectid
example: 6287ec36a841b25637c663df
description: Unique identifier for the User
isEmailVerified:
readOnly: true
type: boolean
description: Shows whether the user has verified their email address
lastUpdated:
readOnly: true
type: string
format: date-time
description: The timestamp the user was updated
example: '2016-10-24T19:41:29.156Z'
invitedOn:
readOnly: true
type: string
format: date-time
description: The timestamp the user was invited
example: '2016-10-24T19:41:29.156Z'
createdOn:
readOnly: true
type: string
format: date-time
description: The timestamp the user was created
example: '2016-10-24T19:41:29.156Z'
lastLogin:
readOnly: true
type: string
format: date-time
description: The timestamp the user was logged in
example: '2016-10-24T19:41:29.156Z'
status:
readOnly: true
type: string
description: The status of the user
enum:
- invited
- verified
- unverified
accessGroups:
type: array
description: Access groups the user belongs to
example:
- slug: webflowers
type: admin
- slug: platinum
type: ecommerce
items:
type: object
description: Access group slugs and types
properties:
slug:
type: string
description: Access group identifier for APIs
type:
type: string
enum:
- admin
- ecommerce
description: |
The type of access group based on how it was assigned to the user.
* `admin` - Assigned to the user via API or in the designer
* `ecommerce` - Assigned to the user via an ecommerce purchase
data:
type: object
description: An object containing the User's basic info and custom fields
properties:
data:
type: object
properties:
name:
type: string
description: |
The name of the user
email:
type: string
description: |
The email address of the user
accept-privacy:
type: boolean
description: |
Boolean indicating if the user has accepted the privacy policy
accept-communications:
type: boolean
description: |
Boolean indicating if the user has accepted to receive communications
additionalProperties:
description: Custom user attributes
type: string
'400':
description: Validation failure
'401':
description: Provided access token is invalid or does not have access to requested resource
'403':
description: Forbidden
content:
application/json:
schema:
oneOf:
- allOf:
- example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
details:
type: array
description: Array of errors
items:
type:
- string
- object
- description: The request is missing the required scopes.
- properties:
code:
type: string
description: Error code
enum:
- missing_scopes
type: string
- allOf:
- example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
details:
type: array
description: Array of errors
items:
type:
- string
- object
- description: The site does not have Users enabled.
- properties:
code:
type: string
description: Error code
enum:
- users_not_enabled
- null
'404':
description: Requested resource not found
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
patch:
x-fern-sdk-group-name: users
x-fern-sdk-method-name: update
security:
- OAuth2:
- 'users:write'
operationId: update-user
summary: Update User
description: |
Update a User by ID
Required scope | `users:write`
tags:
- User Accounts
- Access Groups
parameters:
- name: site_id
in: path
description: Unique identifier for a Site
example: 580e63e98c9a982ac9b8b741
required: true
schema:
type: string
format: objectid
default: null
- name: user_id
in: path
description: Unique identifier for a User
example: 580e63e98c9a982ac9b8b741
required: true
schema:
type: string
format: objectid
requestBody:
content:
application/json:
schema:
type: object
properties:
data:
type: object
properties:
name:
type: string
description: |
The name of the user
accept-privacy:
type: boolean
description: |
Boolean indicating if the user has accepted the privacy policy
accept-communications:
type: boolean
description: |
Boolean indicating if the user has accepted to receive communications
additionalProperties:
description: Custom user attributes
type: string
accessGroups:
type: array
description: |
An array of access group slugs. Access groups are assigned to the user as type `admin` and the user remains in the group until removed.
items:
type: string
example:
data:
name: Some One
accept-privacy: false
accept-communications: false
accessGroups:
- webflowers
- platinum
- free-tier
responses:
'200':
description: Request was successful
content:
application/json:
schema:
description: |
The fields that define the schema for a given Item are based on the Collection that Item belongs to. Beyond the user defined fields, there are a handful of additional fields that are automatically created for all items
example:
id: 6287ec36a841b25637c663df
isEmailVerified: true
lastUpdated: '2022-05-20T13:46:12.093Z'
invitedOn: '2022-05-20T13:46:12.093Z'
createdOn: '2022-05-20T13:46:12.093Z'
lastLogin: '2022-05-20T13:46:12.093Z'
status: verified
accessGroups:
- slug: webflowers
type: admin
data:
name: Arthur Dent
email: arthur.dent@mostlyharmless.com
accept-privacy: true
accept-communications: true
favoriteDrink: Tea
currentPlanet: Somewhere in the vicinity of Betelgeuse
properties:
id:
readOnly: true
type: string
format: objectid
example: 6287ec36a841b25637c663df
description: Unique identifier for the User
isEmailVerified:
readOnly: true
type: boolean
description: Shows whether the user has verified their email address
lastUpdated:
readOnly: true
type: string
format: date-time
description: The timestamp the user was updated
example: '2016-10-24T19:41:29.156Z'
invitedOn:
readOnly: true
type: string
format: date-time
description: The timestamp the user was invited
example: '2016-10-24T19:41:29.156Z'
createdOn:
readOnly: true
type: string
format: date-time
description: The timestamp the user was created
example: '2016-10-24T19:41:29.156Z'
lastLogin:
readOnly: true
type: string
format: date-time
description: The timestamp the user was logged in
example: '2016-10-24T19:41:29.156Z'
status:
readOnly: true
type: string
description: The status of the user
enum:
- invited
- verified
- unverified
accessGroups:
type: array
description: Access groups the user belongs to
example:
- slug: webflowers
type: admin
- slug: platinum
type: ecommerce
items:
type: object
description: Access group slugs and types
properties:
slug:
type: string
description: Access group identifier for APIs
type:
type: string
enum:
- admin
- ecommerce
description: |
The type of access group based on how it was assigned to the user.
* `admin` - Assigned to the user via API or in the designer
* `ecommerce` - Assigned to the user via an ecommerce purchase
data:
type: object
description: An object containing the User's basic info and custom fields
properties:
data:
type: object
properties:
name:
type: string
description: |
The name of the user
email:
type: string
description: |
The email address of the user
accept-privacy:
type: boolean
description: |
Boolean indicating if the user has accepted the privacy policy
accept-communications:
type: boolean
description: |
Boolean indicating if the user has accepted to receive communications
additionalProperties:
description: Custom user attributes
type: string
'400':
description: Validation failure
'401':
description: Provided access token is invalid or does not have access to requested resource
'403':
description: Forbidden
content:
application/json:
schema:
oneOf:
- allOf:
- example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
details:
type: array
description: Array of errors
items:
type:
- string
- object
- description: The request is missing the required scopes.
- properties:
code:
type: string
description: Error code
enum:
- missing_scopes
type: string
- allOf:
- example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
details:
type: array
description: Array of errors
items:
type:
- string
- object
- description: The site does not have Users enabled.
- properties:
code:
type: string
description: Error code
enum:
- users_not_enabled
- null
'404':
description: Requested resource not found
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
delete:
x-fern-sdk-group-name: users
x-fern-sdk-method-name: delete
security:
- OAuth2:
- 'users:write'
operationId: delete-user
summary: Delete User
description: 'Delete a User by ID
Required scope | `users:write`'
tags:
- User Accounts
parameters:
- name: site_id
in: path
description: Unique identifier for a Site
example: 580e63e98c9a982ac9b8b741
required: true
schema:
type: string
format: objectid
default: null
- name: user_id
in: path
description: Unique identifier for a User
example: 580e63e98c9a982ac9b8b741
required: true
schema:
type: string
format: objectid
responses:
'204':
description: Request was successful. No Content is returned.
'400':
description: Validation failure
'401':
description: Provided access token is invalid or does not have access to requested resource
'403':
description: Forbidden
content:
application/json:
schema:
oneOf:
- allOf:
- example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
details:
type: array
description: Array of errors
items:
type:
- string
- object
- description: The request is missing the required scopes.
- properties:
code:
type: string
description: Error code
enum:
- missing_scopes
type: string
- allOf:
- example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
details:
type: array
description: Array of errors
items:
type:
- string
- object
- description: The site does not have Users enabled.
- properties:
code:
type: string
description: Error code
enum:
- users_not_enabled
- null
'404':
description: Requested resource not found
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
'/sites/{site_id}/users/invite':
post:
x-fern-sdk-group-name: users
x-fern-sdk-method-name: invite
security:
- OAuth2:
- 'users:write'
operationId: invite-user
summary: Create and Invite a User
description: 'Create and invite a user with an email address. The user will be sent and invite via email, which they will need to accept in order to join paid Access Groups.
Required scope | `users:write`'
tags:
- User Accounts
- Access Groups
parameters:
- name: site_id
in: path
description: Unique identifier for a Site
example: 580e63e98c9a982ac9b8b741
required: true
schema:
type: string
format: objectid
default: null
requestBody:
content:
application/json:
schema:
type: object
required:
- email
example:
email: some.one@home.com
accessGroups:
- webflowers
properties:
email:
type: string
format: email
example: some.one@home.com
description: Email address of user to send invite to
accessGroups:
type: array
description: |
An array of access group slugs. Access groups are assigned to the user as type `admin` and the user remains in the group until removed.
items:
type: string
responses:
'200':
description: Request was successful
content:
application/json:
schema:
description: |
The fields that define the schema for a given Item are based on the Collection that Item belongs to. Beyond the user defined fields, there are a handful of additional fields that are automatically created for all items
example:
id: 6287ec36a841b25637c663df
isEmailVerified: true
lastUpdated: '2022-05-20T13:46:12.093Z'
invitedOn: '2022-05-20T13:46:12.093Z'
createdOn: '2022-05-20T13:46:12.093Z'
lastLogin: '2022-05-20T13:46:12.093Z'
status: verified
accessGroups:
- slug: webflowers
type: admin
data:
name: Arthur Dent
email: arthur.dent@mostlyharmless.com
accept-privacy: true
accept-communications: true
favoriteDrink: Tea
currentPlanet: Somewhere in the vicinity of Betelgeuse
properties:
id:
readOnly: true
type: string
format: objectid
example: 6287ec36a841b25637c663df
description: Unique identifier for the User
isEmailVerified:
readOnly: true
type: boolean
description: Shows whether the user has verified their email address
lastUpdated:
readOnly: true
type: string
format: date-time
description: The timestamp the user was updated
example: '2016-10-24T19:41:29.156Z'
invitedOn:
readOnly: true
type: string
format: date-time
description: The timestamp the user was invited
example: '2016-10-24T19:41:29.156Z'
createdOn:
readOnly: true
type: string
format: date-time
description: The timestamp the user was created
example: '2016-10-24T19:41:29.156Z'
lastLogin:
readOnly: true
type: string
format: date-time
description: The timestamp the user was logged in
example: '2016-10-24T19:41:29.156Z'
status:
readOnly: true
type: string
description: The status of the user
enum:
- invited
- verified
- unverified
accessGroups:
type: array
description: Access groups the user belongs to
example:
- slug: webflowers
type: admin
- slug: platinum
type: ecommerce
items:
type: object
description: Access group slugs and types
properties:
slug:
type: string
description: Access group identifier for APIs
type:
type: string
enum:
- admin
- ecommerce
description: |
The type of access group based on how it was assigned to the user.
* `admin` - Assigned to the user via API or in the designer
* `ecommerce` - Assigned to the user via an ecommerce purchase
data:
type: object
description: An object containing the User's basic info and custom fields
properties:
data:
type: object
properties:
name:
type: string
description: |
The name of the user
email:
type: string
description: |
The email address of the user
accept-privacy:
type: boolean
description: |
Boolean indicating if the user has accepted the privacy policy
accept-communications:
type: boolean
description: |
Boolean indicating if the user has accepted to receive communications
additionalProperties:
description: Custom user attributes
type: string
'400':
description: Validation failure
'401':
description: Provided access token is invalid or does not have access to requested resource
'403':
description: Forbidden
content:
application/json:
schema:
oneOf:
- allOf:
- example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
details:
type: array
description: Array of errors
items:
type:
- string
- object
- description: The request is missing the required scopes.
- properties:
code:
type: string
description: Error code
enum:
- missing_scopes
type: string
- allOf:
- example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
details:
type: array
description: Array of errors
items:
type:
- string
- object
- description: The site does not have Users enabled.
- properties:
code:
type: string
description: Error code
enum:
- users_not_enabled
- null
'404':
description: Requested resource not found
'409':
description: Conflict
content:
application/json:
schema:
oneOf:
- allOf:
- example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
details:
type: array
description: Array of errors
items:
type:
- string
- object
- description: The email address provided is already in use by another user.
- properties:
code:
type: string
description: Error code
enum:
- duplicate_user_email
- null
- allOf:
- example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
details:
type: array
description: Array of errors
items:
type:
- string
- object
- description: The site has reached the maximum number of users allowed.
- properties:
code:
type: string
description: Error code
enum:
- user_limit_reached
- null
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
'/sites/{site_id}/accessgroups':
get:
x-fern-sdk-group-name: access-groups
x-fern-sdk-method-name: list
security:
- OAuth2:
- 'users:read'
operationId: list-access-groups
summary: List Access Groups
description: 'Get a list of access groups for a site
Required scope | `users:read`'
tags:
- Access Groups
parameters:
- name: site_id
in: path
description: Unique identifier for a Site
example: 580e63e98c9a982ac9b8b741
required: true
schema:
type: string
format: objectid
default: null
- in: query
example: 0
allowEmptyValue: true
name: offset
description: Offset used for pagination if the results have more than limit records
required: false
schema:
type: number
- in: query
allowEmptyValue: true
name: limit
example: 100
description: 'Maximum number of records to be returned (max limit: 100)'
required: false
schema:
type: number
- name: sort
in: query
allowEmptyValue: true
description: |
Sort string to use when ordering access groups
Can be prefixed with a `-` to reverse the sort (ex. `-CreatedOn`)
schema:
type: string
enum:
- CreatedOn
- '-CreatedOn'
x-fern-enum:
CreatedOn:
name: CreatedOnAscending
description: Sorts users in ascending order based on their created date
'-CreatedOn':
name: CreatedOnDescending
description: Sorts users in descending order based on their created date
example: CreatedOn
required: false
responses:
'200':
description: Request was successful
content:
application/json:
schema:
type: object
description: The list access groups results
properties:
count:
type: number
description: Number of access groups returned
limit:
type: number
default: 10
description: The limit specified in the request
offset:
type: number
default: 0
description: The offset specified for pagination
total:
type: number
description: Total number of access groups in the collection
accessGroups:
type: array
description: List of Site Access Groups
items:
example:
id: 62be58d404be8a6cc900c081
name: Webflowers
shortId: wf
slug: webflowers
createdOn: '2022-08-01T19:41:48.349Z'
properties:
id:
type: string
format: objectid
example: 62be58d404be8a6cc900c081
description: Unique identifier for the Access Group
name:
type: string
example: Webflowers
description: Name of the the Access Group
shortId:
type: string
example: jo
description: 'Shortened unique identifier based on name, optimized for its use in the user’s JWT'
slug:
type: string
example: webflowers
description: 'Shortened unique identifier based on name, optimized for human readability and public API use'
createdOn:
type: string
format: date-time
description: The date the Access Group was created
example: '2022-08-01T19:41:48.349Z'
example:
accessGroups:
- id: 62be58d404be8a6cc900c081
name: Research Team
shortId: rt
slug: hitchhikers-guide-research-team
createdOn: '2022-08-01T19:41:48.349Z'
- id: 65a96161991e77bbb4a6c573
name: Admin
shortId: ad
slug: admin
createdOn: '2022-08-01T19:41:48.349Z'
count: 1
limit: 10
offset: 0
total: 1
'400':
description: Validation failure
'401':
description: Provided access token is invalid or does not have access to requested resource
'403':
description: Forbidden
content:
application/json:
schema:
oneOf:
- allOf:
- example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
details:
type: array
description: Array of errors
items:
type:
- string
- object
- description: The request is missing the required scopes.
- properties:
code:
type: string
description: Error code
enum:
- missing_scopes
type: string
- allOf:
- example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
details:
type: array
description: Array of errors
items:
type:
- string
- object
- description: The site does not have Users enabled.
- properties:
code:
type: string
description: Error code
enum:
- users_not_enabled
- null
'404':
description: Requested resource not found
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
'/sites/{site_id}/products':
get:
x-fern-sdk-group-name: products
x-fern-sdk-method-name: list
security:
- OAuth2:
- 'ecommerce:read'
operationId: list-products
summary: List Products & SKUs
description: |
Retrieve all products for a site. Use `limit` and `offset` to page through all products with subsequent requests. All SKUs for each product will also be fetched and returned. The `limit`, `offset` and `total` values represent Products only and do not include any SKUs.
Required scope | `ecommerce:read`
tags:
- Products & SKUs
parameters:
- name: site_id
in: path
description: Unique identifier for a Site
example: 580e63e98c9a982ac9b8b741
required: true
schema:
type: string
format: objectid
default: null
- in: query
example: 0
allowEmptyValue: true
name: offset
description: Offset used for pagination if the results have more than limit records
required: false
schema:
type: number
- in: query
allowEmptyValue: true
name: limit
example: 100
description: 'Maximum number of records to be returned (max limit: 100)'
required: false
schema:
type: number
responses:
'200':
description: Request was successful
content:
application/json:
schema:
description: Results from product list
properties:
items:
type: array
description: List of Item objects within the Collection. Contains product and skus keys for each Item
items:
description: A product and its SKUs.
type: object
properties:
product:
description: The Product object
type: object
example:
id: 660eb7a486d1d6e0412292d7
cmsLocaleId: 653ad57de882f528b32e810e
lastPublished: '2024-04-04T14:24:19.467Z'
lastUpdated: '2024-04-04T14:30:19.282Z'
createdOn: '2024-04-04T14:22:28.547Z'
isArchived: false
isDraft: false
fieldData:
tax-category: standard-taxable
shippable: true
ec-product-type: b6ccc1830db4b1babeb06a9ac5f6dd76
sku-properties:
- id: 31b77fa66fa376c2c0abb458d5be39fb
name: Size
enum:
- id: 8d21a625d655ab260e9941c27180c75b
name: Small
slug: small
- id: ecdca17106ad86c0dfe3b5f3ac8be6c9
name: Medium
slug: medium
- id: ec7877d6137ecf7ec86f726c135b1812
name: Large
slug: large
- id: 74d3738e62c568d5634dd6989daec5ec
name: Color
enum:
- id: e539b0d6c3a609cd06ddb2da804f68f0
name: Royal Blue
slug: royal-blue
- id: 68d98f2fbafc0fd45651cddc44798dd0
name: Crimson Red
slug: crimson-red
- id: 996cd95c97fd5620d0a374c835b37205
name: Forrest Green
slug: forrest-green
name: T-Shirt
description: A plain t-shirt
slug: t-shirt
default-sku: 66072fb71b89448912e2681c
properties:
id:
type: string
readOnly: true
description: Unique identifier for the Product
example: 580e63fc8c9a982ac9b8b745
cmsLocaleId:
type: string
readOnly: true
example: 653ad57de882f528b32e810e
description: Identifier for the locale of the CMS item
lastPublished:
type: string
format: date-time
readOnly: true
description: The date the Product was last published
example: 2023-03-17T18:47:35.560Z
lastUpdated:
type: string
format: date-time
readOnly: true
description: The date the Product was last updated
example: 2023-03-17T18:47:35.560Z
createdOn:
type: string
format: date-time
readOnly: true
description: The date the Product was created
example: 2023-03-17T18:47:35.560Z
isArchived:
type: boolean
default: false
description: Boolean determining if the Product is set to archived
example: false
isDraft:
type: boolean
default: false
description: Boolean determining if the Product is set to draft
example: false
fieldData:
description: 'Contains content-specific details for a product, covering both standard (e.g., title, description) and custom fields tailored to the product setup.'
type: object
properties:
name:
type: string
description: Name of the Product
example: T-Shirt
slug:
type: string
description: URL structure of the Product in your site.
example: t-shirt
description:
type: string
description: A description of your product
example: A plain cotton t-shirt.
shippable:
type: boolean
description: Boolean determining if the Product is shippable
example: true
sku-properties:
type: array
description: Variant types to include in SKUs
items:
type: object
description: A variant/option type for a SKU
required:
- id
- name
- enum
properties:
id:
type: string
description: Unique identifier for a collection of Product Variants
default: null
example: Color
name:
type: string
description: Name of the collection of Product Variants
example: Color
enum:
description: The individual Product variants that are contained within the collection
type: array
items:
description: Enumerated Product variants/Options for the SKU
type: object
required:
- id
- name
- slug
properties:
id:
type: string
description: Unique identifier for a Product variant/Option
default: null
example:
- royal-blue
- crimson-red
- forrest-green
name:
type: string
description: Name of the Product variant/Option
examples:
- Royal Blue
- Crimson Red
- Forrest Green
slug:
type: string
description: Slug for the Product variant/Option in the Site URL structure
examples:
- royal-blue
- crimson-red
- forrest-green
- null
categories:
type: array
description: The categories your product belongs to.
items:
type: string
tax-category:
type: string
description: Product tax class
enum:
- standard-taxable
- standard-exempt
- books-religious
- books-textbook
- clothing
- clothing-swimwear
- digital-goods
- digital-service
- drugs-non-prescription
- drugs-prescription
- food-bottled-water
- food-candy
- food-groceries
- food-prepared
- food-soda
- food-supplements
- magazine-individual
- magazine-subscription
- service-admission
- service-advertising
- service-dry-cleaning
- service-hairdressing
- service-installation
- service-miscellaneous
- service-parking
- service-printing
- service-professional
- service-repair
- service-training
- standard-exempt
- standard-taxable
default-sku:
type: string
format: objectid
description: The default SKU associated with this product.
ec-product-type:
description: 'Product types. Enums reflect the following values in order: Physical, Digital, Service, Advanced"'
type: string
enum:
- ff42fee0113744f693a764e3431a9cc2
- f22027db68002190aef89a4a2b7ac8a1
- c599e43b1a1c34d5a323aedf75d3adf6
- b6ccc1830db4b1babeb06a9ac5f6dd76
additionalProperties:
type: string
description: Custom fields for your product.
skus:
description: A list of SKU Objects
type: array
items:
description: The SKU object
type: object
properties:
id:
type: string
readOnly: true
format: objectid
description: Unique identifier for the Product
example: 580e63fc8c9a982ac9b8b745
cmsLocaleId:
type: string
readOnly: true
example: 653ad57de882f528b32e810e
description: Identifier for the locale of the CMS item
lastPublished:
type: string
format: date-time
readOnly: true
description: The date the Product was last published
example: 2023-03-17T18:47:35.560Z
lastUpdated:
type: string
format: date-time
readOnly: true
description: The date the Product was last updated
example: 2023-03-17T18:47:35.560Z
createdOn:
type: string
format: date-time
readOnly: true
description: The date the Product was created
example: 2023-03-17T18:47:35.560Z
fieldData:
description: Standard and Custom fields for a SKU
type: object
required:
- name
- slug
- price
properties:
sku-values:
type: object
description: |
A dictionary that maps a SKU property to a SKU value. The key of the dictionary is the SKU property ID, and the value is the SKU value ID.
additionalProperties:
type: string
example:
ff42fee0113744f693a764e3431a9cc2: 64a74715c456e36762fc39a1
name:
type: string
description: Name of the Product
example: Blue T-shirt
slug:
type: string
description: URL structure of the Product in your site.
example: t-shirt-blue
price:
type: object
description: price of SKU
properties:
value:
description: Price of SKU
isRequired: true
type: number
example: 100
unit:
type: string
isRequired: true
description: Currency of Item
example: USD
compare-at-price:
type: object
description: comparison price of SKU
properties:
value:
description: Price of SKU
type: number
example: 100
unit:
type: string
description: Currency of Item
example: USD
ec-sku-billing-method:
type: string
enum:
- one-time
- subscription
ec-sku-subscription-plan:
type: object
properties:
interval:
type: string
description: Interval of subscription renewal
enum:
- day
- week
- month
- year
frequency:
type: number
description: Frequncy of billing within interval
example: 1
trial:
type: number
description: Number of days of a trial
example: 7
plans:
readOnly: true
type: array
items:
type: object
properties:
platform:
type: string
enum:
- stripe
description: The platform of the subscription plan
id:
type: string
description: The unique identifier of the plan
status:
type: string
enum:
- active
- inactive
- canceled
description: The status of the plan
track-inventory:
type: boolean
description: A boolean indicating whether inventory for this product should be tracked.
default: false
quantity:
type: number
description: Quantity of SKU that will be tracked as items are ordered.
example: 10
additionalProperties:
type: string
description: Custom fields for your SKU.
pagination:
description: Pagination object
type: object
properties:
limit:
type: number
description: The limit used for pagination
example: 100
offset:
type: number
description: The offset used for pagination
example: 0
total:
type: number
description: The total number of records
example: 100
'400':
description: Validation failure
'401':
description: Provided access token is invalid or does not have access to requested resource
'403':
description: 'Provided access token is valid, but is missing the required scopes.'
content:
application/json:
schema:
type: object
properties:
status:
type: integer
example: 403
message:
type: string
publicErrorCode:
type: string
externalReference:
type: string
nullable: true
details:
type: array
items:
type: string
'404':
description: Requested resource not found
'409':
description: The site does not have ecommerce enabled.
content:
application/json:
schema:
allOf:
- example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
details:
type: array
description: Array of errors
items:
type:
- string
- object
- properties:
code:
type: string
description: Error code
enum:
- ecommerce_not_enabled
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
post:
x-fern-sdk-group-name: products
x-fern-sdk-method-name: create
security:
- OAuth2:
- 'ecommerce:write'
operationId: create-product
summary: Create Product & SKU
description: |-
Creating a new Product involves creating both a Product and a SKU, since a Product Item has to have, at minimum, a single SKU.
In order to create a Product with multiple SKUs - for example a T-shirt in sizes small, medium and large - you'll need to create `sku-properties`. In our T-shirt example, a single `sku-property` would be Color. Within that property, we'll need to list out the various colors a T-shirt could be as an array of `enum` values: `royal-blue`, `crimson-red`, and `forrest-green`.
Once, you've created a Product and its `sku-properties` with `enum` values, you can create your default SKU, which will automatically be a combination of the first `sku-properties` you've created. In our example, the default SKU will be a Royal Blue T-Shirt, because our first `enum` of our Color `sku-property` is Royal Blue. After you've created your product, you can create additional SKUs using the Create SKU endpoint
Upon creation, the default product type will be `Advanced`. The product type is used to determine which Product and SKU fields are shown to users in the `Designer` and the `Editor`. Setting it to `Advanced` ensures that all Product and SKU fields will be shown.
Required scope | `ecommerce:write`
tags:
- Products & SKUs
parameters:
- name: site_id
in: path
description: Unique identifier for a Site
example: 580e63e98c9a982ac9b8b741
required: true
schema:
type: string
format: objectid
default: null
requestBody:
description: The Product and SKU to create
required: true
content:
application/json:
schema:
description: The Product and SKU to create
type: object
example:
id: 660eb7a486d1d6e0412292d7
cmsLocaleId: 653ad57de882f528b32e810e
lastPublished: '2024-04-04T14:24:19.467Z'
lastUpdated: '2024-04-04T14:30:19.282Z'
createdOn: '2024-04-04T14:22:28.547Z'
isArchived: false
isDraft: false
fieldData:
tax-category: standard-taxable
shippable: true
ec-product-type: b6ccc1830db4b1babeb06a9ac5f6dd76
sku-properties:
- id: 31b77fa66fa376c2c0abb458d5be39fb
name: Size
enum:
- id: 8d21a625d655ab260e9941c27180c75b
name: Small
slug: small
- id: ecdca17106ad86c0dfe3b5f3ac8be6c9
name: Medium
slug: medium
- id: ec7877d6137ecf7ec86f726c135b1812
name: Large
slug: large
- id: 74d3738e62c568d5634dd6989daec5ec
name: Color
enum:
- id: e539b0d6c3a609cd06ddb2da804f68f0
name: Royal Blue
slug: royal-blue
- id: 68d98f2fbafc0fd45651cddc44798dd0
name: Crimson Red
slug: crimson-red
- id: 996cd95c97fd5620d0a374c835b37205
name: Forrest Green
slug: forrest-green
name: T-Shirt
description: A plain t-shirt
slug: t-shirt
default-sku: 66072fb71b89448912e2681c
properties:
publishStatus:
description: Indicate whether your Product should be set as "staging" or "live"
type: string
enum:
- staging
- live
default: staging
example: staging
product:
allOf:
- properties:
fieldData:
allOf:
- description: 'Contains content-specific details for a product, covering both standard (e.g., title, description) and custom fields tailored to the product setup.'
type: object
properties:
name:
type: string
description: Name of the Product
example: T-Shirt
slug:
type: string
description: URL structure of the Product in your site.
example: t-shirt
description:
type: string
description: A description of your product
example: A plain cotton t-shirt.
shippable:
type: boolean
description: Boolean determining if the Product is shippable
example: true
sku-properties:
type: array
description: Variant types to include in SKUs
items:
type: object
description: A variant/option type for a SKU
required:
- id
- name
- enum
properties:
id:
type: string
description: Unique identifier for a collection of Product Variants
default: null
example: Color
name:
type: string
description: Name of the collection of Product Variants
example: Color
enum:
description: The individual Product variants that are contained within the collection
type: array
items:
description: Enumerated Product variants/Options for the SKU
type: object
required:
- id
- name
- slug
properties:
id:
type: string
description: Unique identifier for a Product variant/Option
default: null
example:
- royal-blue
- crimson-red
- forrest-green
name:
type: string
description: Name of the Product variant/Option
examples:
- Royal Blue
- Crimson Red
- Forrest Green
slug:
type: string
description: Slug for the Product variant/Option in the Site URL structure
examples:
- royal-blue
- crimson-red
- forrest-green
- null
categories:
type: array
description: The categories your product belongs to.
items:
type: string
tax-category:
type: string
description: Product tax class
enum:
- standard-taxable
- standard-exempt
- books-religious
- books-textbook
- clothing
- clothing-swimwear
- digital-goods
- digital-service
- drugs-non-prescription
- drugs-prescription
- food-bottled-water
- food-candy
- food-groceries
- food-prepared
- food-soda
- food-supplements
- magazine-individual
- magazine-subscription
- service-admission
- service-advertising
- service-dry-cleaning
- service-hairdressing
- service-installation
- service-miscellaneous
- service-parking
- service-printing
- service-professional
- service-repair
- service-training
- standard-exempt
- standard-taxable
default-sku:
type: string
format: objectid
description: The default SKU associated with this product.
ec-product-type:
description: 'Product types. Enums reflect the following values in order: Physical, Digital, Service, Advanced"'
type: string
enum:
- ff42fee0113744f693a764e3431a9cc2
- f22027db68002190aef89a4a2b7ac8a1
- c599e43b1a1c34d5a323aedf75d3adf6
- b6ccc1830db4b1babeb06a9ac5f6dd76
additionalProperties:
type: string
description: Custom fields for your product.
- required:
- name
- slug
description: The Product object
type: object
example:
id: 660eb7a486d1d6e0412292d7
cmsLocaleId: 653ad57de882f528b32e810e
lastPublished: '2024-04-04T14:24:19.467Z'
lastUpdated: '2024-04-04T14:30:19.282Z'
createdOn: '2024-04-04T14:22:28.547Z'
isArchived: false
isDraft: false
fieldData:
tax-category: standard-taxable
shippable: true
ec-product-type: b6ccc1830db4b1babeb06a9ac5f6dd76
sku-properties:
- id: 31b77fa66fa376c2c0abb458d5be39fb
name: Size
enum:
- id: 8d21a625d655ab260e9941c27180c75b
name: Small
slug: small
- id: ecdca17106ad86c0dfe3b5f3ac8be6c9
name: Medium
slug: medium
- id: ec7877d6137ecf7ec86f726c135b1812
name: Large
slug: large
- id: 74d3738e62c568d5634dd6989daec5ec
name: Color
enum:
- id: e539b0d6c3a609cd06ddb2da804f68f0
name: Royal Blue
slug: royal-blue
- id: 68d98f2fbafc0fd45651cddc44798dd0
name: Crimson Red
slug: crimson-red
- id: 996cd95c97fd5620d0a374c835b37205
name: Forrest Green
slug: forrest-green
name: T-Shirt
description: A plain t-shirt
slug: t-shirt
default-sku: 66072fb71b89448912e2681c
sku:
description: The SKU object
type: object
properties:
id:
type: string
readOnly: true
format: objectid
description: Unique identifier for the Product
example: 580e63fc8c9a982ac9b8b745
cmsLocaleId:
type: string
readOnly: true
example: 653ad57de882f528b32e810e
description: Identifier for the locale of the CMS item
lastPublished:
type: string
format: date-time
readOnly: true
description: The date the Product was last published
example: 2023-03-17T18:47:35.560Z
lastUpdated:
type: string
format: date-time
readOnly: true
description: The date the Product was last updated
example: 2023-03-17T18:47:35.560Z
createdOn:
type: string
format: date-time
readOnly: true
description: The date the Product was created
example: 2023-03-17T18:47:35.560Z
fieldData:
description: Standard and Custom fields for a SKU
type: object
required:
- name
- slug
- price
properties:
sku-values:
type: object
description: |
A dictionary that maps a SKU property to a SKU value. The key of the dictionary is the SKU property ID, and the value is the SKU value ID.
additionalProperties:
type: string
example:
ff42fee0113744f693a764e3431a9cc2: 64a74715c456e36762fc39a1
name:
type: string
description: Name of the Product
example: Blue T-shirt
slug:
type: string
description: URL structure of the Product in your site.
example: t-shirt-blue
price:
type: object
description: price of SKU
properties:
value:
description: Price of SKU
isRequired: true
type: number
example: 100
unit:
type: string
isRequired: true
description: Currency of Item
example: USD
compare-at-price:
type: object
description: comparison price of SKU
properties:
value:
description: Price of SKU
type: number
example: 100
unit:
type: string
description: Currency of Item
example: USD
ec-sku-billing-method:
type: string
enum:
- one-time
- subscription
ec-sku-subscription-plan:
type: object
properties:
interval:
type: string
description: Interval of subscription renewal
enum:
- day
- week
- month
- year
frequency:
type: number
description: Frequncy of billing within interval
example: 1
trial:
type: number
description: Number of days of a trial
example: 7
plans:
readOnly: true
type: array
items:
type: object
properties:
platform:
type: string
enum:
- stripe
description: The platform of the subscription plan
id:
type: string
description: The unique identifier of the plan
status:
type: string
enum:
- active
- inactive
- canceled
description: The status of the plan
track-inventory:
type: boolean
description: A boolean indicating whether inventory for this product should be tracked.
default: false
quantity:
type: number
description: Quantity of SKU that will be tracked as items are ordered.
example: 10
additionalProperties:
type: string
description: Custom fields for your SKU.
responses:
'200':
description: Request was successful
content:
application/json:
schema:
description: A product and its SKUs.
type: object
properties:
product:
description: The Product object
type: object
example:
id: 660eb7a486d1d6e0412292d7
cmsLocaleId: 653ad57de882f528b32e810e
lastPublished: '2024-04-04T14:24:19.467Z'
lastUpdated: '2024-04-04T14:30:19.282Z'
createdOn: '2024-04-04T14:22:28.547Z'
isArchived: false
isDraft: false
fieldData:
tax-category: standard-taxable
shippable: true
ec-product-type: b6ccc1830db4b1babeb06a9ac5f6dd76
sku-properties:
- id: 31b77fa66fa376c2c0abb458d5be39fb
name: Size
enum:
- id: 8d21a625d655ab260e9941c27180c75b
name: Small
slug: small
- id: ecdca17106ad86c0dfe3b5f3ac8be6c9
name: Medium
slug: medium
- id: ec7877d6137ecf7ec86f726c135b1812
name: Large
slug: large
- id: 74d3738e62c568d5634dd6989daec5ec
name: Color
enum:
- id: e539b0d6c3a609cd06ddb2da804f68f0
name: Royal Blue
slug: royal-blue
- id: 68d98f2fbafc0fd45651cddc44798dd0
name: Crimson Red
slug: crimson-red
- id: 996cd95c97fd5620d0a374c835b37205
name: Forrest Green
slug: forrest-green
name: T-Shirt
description: A plain t-shirt
slug: t-shirt
default-sku: 66072fb71b89448912e2681c
properties:
id:
type: string
readOnly: true
description: Unique identifier for the Product
example: 580e63fc8c9a982ac9b8b745
cmsLocaleId:
type: string
readOnly: true
example: 653ad57de882f528b32e810e
description: Identifier for the locale of the CMS item
lastPublished:
type: string
format: date-time
readOnly: true
description: The date the Product was last published
example: 2023-03-17T18:47:35.560Z
lastUpdated:
type: string
format: date-time
readOnly: true
description: The date the Product was last updated
example: 2023-03-17T18:47:35.560Z
createdOn:
type: string
format: date-time
readOnly: true
description: The date the Product was created
example: 2023-03-17T18:47:35.560Z
isArchived:
type: boolean
default: false
description: Boolean determining if the Product is set to archived
example: false
isDraft:
type: boolean
default: false
description: Boolean determining if the Product is set to draft
example: false
fieldData:
description: 'Contains content-specific details for a product, covering both standard (e.g., title, description) and custom fields tailored to the product setup.'
type: object
properties:
name:
type: string
description: Name of the Product
example: T-Shirt
slug:
type: string
description: URL structure of the Product in your site.
example: t-shirt
description:
type: string
description: A description of your product
example: A plain cotton t-shirt.
shippable:
type: boolean
description: Boolean determining if the Product is shippable
example: true
sku-properties:
type: array
description: Variant types to include in SKUs
items:
type: object
description: A variant/option type for a SKU
required:
- id
- name
- enum
properties:
id:
type: string
description: Unique identifier for a collection of Product Variants
default: null
example: Color
name:
type: string
description: Name of the collection of Product Variants
example: Color
enum:
description: The individual Product variants that are contained within the collection
type: array
items:
description: Enumerated Product variants/Options for the SKU
type: object
required:
- id
- name
- slug
properties:
id:
type: string
description: Unique identifier for a Product variant/Option
default: null
example:
- royal-blue
- crimson-red
- forrest-green
name:
type: string
description: Name of the Product variant/Option
examples:
- Royal Blue
- Crimson Red
- Forrest Green
slug:
type: string
description: Slug for the Product variant/Option in the Site URL structure
examples:
- royal-blue
- crimson-red
- forrest-green
- null
categories:
type: array
description: The categories your product belongs to.
items:
type: string
tax-category:
type: string
description: Product tax class
enum:
- standard-taxable
- standard-exempt
- books-religious
- books-textbook
- clothing
- clothing-swimwear
- digital-goods
- digital-service
- drugs-non-prescription
- drugs-prescription
- food-bottled-water
- food-candy
- food-groceries
- food-prepared
- food-soda
- food-supplements
- magazine-individual
- magazine-subscription
- service-admission
- service-advertising
- service-dry-cleaning
- service-hairdressing
- service-installation
- service-miscellaneous
- service-parking
- service-printing
- service-professional
- service-repair
- service-training
- standard-exempt
- standard-taxable
default-sku:
type: string
format: objectid
description: The default SKU associated with this product.
ec-product-type:
description: 'Product types. Enums reflect the following values in order: Physical, Digital, Service, Advanced"'
type: string
enum:
- ff42fee0113744f693a764e3431a9cc2
- f22027db68002190aef89a4a2b7ac8a1
- c599e43b1a1c34d5a323aedf75d3adf6
- b6ccc1830db4b1babeb06a9ac5f6dd76
additionalProperties:
type: string
description: Custom fields for your product.
skus:
description: A list of SKU Objects
type: array
items:
description: The SKU object
type: object
properties:
id:
type: string
readOnly: true
format: objectid
description: Unique identifier for the Product
example: 580e63fc8c9a982ac9b8b745
cmsLocaleId:
type: string
readOnly: true
example: 653ad57de882f528b32e810e
description: Identifier for the locale of the CMS item
lastPublished:
type: string
format: date-time
readOnly: true
description: The date the Product was last published
example: 2023-03-17T18:47:35.560Z
lastUpdated:
type: string
format: date-time
readOnly: true
description: The date the Product was last updated
example: 2023-03-17T18:47:35.560Z
createdOn:
type: string
format: date-time
readOnly: true
description: The date the Product was created
example: 2023-03-17T18:47:35.560Z
fieldData:
description: Standard and Custom fields for a SKU
type: object
required:
- name
- slug
- price
properties:
sku-values:
type: object
description: |
A dictionary that maps a SKU property to a SKU value. The key of the dictionary is the SKU property ID, and the value is the SKU value ID.
additionalProperties:
type: string
example:
ff42fee0113744f693a764e3431a9cc2: 64a74715c456e36762fc39a1
name:
type: string
description: Name of the Product
example: Blue T-shirt
slug:
type: string
description: URL structure of the Product in your site.
example: t-shirt-blue
price:
type: object
description: price of SKU
properties:
value:
description: Price of SKU
isRequired: true
type: number
example: 100
unit:
type: string
isRequired: true
description: Currency of Item
example: USD
compare-at-price:
type: object
description: comparison price of SKU
properties:
value:
description: Price of SKU
type: number
example: 100
unit:
type: string
description: Currency of Item
example: USD
ec-sku-billing-method:
type: string
enum:
- one-time
- subscription
ec-sku-subscription-plan:
type: object
properties:
interval:
type: string
description: Interval of subscription renewal
enum:
- day
- week
- month
- year
frequency:
type: number
description: Frequncy of billing within interval
example: 1
trial:
type: number
description: Number of days of a trial
example: 7
plans:
readOnly: true
type: array
items:
type: object
properties:
platform:
type: string
enum:
- stripe
description: The platform of the subscription plan
id:
type: string
description: The unique identifier of the plan
status:
type: string
enum:
- active
- inactive
- canceled
description: The status of the plan
track-inventory:
type: boolean
description: A boolean indicating whether inventory for this product should be tracked.
default: false
quantity:
type: number
description: Quantity of SKU that will be tracked as items are ordered.
example: 10
additionalProperties:
type: string
description: Custom fields for your SKU.
'400':
description: Request body was incorrectly formatted. Likely invalid JSON being sent up.
'401':
description: Provided access token is invalid or does not have access to requested resource
'403':
description: 'Provided access token is valid, but is missing the required scopes.'
content:
application/json:
schema:
type: object
properties:
status:
type: integer
example: 403
message:
type: string
publicErrorCode:
type: string
externalReference:
type: string
nullable: true
details:
type: array
items:
type: string
'404':
description: Requested resource not found
'409':
description: The site does not have ecommerce enabled.
content:
application/json:
schema:
allOf:
- example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
details:
type: array
description: Array of errors
items:
type:
- string
- object
- properties:
code:
type: string
description: Error code
enum:
- ecommerce_not_enabled
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
'/sites/{site_id}/products/{product_id}':
get:
x-fern-sdk-group-name: products
x-fern-sdk-method-name: get
security:
- OAuth2:
- 'ecommerce:read'
operationId: get-product
summary: Get Product and SKUs
description: |
Retrieve a single product by its id. All of its SKUs will also be retrieved.
Required scope | `ecommerce:read`
tags:
- Products & SKUs
parameters:
- name: site_id
in: path
description: Unique identifier for a Site
example: 580e63e98c9a982ac9b8b741
required: true
schema:
type: string
format: objectid
default: null
- name: product_id
in: path
description: Unique identifier for a Product
example: 580e63fc8c9a982ac9b8b745
required: true
schema:
type: string
format: objectid
responses:
'200':
description: Request was successful
content:
application/json:
schema:
description: A product and its SKUs.
type: object
properties:
product:
description: The Product object
type: object
example:
id: 660eb7a486d1d6e0412292d7
cmsLocaleId: 653ad57de882f528b32e810e
lastPublished: '2024-04-04T14:24:19.467Z'
lastUpdated: '2024-04-04T14:30:19.282Z'
createdOn: '2024-04-04T14:22:28.547Z'
isArchived: false
isDraft: false
fieldData:
tax-category: standard-taxable
shippable: true
ec-product-type: b6ccc1830db4b1babeb06a9ac5f6dd76
sku-properties:
- id: 31b77fa66fa376c2c0abb458d5be39fb
name: Size
enum:
- id: 8d21a625d655ab260e9941c27180c75b
name: Small
slug: small
- id: ecdca17106ad86c0dfe3b5f3ac8be6c9
name: Medium
slug: medium
- id: ec7877d6137ecf7ec86f726c135b1812
name: Large
slug: large
- id: 74d3738e62c568d5634dd6989daec5ec
name: Color
enum:
- id: e539b0d6c3a609cd06ddb2da804f68f0
name: Royal Blue
slug: royal-blue
- id: 68d98f2fbafc0fd45651cddc44798dd0
name: Crimson Red
slug: crimson-red
- id: 996cd95c97fd5620d0a374c835b37205
name: Forrest Green
slug: forrest-green
name: T-Shirt
description: A plain t-shirt
slug: t-shirt
default-sku: 66072fb71b89448912e2681c
properties:
id:
type: string
readOnly: true
description: Unique identifier for the Product
example: 580e63fc8c9a982ac9b8b745
cmsLocaleId:
type: string
readOnly: true
example: 653ad57de882f528b32e810e
description: Identifier for the locale of the CMS item
lastPublished:
type: string
format: date-time
readOnly: true
description: The date the Product was last published
example: 2023-03-17T18:47:35.560Z
lastUpdated:
type: string
format: date-time
readOnly: true
description: The date the Product was last updated
example: 2023-03-17T18:47:35.560Z
createdOn:
type: string
format: date-time
readOnly: true
description: The date the Product was created
example: 2023-03-17T18:47:35.560Z
isArchived:
type: boolean
default: false
description: Boolean determining if the Product is set to archived
example: false
isDraft:
type: boolean
default: false
description: Boolean determining if the Product is set to draft
example: false
fieldData:
description: 'Contains content-specific details for a product, covering both standard (e.g., title, description) and custom fields tailored to the product setup.'
type: object
properties:
name:
type: string
description: Name of the Product
example: T-Shirt
slug:
type: string
description: URL structure of the Product in your site.
example: t-shirt
description:
type: string
description: A description of your product
example: A plain cotton t-shirt.
shippable:
type: boolean
description: Boolean determining if the Product is shippable
example: true
sku-properties:
type: array
description: Variant types to include in SKUs
items:
type: object
description: A variant/option type for a SKU
required:
- id
- name
- enum
properties:
id:
type: string
description: Unique identifier for a collection of Product Variants
default: null
example: Color
name:
type: string
description: Name of the collection of Product Variants
example: Color
enum:
description: The individual Product variants that are contained within the collection
type: array
items:
description: Enumerated Product variants/Options for the SKU
type: object
required:
- id
- name
- slug
properties:
id:
type: string
description: Unique identifier for a Product variant/Option
default: null
example:
- royal-blue
- crimson-red
- forrest-green
name:
type: string
description: Name of the Product variant/Option
examples:
- Royal Blue
- Crimson Red
- Forrest Green
slug:
type: string
description: Slug for the Product variant/Option in the Site URL structure
examples:
- royal-blue
- crimson-red
- forrest-green
- null
categories:
type: array
description: The categories your product belongs to.
items:
type: string
tax-category:
type: string
description: Product tax class
enum:
- standard-taxable
- standard-exempt
- books-religious
- books-textbook
- clothing
- clothing-swimwear
- digital-goods
- digital-service
- drugs-non-prescription
- drugs-prescription
- food-bottled-water
- food-candy
- food-groceries
- food-prepared
- food-soda
- food-supplements
- magazine-individual
- magazine-subscription
- service-admission
- service-advertising
- service-dry-cleaning
- service-hairdressing
- service-installation
- service-miscellaneous
- service-parking
- service-printing
- service-professional
- service-repair
- service-training
- standard-exempt
- standard-taxable
default-sku:
type: string
format: objectid
description: The default SKU associated with this product.
ec-product-type:
description: 'Product types. Enums reflect the following values in order: Physical, Digital, Service, Advanced"'
type: string
enum:
- ff42fee0113744f693a764e3431a9cc2
- f22027db68002190aef89a4a2b7ac8a1
- c599e43b1a1c34d5a323aedf75d3adf6
- b6ccc1830db4b1babeb06a9ac5f6dd76
additionalProperties:
type: string
description: Custom fields for your product.
skus:
description: A list of SKU Objects
type: array
items:
description: The SKU object
type: object
properties:
id:
type: string
readOnly: true
format: objectid
description: Unique identifier for the Product
example: 580e63fc8c9a982ac9b8b745
cmsLocaleId:
type: string
readOnly: true
example: 653ad57de882f528b32e810e
description: Identifier for the locale of the CMS item
lastPublished:
type: string
format: date-time
readOnly: true
description: The date the Product was last published
example: 2023-03-17T18:47:35.560Z
lastUpdated:
type: string
format: date-time
readOnly: true
description: The date the Product was last updated
example: 2023-03-17T18:47:35.560Z
createdOn:
type: string
format: date-time
readOnly: true
description: The date the Product was created
example: 2023-03-17T18:47:35.560Z
fieldData:
description: Standard and Custom fields for a SKU
type: object
required:
- name
- slug
- price
properties:
sku-values:
type: object
description: |
A dictionary that maps a SKU property to a SKU value. The key of the dictionary is the SKU property ID, and the value is the SKU value ID.
additionalProperties:
type: string
example:
ff42fee0113744f693a764e3431a9cc2: 64a74715c456e36762fc39a1
name:
type: string
description: Name of the Product
example: Blue T-shirt
slug:
type: string
description: URL structure of the Product in your site.
example: t-shirt-blue
price:
type: object
description: price of SKU
properties:
value:
description: Price of SKU
isRequired: true
type: number
example: 100
unit:
type: string
isRequired: true
description: Currency of Item
example: USD
compare-at-price:
type: object
description: comparison price of SKU
properties:
value:
description: Price of SKU
type: number
example: 100
unit:
type: string
description: Currency of Item
example: USD
ec-sku-billing-method:
type: string
enum:
- one-time
- subscription
ec-sku-subscription-plan:
type: object
properties:
interval:
type: string
description: Interval of subscription renewal
enum:
- day
- week
- month
- year
frequency:
type: number
description: Frequncy of billing within interval
example: 1
trial:
type: number
description: Number of days of a trial
example: 7
plans:
readOnly: true
type: array
items:
type: object
properties:
platform:
type: string
enum:
- stripe
description: The platform of the subscription plan
id:
type: string
description: The unique identifier of the plan
status:
type: string
enum:
- active
- inactive
- canceled
description: The status of the plan
track-inventory:
type: boolean
description: A boolean indicating whether inventory for this product should be tracked.
default: false
quantity:
type: number
description: Quantity of SKU that will be tracked as items are ordered.
example: 10
additionalProperties:
type: string
description: Custom fields for your SKU.
'400':
description: Request body was incorrectly formatted. Likely invalid JSON being sent up.
'401':
description: Provided access token is invalid or does not have access to requested resource
'403':
description: 'Provided access token is valid, but is missing the required scopes.'
content:
application/json:
schema:
type: object
properties:
status:
type: integer
example: 403
message:
type: string
publicErrorCode:
type: string
externalReference:
type: string
nullable: true
details:
type: array
items:
type: string
'404':
description: Requested resource not found
'409':
description: The site does not have ecommerce enabled.
content:
application/json:
schema:
allOf:
- example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
details:
type: array
description: Array of errors
items:
type:
- string
- object
- properties:
code:
type: string
description: Error code
enum:
- ecommerce_not_enabled
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
patch:
x-fern-sdk-group-name: products
x-fern-sdk-method-name: update
security:
- OAuth2:
- 'ecommerce:write'
operationId: update-product
summary: Update Product
description: |
Updating an existing Product will set the product type to `Advanced`. The product type is used to determine which Product and SKU fields are shown to users in the `Designer` and the `Editor`. Setting it to `Advanced` ensures that all Product and SKU fields will be shown. The product type can be edited in the `Designer` or the `Editor`.
Required scope | `ecommerce:write`
tags:
- Products & SKUs
parameters:
- name: site_id
in: path
description: Unique identifier for a Site
example: 580e63e98c9a982ac9b8b741
required: true
schema:
type: string
format: objectid
default: null
- name: product_id
in: path
description: Unique identifier for a Product
example: 580e63fc8c9a982ac9b8b745
required: true
schema:
type: string
format: objectid
requestBody:
description: The product to update
required: true
content:
application/json:
schema:
description: The Product and SKU to create
type: object
example:
id: 660eb7a486d1d6e0412292d7
cmsLocaleId: 653ad57de882f528b32e810e
lastPublished: '2024-04-04T14:24:19.467Z'
lastUpdated: '2024-04-04T14:30:19.282Z'
createdOn: '2024-04-04T14:22:28.547Z'
isArchived: false
isDraft: false
fieldData:
tax-category: standard-taxable
shippable: true
ec-product-type: b6ccc1830db4b1babeb06a9ac5f6dd76
sku-properties:
- id: 31b77fa66fa376c2c0abb458d5be39fb
name: Size
enum:
- id: 8d21a625d655ab260e9941c27180c75b
name: Small
slug: small
- id: ecdca17106ad86c0dfe3b5f3ac8be6c9
name: Medium
slug: medium
- id: ec7877d6137ecf7ec86f726c135b1812
name: Large
slug: large
- id: 74d3738e62c568d5634dd6989daec5ec
name: Color
enum:
- id: e539b0d6c3a609cd06ddb2da804f68f0
name: Royal Blue
slug: royal-blue
- id: 68d98f2fbafc0fd45651cddc44798dd0
name: Crimson Red
slug: crimson-red
- id: 996cd95c97fd5620d0a374c835b37205
name: Forrest Green
slug: forrest-green
name: T-Shirt
description: A plain t-shirt
slug: t-shirt
default-sku: 66072fb71b89448912e2681c
properties:
publishStatus:
description: Indicate whether your Product should be set as "staging" or "live"
type: string
enum:
- staging
- live
default: staging
example: staging
product:
description: The Product object
type: object
example:
id: 660eb7a486d1d6e0412292d7
cmsLocaleId: 653ad57de882f528b32e810e
lastPublished: '2024-04-04T14:24:19.467Z'
lastUpdated: '2024-04-04T14:30:19.282Z'
createdOn: '2024-04-04T14:22:28.547Z'
isArchived: false
isDraft: false
fieldData:
tax-category: standard-taxable
shippable: true
ec-product-type: b6ccc1830db4b1babeb06a9ac5f6dd76
sku-properties:
- id: 31b77fa66fa376c2c0abb458d5be39fb
name: Size
enum:
- id: 8d21a625d655ab260e9941c27180c75b
name: Small
slug: small
- id: ecdca17106ad86c0dfe3b5f3ac8be6c9
name: Medium
slug: medium
- id: ec7877d6137ecf7ec86f726c135b1812
name: Large
slug: large
- id: 74d3738e62c568d5634dd6989daec5ec
name: Color
enum:
- id: e539b0d6c3a609cd06ddb2da804f68f0
name: Royal Blue
slug: royal-blue
- id: 68d98f2fbafc0fd45651cddc44798dd0
name: Crimson Red
slug: crimson-red
- id: 996cd95c97fd5620d0a374c835b37205
name: Forrest Green
slug: forrest-green
name: T-Shirt
description: A plain t-shirt
slug: t-shirt
default-sku: 66072fb71b89448912e2681c
properties:
id:
type: string
readOnly: true
description: Unique identifier for the Product
example: 580e63fc8c9a982ac9b8b745
cmsLocaleId:
type: string
readOnly: true
example: 653ad57de882f528b32e810e
description: Identifier for the locale of the CMS item
lastPublished:
type: string
format: date-time
readOnly: true
description: The date the Product was last published
example: 2023-03-17T18:47:35.560Z
lastUpdated:
type: string
format: date-time
readOnly: true
description: The date the Product was last updated
example: 2023-03-17T18:47:35.560Z
createdOn:
type: string
format: date-time
readOnly: true
description: The date the Product was created
example: 2023-03-17T18:47:35.560Z
isArchived:
type: boolean
default: false
description: Boolean determining if the Product is set to archived
example: false
isDraft:
type: boolean
default: false
description: Boolean determining if the Product is set to draft
example: false
fieldData:
description: 'Contains content-specific details for a product, covering both standard (e.g., title, description) and custom fields tailored to the product setup.'
type: object
properties:
name:
type: string
description: Name of the Product
example: T-Shirt
slug:
type: string
description: URL structure of the Product in your site.
example: t-shirt
description:
type: string
description: A description of your product
example: A plain cotton t-shirt.
shippable:
type: boolean
description: Boolean determining if the Product is shippable
example: true
sku-properties:
type: array
description: Variant types to include in SKUs
items:
type: object
description: A variant/option type for a SKU
required:
- id
- name
- enum
properties:
id:
type: string
description: Unique identifier for a collection of Product Variants
default: null
example: Color
name:
type: string
description: Name of the collection of Product Variants
example: Color
enum:
description: The individual Product variants that are contained within the collection
type: array
items:
description: Enumerated Product variants/Options for the SKU
type: object
required:
- id
- name
- slug
properties:
id:
type: string
description: Unique identifier for a Product variant/Option
default: null
example:
- royal-blue
- crimson-red
- forrest-green
name:
type: string
description: Name of the Product variant/Option
examples:
- Royal Blue
- Crimson Red
- Forrest Green
slug:
type: string
description: Slug for the Product variant/Option in the Site URL structure
examples:
- royal-blue
- crimson-red
- forrest-green
- null
categories:
type: array
description: The categories your product belongs to.
items:
type: string
tax-category:
type: string
description: Product tax class
enum:
- standard-taxable
- standard-exempt
- books-religious
- books-textbook
- clothing
- clothing-swimwear
- digital-goods
- digital-service
- drugs-non-prescription
- drugs-prescription
- food-bottled-water
- food-candy
- food-groceries
- food-prepared
- food-soda
- food-supplements
- magazine-individual
- magazine-subscription
- service-admission
- service-advertising
- service-dry-cleaning
- service-hairdressing
- service-installation
- service-miscellaneous
- service-parking
- service-printing
- service-professional
- service-repair
- service-training
- standard-exempt
- standard-taxable
default-sku:
type: string
format: objectid
description: The default SKU associated with this product.
ec-product-type:
description: 'Product types. Enums reflect the following values in order: Physical, Digital, Service, Advanced"'
type: string
enum:
- ff42fee0113744f693a764e3431a9cc2
- f22027db68002190aef89a4a2b7ac8a1
- c599e43b1a1c34d5a323aedf75d3adf6
- b6ccc1830db4b1babeb06a9ac5f6dd76
additionalProperties:
type: string
description: Custom fields for your product.
sku:
description: The SKU object
type: object
properties:
id:
type: string
readOnly: true
format: objectid
description: Unique identifier for the Product
example: 580e63fc8c9a982ac9b8b745
cmsLocaleId:
type: string
readOnly: true
example: 653ad57de882f528b32e810e
description: Identifier for the locale of the CMS item
lastPublished:
type: string
format: date-time
readOnly: true
description: The date the Product was last published
example: 2023-03-17T18:47:35.560Z
lastUpdated:
type: string
format: date-time
readOnly: true
description: The date the Product was last updated
example: 2023-03-17T18:47:35.560Z
createdOn:
type: string
format: date-time
readOnly: true
description: The date the Product was created
example: 2023-03-17T18:47:35.560Z
fieldData:
description: Standard and Custom fields for a SKU
type: object
required:
- name
- slug
- price
properties:
sku-values:
type: object
description: |
A dictionary that maps a SKU property to a SKU value. The key of the dictionary is the SKU property ID, and the value is the SKU value ID.
additionalProperties:
type: string
example:
ff42fee0113744f693a764e3431a9cc2: 64a74715c456e36762fc39a1
name:
type: string
description: Name of the Product
example: Blue T-shirt
slug:
type: string
description: URL structure of the Product in your site.
example: t-shirt-blue
price:
type: object
description: price of SKU
properties:
value:
description: Price of SKU
isRequired: true
type: number
example: 100
unit:
type: string
isRequired: true
description: Currency of Item
example: USD
compare-at-price:
type: object
description: comparison price of SKU
properties:
value:
description: Price of SKU
type: number
example: 100
unit:
type: string
description: Currency of Item
example: USD
ec-sku-billing-method:
type: string
enum:
- one-time
- subscription
ec-sku-subscription-plan:
type: object
properties:
interval:
type: string
description: Interval of subscription renewal
enum:
- day
- week
- month
- year
frequency:
type: number
description: Frequncy of billing within interval
example: 1
trial:
type: number
description: Number of days of a trial
example: 7
plans:
readOnly: true
type: array
items:
type: object
properties:
platform:
type: string
enum:
- stripe
description: The platform of the subscription plan
id:
type: string
description: The unique identifier of the plan
status:
type: string
enum:
- active
- inactive
- canceled
description: The status of the plan
track-inventory:
type: boolean
description: A boolean indicating whether inventory for this product should be tracked.
default: false
quantity:
type: number
description: Quantity of SKU that will be tracked as items are ordered.
example: 10
additionalProperties:
type: string
description: Custom fields for your SKU.
responses:
'200':
description: Request was successful
content:
application/json:
schema:
description: The Product object
type: object
example:
id: 660eb7a486d1d6e0412292d7
cmsLocaleId: 653ad57de882f528b32e810e
lastPublished: '2024-04-04T14:24:19.467Z'
lastUpdated: '2024-04-04T14:30:19.282Z'
createdOn: '2024-04-04T14:22:28.547Z'
isArchived: false
isDraft: false
fieldData:
tax-category: standard-taxable
shippable: true
ec-product-type: b6ccc1830db4b1babeb06a9ac5f6dd76
sku-properties:
- id: 31b77fa66fa376c2c0abb458d5be39fb
name: Size
enum:
- id: 8d21a625d655ab260e9941c27180c75b
name: Small
slug: small
- id: ecdca17106ad86c0dfe3b5f3ac8be6c9
name: Medium
slug: medium
- id: ec7877d6137ecf7ec86f726c135b1812
name: Large
slug: large
- id: 74d3738e62c568d5634dd6989daec5ec
name: Color
enum:
- id: e539b0d6c3a609cd06ddb2da804f68f0
name: Royal Blue
slug: royal-blue
- id: 68d98f2fbafc0fd45651cddc44798dd0
name: Crimson Red
slug: crimson-red
- id: 996cd95c97fd5620d0a374c835b37205
name: Forrest Green
slug: forrest-green
name: T-Shirt
description: A plain t-shirt
slug: t-shirt
default-sku: 66072fb71b89448912e2681c
properties:
id:
type: string
readOnly: true
description: Unique identifier for the Product
example: 580e63fc8c9a982ac9b8b745
cmsLocaleId:
type: string
readOnly: true
example: 653ad57de882f528b32e810e
description: Identifier for the locale of the CMS item
lastPublished:
type: string
format: date-time
readOnly: true
description: The date the Product was last published
example: 2023-03-17T18:47:35.560Z
lastUpdated:
type: string
format: date-time
readOnly: true
description: The date the Product was last updated
example: 2023-03-17T18:47:35.560Z
createdOn:
type: string
format: date-time
readOnly: true
description: The date the Product was created
example: 2023-03-17T18:47:35.560Z
isArchived:
type: boolean
default: false
description: Boolean determining if the Product is set to archived
example: false
isDraft:
type: boolean
default: false
description: Boolean determining if the Product is set to draft
example: false
fieldData:
description: 'Contains content-specific details for a product, covering both standard (e.g., title, description) and custom fields tailored to the product setup.'
type: object
properties:
name:
type: string
description: Name of the Product
example: T-Shirt
slug:
type: string
description: URL structure of the Product in your site.
example: t-shirt
description:
type: string
description: A description of your product
example: A plain cotton t-shirt.
shippable:
type: boolean
description: Boolean determining if the Product is shippable
example: true
sku-properties:
type: array
description: Variant types to include in SKUs
items:
type: object
description: A variant/option type for a SKU
required:
- id
- name
- enum
properties:
id:
type: string
description: Unique identifier for a collection of Product Variants
default: null
example: Color
name:
type: string
description: Name of the collection of Product Variants
example: Color
enum:
description: The individual Product variants that are contained within the collection
type: array
items:
description: Enumerated Product variants/Options for the SKU
type: object
required:
- id
- name
- slug
properties:
id:
type: string
description: Unique identifier for a Product variant/Option
default: null
example:
- royal-blue
- crimson-red
- forrest-green
name:
type: string
description: Name of the Product variant/Option
examples:
- Royal Blue
- Crimson Red
- Forrest Green
slug:
type: string
description: Slug for the Product variant/Option in the Site URL structure
examples:
- royal-blue
- crimson-red
- forrest-green
- null
categories:
type: array
description: The categories your product belongs to.
items:
type: string
tax-category:
type: string
description: Product tax class
enum:
- standard-taxable
- standard-exempt
- books-religious
- books-textbook
- clothing
- clothing-swimwear
- digital-goods
- digital-service
- drugs-non-prescription
- drugs-prescription
- food-bottled-water
- food-candy
- food-groceries
- food-prepared
- food-soda
- food-supplements
- magazine-individual
- magazine-subscription
- service-admission
- service-advertising
- service-dry-cleaning
- service-hairdressing
- service-installation
- service-miscellaneous
- service-parking
- service-printing
- service-professional
- service-repair
- service-training
- standard-exempt
- standard-taxable
default-sku:
type: string
format: objectid
description: The default SKU associated with this product.
ec-product-type:
description: 'Product types. Enums reflect the following values in order: Physical, Digital, Service, Advanced"'
type: string
enum:
- ff42fee0113744f693a764e3431a9cc2
- f22027db68002190aef89a4a2b7ac8a1
- c599e43b1a1c34d5a323aedf75d3adf6
- b6ccc1830db4b1babeb06a9ac5f6dd76
additionalProperties:
type: string
description: Custom fields for your product.
'400':
description: Request body was incorrectly formatted. Likely invalid JSON being sent up.
'401':
description: Provided access token is invalid or does not have access to requested resource
'403':
description: 'Provided access token is valid, but is missing the required scopes.'
content:
application/json:
schema:
type: object
properties:
status:
type: integer
example: 403
message:
type: string
publicErrorCode:
type: string
externalReference:
type: string
nullable: true
details:
type: array
items:
type: string
'404':
description: Requested resource not found
'409':
description: The site does not have ecommerce enabled.
content:
application/json:
schema:
allOf:
- example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
details:
type: array
description: Array of errors
items:
type:
- string
- object
- properties:
code:
type: string
description: Error code
enum:
- ecommerce_not_enabled
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
'/sites/{site_id}/products/{product_id}/skus':
post:
x-fern-sdk-group-name: products
x-fern-sdk-method-name: create-sku
security:
- OAuth2:
- 'ecommerce:write'
operationId: create-skus
summary: Create SKU
description: |
Create additional SKUs to cover every variant of your Product. The Default SKU already counts as one of the variants.
Creating additional SKUs will set the product type to `Advanced` for the product associated with the SKUs. The product type is used to determine which Product and SKU fields are shown to users in the `Designer` and the `Editor`. Setting it to `Advanced` ensures that all Product and SKU fields will be shown. The product type can be edited in the `Designer` or the `Editor`.
Required scope | `ecommerce:write`
tags:
- Products & SKUs
parameters:
- name: site_id
in: path
description: Unique identifier for a Site
example: 580e63e98c9a982ac9b8b741
required: true
schema:
type: string
format: objectid
default: null
- name: product_id
in: path
description: Unique identifier for a Product
example: 580e63fc8c9a982ac9b8b745
required: true
schema:
type: string
format: objectid
requestBody:
description: The SKUs to add
required: true
content:
application/json:
schema:
description: The SKU to create
required:
- skus
properties:
publishStatus:
description: Indicate whether your Product should be set as "staging" or "live"
type: string
enum:
- staging
- live
default: staging
example: staging
skus:
type: array
description: An array of the SKU data your are adding
items:
description: The SKU object
type: object
properties:
id:
type: string
readOnly: true
format: objectid
description: Unique identifier for the Product
example: 580e63fc8c9a982ac9b8b745
cmsLocaleId:
type: string
readOnly: true
example: 653ad57de882f528b32e810e
description: Identifier for the locale of the CMS item
lastPublished:
type: string
format: date-time
readOnly: true
description: The date the Product was last published
example: 2023-03-17T18:47:35.560Z
lastUpdated:
type: string
format: date-time
readOnly: true
description: The date the Product was last updated
example: 2023-03-17T18:47:35.560Z
createdOn:
type: string
format: date-time
readOnly: true
description: The date the Product was created
example: 2023-03-17T18:47:35.560Z
fieldData:
description: Standard and Custom fields for a SKU
type: object
required:
- name
- slug
- price
properties:
sku-values:
type: object
description: |
A dictionary that maps a SKU property to a SKU value. The key of the dictionary is the SKU property ID, and the value is the SKU value ID.
additionalProperties:
type: string
example:
ff42fee0113744f693a764e3431a9cc2: 64a74715c456e36762fc39a1
name:
type: string
description: Name of the Product
example: Blue T-shirt
slug:
type: string
description: URL structure of the Product in your site.
example: t-shirt-blue
price:
type: object
description: price of SKU
properties:
value:
description: Price of SKU
isRequired: true
type: number
example: 100
unit:
type: string
isRequired: true
description: Currency of Item
example: USD
compare-at-price:
type: object
description: comparison price of SKU
properties:
value:
description: Price of SKU
type: number
example: 100
unit:
type: string
description: Currency of Item
example: USD
ec-sku-billing-method:
type: string
enum:
- one-time
- subscription
ec-sku-subscription-plan:
type: object
properties:
interval:
type: string
description: Interval of subscription renewal
enum:
- day
- week
- month
- year
frequency:
type: number
description: Frequncy of billing within interval
example: 1
trial:
type: number
description: Number of days of a trial
example: 7
plans:
readOnly: true
type: array
items:
type: object
properties:
platform:
type: string
enum:
- stripe
description: The platform of the subscription plan
id:
type: string
description: The unique identifier of the plan
status:
type: string
enum:
- active
- inactive
- canceled
description: The status of the plan
track-inventory:
type: boolean
description: A boolean indicating whether inventory for this product should be tracked.
default: false
quantity:
type: number
description: Quantity of SKU that will be tracked as items are ordered.
example: 10
additionalProperties:
type: string
description: Custom fields for your SKU.
responses:
'200':
description: Request was successful
content:
application/json:
schema:
type: object
properties:
skus:
type: array
items:
description: The SKU object
type: object
properties:
id:
type: string
readOnly: true
format: objectid
description: Unique identifier for the Product
example: 580e63fc8c9a982ac9b8b745
cmsLocaleId:
type: string
readOnly: true
example: 653ad57de882f528b32e810e
description: Identifier for the locale of the CMS item
lastPublished:
type: string
format: date-time
readOnly: true
description: The date the Product was last published
example: 2023-03-17T18:47:35.560Z
lastUpdated:
type: string
format: date-time
readOnly: true
description: The date the Product was last updated
example: 2023-03-17T18:47:35.560Z
createdOn:
type: string
format: date-time
readOnly: true
description: The date the Product was created
example: 2023-03-17T18:47:35.560Z
fieldData:
description: Standard and Custom fields for a SKU
type: object
required:
- name
- slug
- price
properties:
sku-values:
type: object
description: |
A dictionary that maps a SKU property to a SKU value. The key of the dictionary is the SKU property ID, and the value is the SKU value ID.
additionalProperties:
type: string
example:
ff42fee0113744f693a764e3431a9cc2: 64a74715c456e36762fc39a1
name:
type: string
description: Name of the Product
example: Blue T-shirt
slug:
type: string
description: URL structure of the Product in your site.
example: t-shirt-blue
price:
type: object
description: price of SKU
properties:
value:
description: Price of SKU
isRequired: true
type: number
example: 100
unit:
type: string
isRequired: true
description: Currency of Item
example: USD
compare-at-price:
type: object
description: comparison price of SKU
properties:
value:
description: Price of SKU
type: number
example: 100
unit:
type: string
description: Currency of Item
example: USD
ec-sku-billing-method:
type: string
enum:
- one-time
- subscription
ec-sku-subscription-plan:
type: object
properties:
interval:
type: string
description: Interval of subscription renewal
enum:
- day
- week
- month
- year
frequency:
type: number
description: Frequncy of billing within interval
example: 1
trial:
type: number
description: Number of days of a trial
example: 7
plans:
readOnly: true
type: array
items:
type: object
properties:
platform:
type: string
enum:
- stripe
description: The platform of the subscription plan
id:
type: string
description: The unique identifier of the plan
status:
type: string
enum:
- active
- inactive
- canceled
description: The status of the plan
track-inventory:
type: boolean
description: A boolean indicating whether inventory for this product should be tracked.
default: false
quantity:
type: number
description: Quantity of SKU that will be tracked as items are ordered.
example: 10
additionalProperties:
type: string
description: Custom fields for your SKU.
'400':
description: Request body was incorrectly formatted. Likely invalid JSON being sent up.
'401':
description: Provided access token is invalid or does not have access to requested resource
'403':
description: 'Provided access token is valid, but is missing the required scopes.'
content:
application/json:
schema:
type: object
properties:
status:
type: integer
example: 403
message:
type: string
publicErrorCode:
type: string
externalReference:
type: string
nullable: true
details:
type: array
items:
type: string
'404':
description: Requested resource not found
'409':
description: The site does not have ecommerce enabled.
content:
application/json:
schema:
allOf:
- example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
details:
type: array
description: Array of errors
items:
type:
- string
- object
- properties:
code:
type: string
description: Error code
enum:
- ecommerce_not_enabled
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
'/sites/{site_id}/products/{product_id}/skus/{sku_id}':
patch:
x-fern-sdk-group-name: products
x-fern-sdk-method-name: update-sku
security:
- OAuth2:
- 'ecommerce:write'
operationId: update-sku
summary: Update SKU
description: |
Updating an existing SKU will set the product type to `Advanced` for the product associated with the SKU. The product type is used to determine which Product and SKU fields are shown to users in the `Designer` and the `Editor`. Setting it to `Advanced` ensures that all Product and SKU fields will be shown. The product type can be edited in the `Designer` or the `Editor`.
Required scope | `ecommerce:write`
tags:
- Products & SKUs
parameters:
- name: site_id
in: path
description: Unique identifier for a Site
example: 580e63e98c9a982ac9b8b741
required: true
schema:
type: string
format: objectid
default: null
- name: product_id
in: path
description: Unique identifier for a Product
example: 580e63fc8c9a982ac9b8b745
required: true
schema:
type: string
format: objectid
- name: sku_id
in: path
description: Unique identifier for a SKU
example: 5e8518516e147040726cc415
required: true
schema:
type: string
format: objectid
requestBody:
description: The SKU to update
required: true
content:
application/json:
schema:
description: The updated SKU
required:
- sku
properties:
publishStatus:
description: Indicate whether your Product should be set as "staging" or "live"
type: string
enum:
- staging
- live
default: staging
example: staging
sku:
description: The SKU object
type: object
properties:
id:
type: string
readOnly: true
format: objectid
description: Unique identifier for the Product
example: 580e63fc8c9a982ac9b8b745
cmsLocaleId:
type: string
readOnly: true
example: 653ad57de882f528b32e810e
description: Identifier for the locale of the CMS item
lastPublished:
type: string
format: date-time
readOnly: true
description: The date the Product was last published
example: 2023-03-17T18:47:35.560Z
lastUpdated:
type: string
format: date-time
readOnly: true
description: The date the Product was last updated
example: 2023-03-17T18:47:35.560Z
createdOn:
type: string
format: date-time
readOnly: true
description: The date the Product was created
example: 2023-03-17T18:47:35.560Z
fieldData:
description: Standard and Custom fields for a SKU
type: object
required:
- name
- slug
- price
properties:
sku-values:
type: object
description: |
A dictionary that maps a SKU property to a SKU value. The key of the dictionary is the SKU property ID, and the value is the SKU value ID.
additionalProperties:
type: string
example:
ff42fee0113744f693a764e3431a9cc2: 64a74715c456e36762fc39a1
name:
type: string
description: Name of the Product
example: Blue T-shirt
slug:
type: string
description: URL structure of the Product in your site.
example: t-shirt-blue
price:
type: object
description: price of SKU
properties:
value:
description: Price of SKU
isRequired: true
type: number
example: 100
unit:
type: string
isRequired: true
description: Currency of Item
example: USD
compare-at-price:
type: object
description: comparison price of SKU
properties:
value:
description: Price of SKU
type: number
example: 100
unit:
type: string
description: Currency of Item
example: USD
ec-sku-billing-method:
type: string
enum:
- one-time
- subscription
ec-sku-subscription-plan:
type: object
properties:
interval:
type: string
description: Interval of subscription renewal
enum:
- day
- week
- month
- year
frequency:
type: number
description: Frequncy of billing within interval
example: 1
trial:
type: number
description: Number of days of a trial
example: 7
plans:
readOnly: true
type: array
items:
type: object
properties:
platform:
type: string
enum:
- stripe
description: The platform of the subscription plan
id:
type: string
description: The unique identifier of the plan
status:
type: string
enum:
- active
- inactive
- canceled
description: The status of the plan
track-inventory:
type: boolean
description: A boolean indicating whether inventory for this product should be tracked.
default: false
quantity:
type: number
description: Quantity of SKU that will be tracked as items are ordered.
example: 10
additionalProperties:
type: string
description: Custom fields for your SKU.
responses:
'200':
description: Request was successful
content:
application/json:
schema:
description: The SKU object
type: object
properties:
id:
type: string
readOnly: true
format: objectid
description: Unique identifier for the Product
example: 580e63fc8c9a982ac9b8b745
cmsLocaleId:
type: string
readOnly: true
example: 653ad57de882f528b32e810e
description: Identifier for the locale of the CMS item
lastPublished:
type: string
format: date-time
readOnly: true
description: The date the Product was last published
example: 2023-03-17T18:47:35.560Z
lastUpdated:
type: string
format: date-time
readOnly: true
description: The date the Product was last updated
example: 2023-03-17T18:47:35.560Z
createdOn:
type: string
format: date-time
readOnly: true
description: The date the Product was created
example: 2023-03-17T18:47:35.560Z
fieldData:
description: Standard and Custom fields for a SKU
type: object
required:
- name
- slug
- price
properties:
sku-values:
type: object
description: |
A dictionary that maps a SKU property to a SKU value. The key of the dictionary is the SKU property ID, and the value is the SKU value ID.
additionalProperties:
type: string
example:
ff42fee0113744f693a764e3431a9cc2: 64a74715c456e36762fc39a1
name:
type: string
description: Name of the Product
example: Blue T-shirt
slug:
type: string
description: URL structure of the Product in your site.
example: t-shirt-blue
price:
type: object
description: price of SKU
properties:
value:
description: Price of SKU
isRequired: true
type: number
example: 100
unit:
type: string
isRequired: true
description: Currency of Item
example: USD
compare-at-price:
type: object
description: comparison price of SKU
properties:
value:
description: Price of SKU
type: number
example: 100
unit:
type: string
description: Currency of Item
example: USD
ec-sku-billing-method:
type: string
enum:
- one-time
- subscription
ec-sku-subscription-plan:
type: object
properties:
interval:
type: string
description: Interval of subscription renewal
enum:
- day
- week
- month
- year
frequency:
type: number
description: Frequncy of billing within interval
example: 1
trial:
type: number
description: Number of days of a trial
example: 7
plans:
readOnly: true
type: array
items:
type: object
properties:
platform:
type: string
enum:
- stripe
description: The platform of the subscription plan
id:
type: string
description: The unique identifier of the plan
status:
type: string
enum:
- active
- inactive
- canceled
description: The status of the plan
track-inventory:
type: boolean
description: A boolean indicating whether inventory for this product should be tracked.
default: false
quantity:
type: number
description: Quantity of SKU that will be tracked as items are ordered.
example: 10
additionalProperties:
type: string
description: Custom fields for your SKU.
'400':
description: Request body was incorrectly formatted. Likely invalid JSON being sent up.
'401':
description: Provided access token is invalid or does not have access to requested resource
'403':
description: 'Provided access token is valid, but is missing the required scopes.'
content:
application/json:
schema:
type: object
properties:
status:
type: integer
example: 403
message:
type: string
publicErrorCode:
type: string
externalReference:
type: string
nullable: true
details:
type: array
items:
type: string
'404':
description: Requested resource not found
'409':
description: The site does not have ecommerce enabled.
content:
application/json:
schema:
allOf:
- example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
details:
type: array
description: Array of errors
items:
type:
- string
- object
- properties:
code:
type: string
description: Error code
enum:
- ecommerce_not_enabled
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
'/sites/{site_id}/orders':
get:
x-fern-sdk-group-name: orders
x-fern-sdk-method-name: list
security:
- OAuth2:
- 'ecommerce:read'
operationId: list-orders
summary: List Orders
description: |
List all orders created for a given site.
Required scope | `ecommerce:read`
tags:
- Orders
parameters:
- name: site_id
in: path
description: Unique identifier for a Site
example: 580e63e98c9a982ac9b8b741
required: true
schema:
type: string
format: objectid
default: null
- name: status
in: query
allowEmptyValue: true
description: Filter the orders by status
required: false
schema:
type: string
enum:
- pending
- refunded
- dispute-lost
- fulfilled
- disputed
- unfulfilled
- in: query
example: 0
allowEmptyValue: true
name: offset
description: Offset used for pagination if the results have more than limit records
required: false
schema:
type: number
- in: query
allowEmptyValue: true
name: limit
example: 100
description: 'Maximum number of records to be returned (max limit: 100)'
required: false
schema:
type: number
responses:
'200':
description: Request was successful
content:
application/json:
schema:
description: Results from order list
properties:
orders:
type: array
description: List of orders
items:
type: object
properties:
orderId:
type: string
readOnly: true
description: |
The order id. Will usually be 6 hex characters, but can also be 9 hex characters if the site has a very large number of Orders. Randomly assigned.
example: dfa-3f1
status:
type: string
example: unfulfilled
description: |
The status of the Order
enum:
- pending
- unfulfilled
- fulfilled
- disputed
- dispute-lost
- refunded
comment:
type: string
description: 'A comment string for this Order, which is editable by API user (not used by Webflow).'
example: "Customer requested gift wrapping and a personalized note saying: Happy Birthday, Ford! \U0001F389 Please ensure the item is packed with extra bubble wrap for safe transit."
orderComment:
type: string
description: A comment that the customer left when making their Order
example: "Please gift wrap with a personal note saying \"Happy Birthday, Ford! \U0001F389"
acceptedOn:
type: string
format: date-time
nullable: true
description: The ISO8601 timestamp that an Order was placed.
example: 2018-12-03T22:06:15.761Z
fulfilledOn:
type: string
format: date-time
nullable: true
description: |
When an Order is marked as 'fulfilled', this field represents the timestamp of the fulfillment in ISO8601 format. Otherwise, it is null.
example: 2018-12-03T22:06:15.761Z
refundedOn:
type: string
format: date-time
nullable: true
description: 'When an Order is marked as ''refunded'', this field represents the timestamp of the fulfillment in ISO8601 format. Otherwise, it is null.'
example: 2018-12-03T22:06:15.761Z
disputedOn:
type: string
format: date-time
nullable: true
description: |
When an Order is marked as 'disputed', this field represents the timestamp of the fulfillment in ISO8601 format. Otherwise, it is null.
example: 2018-12-03T22:06:15.761Z
disputeUpdatedOn:
type: string
format: date-time
nullable: true
description: |
If an Order has been disputed by the customer, this key will be set to the ISO8601 timestamp of the last update received. If the Order is not disputed, the key will be null.
example: 2018-12-03T22:06:15.761Z
disputeLastStatus:
type: string
description: |
If an order was disputed by the customer, then this key will be set with the [dispute's status](https://stripe.com/docs/api#dispute_object-status).
example: null
enum:
- warning_needs_response
- warning_under_review
- warning_closed
- needs_response
- under_review
- charge_refunded
- won
- lost
nullable: true
customerPaid:
description: The total paid by the customer
properties:
unit:
description: The three-letter ISO currency code
type: string
example: USD
value:
description: The numeric value in the base unit of the currency
type: string
example: '5892'
string:
description: The user-facing string representation of the amount
type: string
example: $58.92
netAmount:
description: The net amount after application fees
properties:
unit:
description: The three-letter ISO currency code
type: string
example: USD
value:
description: The numeric value in the base unit of the currency
type: string
example: '5892'
string:
description: The user-facing string representation of the amount
type: string
example: $58.92
applicationFee:
description: The application fee assessed by the platform
properties:
unit:
description: The three-letter ISO currency code
type: string
example: USD
value:
description: The numeric value in the base unit of the currency
type: string
example: '5892'
string:
description: The user-facing string representation of the amount
type: string
example: $58.92
allAddresses:
description: All addresses provided by the customer during the ordering flow.
type: array
example:
- type: shipping
japanType: kanji
addressee: Custmerio Namen
line1: 123 Example Road
line2: Unit 3
city: Examplesville
state: CA
country: US
postalCode: 90012
- type: billing
japanType: kanji
addressee: Custmerio Namen
line1: 123 Example Road
line2: Unit 3
city: Examplesville
state: CA
country: US
postalCode: 90012
items:
description: A customer address
properties:
type:
description: The type of the order address (billing or shipping)
type: string
enum:
- shipping
- billing
example: shipping
japanType:
description: Represents a Japan-only address format. This field will only appear on orders placed from Japan.
type: string
enum:
- kana
- kanji
nullable: true
example: kanji
addressee:
description: Display name on the address
type: string
example: Customerio Namen
line1:
type: string
example: 123 Example Rd
description: The first line of the address
line2:
type: string
example: ''
description: The second line of the address
city:
type: string
example: Examplesville
description: The city of the address.
state:
type: string
example: CA
description: The state or province of the address
country:
type: string
example: US
description: The country of the address
postalCode:
type: string
example: 90012
description: The postal code of the address
shippingAddress:
description: The shipping address
example:
type: shipping
japanType: kanji
addressee: Custmerio Namen
line1: 123 Example Road
line2: Unit 3
city: Examplesville
state: CA
country: US
postalCode: 90012
properties:
type:
description: The type of the order address (billing or shipping)
type: string
enum:
- shipping
- billing
example: shipping
japanType:
description: Represents a Japan-only address format. This field will only appear on orders placed from Japan.
type: string
enum:
- kana
- kanji
nullable: true
example: kanji
addressee:
description: Display name on the address
type: string
example: Customerio Namen
line1:
type: string
example: 123 Example Rd
description: The first line of the address
line2:
type: string
example: ''
description: The second line of the address
city:
type: string
example: Examplesville
description: The city of the address.
state:
type: string
example: CA
description: The state or province of the address
country:
type: string
example: US
description: The country of the address
postalCode:
type: string
example: 90012
description: The postal code of the address
billingAddress:
description: The billing address
example:
type: billing
japanType: kanji
addressee: Custmerio Namen
line1: 123 Example Road
line2: Unit 3
city: Examplesville
state: CA
country: US
postalCode: 90012
properties:
type:
description: The type of the order address (billing or shipping)
type: string
enum:
- shipping
- billing
example: shipping
japanType:
description: Represents a Japan-only address format. This field will only appear on orders placed from Japan.
type: string
enum:
- kana
- kanji
nullable: true
example: kanji
addressee:
description: Display name on the address
type: string
example: Customerio Namen
line1:
type: string
example: 123 Example Rd
description: The first line of the address
line2:
type: string
example: ''
description: The second line of the address
city:
type: string
example: Examplesville
description: The city of the address.
state:
type: string
example: CA
description: The state or province of the address
country:
type: string
example: US
description: The country of the address
postalCode:
type: string
example: 90012
description: The postal code of the address
shippingProvider:
type: string
description: |
A string editable by the API user to note the shipping provider used (not used by Webflow).
example: USPS
nullable: true
shippingTracking:
type: string
description: |
A string editable by the API user to note the shipping tracking number for the order (not used by Webflow).
example: RA401558525US
nullable: true
shippingTrackingURL:
type: string
format: uri
example: shipping.test.com/RA401558525US
nullable: true
customerInfo:
description: An object with the keys `fullName` and `email`.
properties:
fullName:
description: The full name of the Customer
type: string
example: Customerio Namen
email:
description: The Customer's email address
type: string
format: email
example: renning@webflow.com
purchasedItems:
type: array
description: An array of all things that the Customer purchased.
items:
description: An Item that was purchased
properties:
count:
type: number
example: 1
description: Number of Item purchased.
rowTotal:
description: The total for the row
properties:
unit:
description: The three-letter ISO currency code
type: string
example: USD
value:
description: The numeric value in the base unit of the currency
type: string
example: '5892'
string:
description: The user-facing string representation of the amount
type: string
example: $58.92
productId:
type: string
format: objectid
description: The unique identifier for the Product
readOnly: true
example: 5eb9fd05caef491eb9757183
productName:
type: string
description: User-facing name of the Product
example: White Cup
productSlug:
type: string
description: Slug for the Product
example: white-cup
variantId:
type: string
description: Identifier for the Product Variant (SKU)
example: 5eb9fcace279761d8199790c
variantName:
type: string
description: User-facing name of the Product Variant (SKU)
example: Red
variantSlug:
type: string
description: Slug for the Product Variant (SKU)
example: red
variantSKU:
description: The user-defined custom SKU of the Product Variant (SKU)
type: string
example: red-medium
variantImage:
properties:
url:
description: The hosted location for the Variant's image
type: string
format: uri
example: 'https://d1otoma47x30pg.cloudfront.net/5bfedb42bab0ad90fa7dac03/5bfedb42bab0ad90fa7dad2e_5bb3d019b3465c6e8a324dd7_458036-unsplas.png'
file:
type: object
properties:
size:
description: The image size in bytes
type: number
example: 21064
originalFileName:
description: the original name of the image
type: string
example: cup.jpg
createdOn:
description: The creation timestamp of the image
type: string
format: date-time
example: 2018-12-03T22:06:15.761Z
contentType:
description: The MIME type of the image
format: mime-type
type: string
example: image/jpeg
width:
description: The image width in pixels
type: integer
example: 640
height:
description: The image height in pixels
type: integer
example: 480
variants:
description: Variants of the supplied image
type: array
items:
type: object
properties:
url:
description: The hosted location for the Variant's image
format: uri
type: string
example: 'https://d1otoma47x30pg.cloudfront.net/5bfedb42bab0ad90fa7dac03/5bfedb42bab0ad90fa7dad2e_5bb3d019b3465c6e8a324dd7_458036-example.png'
originalFileName:
type: string
example: cup.jpg
size:
description: The image size in bytes
type: number
example: 12040
width:
description: The image width in pixels
type: integer
example: 320
height:
description: The image height in pixels
type: integer
example: 240
variantPrice:
description: The price corresponding to the variant
properties:
unit:
description: The three-letter ISO currency code
type: string
example: USD
value:
description: The numeric value in the base unit of the currency
type: string
example: '5892'
string:
description: The user-facing string representation of the amount
type: string
example: $58.92
weight:
type: number
example: 5
default: null
nullable: true
description: 'The physical weight of the variant if provided, or null'
width:
type: number
example: 4
nullable: true
default: null
description: 'The physical width of the variant if provided, or null'
height:
type: number
example: 7
nullable: true
default: null
description: 'The physical height of the variant if provided, or null'
length:
type: number
example: 2
nullable: true
default: null
description: 'The physical length of the variant if provided, or null'
purchasedItemsCount:
type: number
description: The sum of all 'count' fields in 'purchasedItems'.
example: 1
stripeDetails:
description: 'An object with various Stripe IDs, useful for linking into the stripe dashboard.'
properties:
subscriptionId:
type: string
format: objectid
example: sub_1J6xwG2eZvKYlo2CXu9Zt0Tn
nullable: true
description: Stripe-generated identifier for the Subscription
paymentMethod:
type: string
format: objectid
example: pm_1J6xwG2eZvKYlo2CXu9Zt0Tn
nullable: true
description: Stripe-generated identifier for the PaymentMethod used
paymentIntentId:
type: string
format: objectid
example: pi_1J6xwG2eZvKYlo2CXu9Zt0Tn
nullable: true
description: 'Stripe-generated identifier for the PaymentIntent, or null'
customerId:
type: string
format: objectid
example: cus_E5ajeiWNHEtcAW
description: 'Stripe-generated customer identifier, or null'
nullable: true
chargeId:
type: string
format: objectid
description: 'Stripe-generated charge identifier, or null'
example: ch_1DdPYQKMjGA7k9mI2AKiBY6u
nullable: true
disputeId:
type: string
format: objectid
description: 'Stripe-generated dispute identifier, or null'
example: null
nullable: true
refundId:
type: string
format: objectid
description: 'Stripe-generated refund identifier, or null'
example: null
nullable: true
refundReason:
type: string
description: 'Stripe-generated refund reason, or null'
example: requested_by_customer
nullable: true
stripeCard:
description: |
Details on the card used to fulfill this order, if this order was finalized with Stripe.
properties:
last4:
type: string
description: The last 4 digits on the card as a string
example: '4242'
brand:
type: string
description: The card's brand (ie. credit card network)
example: Visa
enum:
- Visa
- American Express
- MasterCard
- Discover
- JCB
- Diners Club
- Unknown
ownerName:
type: string
description: The name on the card.
example: Customerio Namen
expires:
type: object
description: The card's expiration date.
properties:
year:
description: Year that the card expires
type: number
example: 2025
month:
description: Month that the card expires
type: number
example: 12
paypalDetails:
type: object
properties:
orderId:
type: string
description: PayPal order identifier
example: 1a2b3c4d5e6f7g8h9i0j
payerId:
type: string
description: PayPal payer identifier
example: 9k8j7i6h5g4f3e2d1c0b
captureId:
type: string
description: PayPal capture identifier
example: qwe123rty456uio789p
refundId:
type: string
description: PayPal refund identifier
example: abcde12345fghij67890
refundReason:
type: string
description: PayPal-issued reason for the refund
example: Customer requested refund
disputeId:
type: string
description: PayPal dispute identifier
example: zxcvbnm987poiuytrewq
customData:
type: array
additionalProperties: true
description: |
An array of additional inputs for custom order data gathering. Each object in the array represents an input with a name, and a textInput, textArea, or checkbox value.
items:
type: object
metadata:
type: object
properties:
isBuyNow:
type: boolean
example: false
isCustomerDeleted:
type: boolean
description: |
A boolean indicating whether the customer has been deleted from the site.
example: false
isShippingRequired:
type: boolean
description: |
A boolean indicating whether the order contains one or more purchased items that require shipping.
example: false
hasDownloads:
type: boolean
description: |
A boolean indicating whether the order contains one or more purchased items that are downloadable.
example: false
paymentProcessor:
type: string
description: |
A string indicating the payment processor used for this order.
example: stripe
totals:
description: An object describing various pricing totals
properties:
subtotal:
description: The subtotal price
properties:
unit:
description: The three-letter ISO currency code
type: string
example: USD
value:
description: The numeric value in the base unit of the currency
type: string
example: '5892'
string:
description: The user-facing string representation of the amount
type: string
example: $58.92
extras:
type: array
description: 'An array of extra items, includes discounts, shipping, and taxes.'
items:
description: 'Extra order items, includes discounts, shipping, and taxes.'
example:
type: tax
name: State Taxes
description: CA Taxes (6.25%)
price:
unit: USD
value: 344
string: $3.44
properties:
type:
type: string
example: tax
description: The type of extra item this is.
enum:
- discount
- discount-shipping
- shipping
- tax
name:
type: string
description: A human-readable (but English) name for this extra charge.
example: shipping
description:
type: string
description: A human-readable (but English) description of this extra charge.
example: Flat Rate
price:
description: The price for the item
properties:
unit:
description: The three-letter ISO currency code
type: string
example: USD
value:
description: The numeric value in the base unit of the currency
type: string
example: '5892'
string:
description: The user-facing string representation of the amount
type: string
example: $58.92
total:
description: The total price
properties:
unit:
description: The three-letter ISO currency code
type: string
example: USD
value:
description: The numeric value in the base unit of the currency
type: string
example: '5892'
string:
description: The user-facing string representation of the amount
type: string
example: $58.92
downloadFiles:
description: An array of downloadable file objects.
type: array
default: []
items:
properties:
id:
type: string
description: The unique identifier for the downloadable file
example: 5e9a5eba75e0ac242e1b6f64
name:
type: string
description: The user-facing name for the downloadable file
example: The modern web design process - Webflow Ebook.pdf
url:
type: string
format: uri
description: The hosted location for the downloadable file
example: 'https://webflow.com/dashboard/download-digital-product?payload=5d93ba5e38c6b0160ab711d3;e7634a;5eb1aac72912ec06f561278c;5e9a5eba75e0ac242e1b6f63:ka2nehxy:4a1ee0a632feaab94294350087215ed89533f2f530903e3b933b638940e921aa'
example:
orderId: fc7-128
status: refunded
comment: "Customer requested gift wrapping and a personalized note saying: Happy Birthday, Ford! \U0001F389 Please ensure the item is packed with extra bubble wrap for safe transit."
orderComment: "Please gift wrap with a personal note saying \"Happy Birthday, Ford! \U0001F389"
acceptedOn: '2024-03-29T21:29:21.555Z'
fulfilledOn: '2024-03-29T21:29:21.555Z'
refundedOn: '2024-04-08T18:25:04.238Z'
disputedOn: '2024-03-29T21:29:21.555Z'
disputeUpdatedOn: '2024-03-29T21:29:21.555Z'
disputeLastStatus: charge_refunded
customerPaid:
unit: USD
value: 11873
string: $ 118.73 USD
netAmount:
unit: USD
value: 11262
string: $ 112.62 USD
applicationFee:
unit: USD
value: 237
string: $ 2.37 USD
allAddresses:
- type: billing
addressee: Arthur Dent
line1: 20 W 34th St
line2: Empire State Building
city: New York
state: New York
country: US
postalCode: '10118'
- type: shipping
addressee: Arthur Dent
line1: 20 W 34th St
line2: Empire State Building
city: New York
state: New York
country: US
postalCode: '10118'
shippingAddress:
type: shipping
japanType: kanji
addressee: Arthur Dent
line1: 20 W 34th St
line2: Empire State Building
city: New York
state: New York
country: US
postalCode: '10118'
shippingProvider: 'Shipping Company, Co.'
shippingTracking: tr00000000001
shippingTrackingURL: 'https://www.shippingcompany.com/tracking/tr00000000001'
customerInfo:
fullName: Arthur Dent
email: arthur.dent@example.com
purchasedItems:
- count: 1
rowTotal:
unit: USD
value: 5561
string: $ 55.61 USD
productId: 66072fb61b89448912e26791
productName: Luxurious Fresh Ball
productSlug: luxurious-fresh-ball
variantId: 66072fb71b89448912e2683f
variantName: 'Luxurious Fresh Ball Generic: Bronze, Practical: Plastic'
variantSlug: luxurious-fresh-ball-generic-bronze-practical-plastic
variantSKU: luxurious-fresh-ball-generic-bronze-practical-plastic
variantImage:
url: 'https://d1otoma47x30pg.cloudfront.net/66072f39417a2a35b2589cc7/66072fb51b89448912e2672c_image14.jpeg'
file: null
variantPrice:
unit: USD
value: 5561
string: $ 55.61 USD
weight: 11
height: 70
width: 82
length: 9
- count: 1
rowTotal:
unit: USD
value: 5344
string: $ 53.44 USD
productId: 66072fb61b89448912e26799
productName: Recycled Steel Gloves
productSlug: recycled-steel-gloves
variantId: 66072fb91b89448912e26ab9
variantName: 'Recycled Steel Gloves Electronic: Granite, Handcrafted: grey'
variantSlug: recycled-steel-gloves-electronic-granite-handcrafted-grey
variantSKU: recycled-steel-gloves-electronic-granite-handcrafted-grey
variantImage:
url: 'https://d1otoma47x30pg.cloudfront.net/66072f39417a2a35b2589cc7/66072fb51b89448912e2671e_image2.jpeg'
file: null
variantPrice:
unit: USD
value: 5344
string: $ 53.44 USD
weight: 38
height: 85
width: 76
length: 40
purchasedItemsCount: 2
stripeDetails:
customerId: cus_PpRsNHwWdUoRKR
paymentMethod: pm_1OzmzBJYFi4lcbXWHKNdXU7j
chargeId: ch_3OzmzDJYFi4lcbXW1ndkkrH2
disputeId: null
paymentIntentId: pi_3OzmzDJYFi4lcbXW1hTBW6ft
subscriptionId: null
refundId: re_3OzmzDJYFi4lcbXW1kFAmlBk
refundReason: fraudulent
stripeCard:
last4: '4242'
brand: Visa
ownerName: Arthur Dent
expires:
month: 4
year: 2024
paypalDetails: null
customData:
- {}
metadata:
isBuyNow: false
hasDownloads: false
paymentProcessor: stripe
billingAddress:
type: billing
addressee: Arthur Dent
line1: 20 W 34th St
line2: Empire State Building
city: New York
state: New York
country: US
postalCode: '10118'
totals:
subtotal:
unit: USD
value: 10905
string: $ 109.05 USD
extras:
- type: tax
name: State Taxes
description: NY Taxes (4.00%)
price:
unit: USD
value: 436
string: $ 4.36 USD
- type: tax
name: City Taxes
description: NEW YORK Taxes (4.88%)
price:
unit: USD
value: 532
string: $ 5.32 USD
- type: shipping
name: Flat
description: ''
price:
unit: USD
value: 0
string: $ 0.00 USD
total:
unit: USD
value: 11873
string: $ 118.73 USD
isCustomerDeleted: false
isShippingRequired: true
downloadFiles:
- id: 5e9a5eba75e0ac242e1b6f64
name: New product guide
url: 'https://webflow.com/dashboard/download-digital-product?payload=5d93ba5e38c6b0160ab711d3;e7634a;5eb1aac72912ec06f561278c;5e9a5eba75e0ac242e1b6f63:ka2nehxy:4a1ee0a632feaab94294350087215ed89533f2f530903e3b933b638940e921aa'
pagination:
description: Pagination object
type: object
properties:
limit:
type: number
description: The limit used for pagination
example: 100
offset:
type: number
description: The offset used for pagination
example: 0
total:
type: number
description: The total number of records
example: 100
example:
orders:
- orderId: 7c1-9fd
status: unfulfilled
comment: "Customer requested gift wrapping and a personalized note saying: Happy Birthday, Ford! \U0001F389 Please ensure the item is packed with extra bubble wrap for safe transit."
orderComment: "Please gift wrap with a personal note saying \"Happy Birthday, Ford! \U0001F389"
acceptedOn: '2024-04-10T13:16:21.976Z'
fulfilledOn: null
refundedOn: null
disputedOn: null
disputeUpdatedOn: null
disputeLastStatus: null
customerPaid:
unit: USD
value: 21155
string: $ 211.55 USD
netAmount:
unit: USD
value: 20089
string: $ 200.89 USD
applicationFee:
unit: USD
value: 423
string: $ 4.23 USD
allAddresses:
- type: billing
addressee: Arthur Dent
line1: 20 W 34th St
line2: Empire State Building
city: New York
state: New York
country: US
postalCode: '10118'
- type: shipping
addressee: Arthur Dent
line1: 20 W 34th St
line2: Empire State Building
city: New York
state: New York
country: US
postalCode: '10118'
shippingAddress:
type: shipping
japanType: kanji
addressee: Arthur Dent
line1: 20 W 34th St
line2: Empire State Building
city: New York
state: New York
country: US
postalCode: '10118'
shippingProvider: 'Shipping Company, Co.'
shippingTracking: tr00000000002
shippingTrackingURL: 'https://www.shippingcompany.com/tracking/tr00000000002'
customerInfo:
fullName: Arthur Dent
email: arthur.dent@example.com
purchasedItems:
- count: 2
rowTotal:
unit: USD
value: 11122
string: $ 111.22 USD
productId: 66072fb61b89448912e26791
productName: Luxurious Fresh Ball
productSlug: luxurious-fresh-ball
variantId: 66072fb71b89448912e2683f
variantName: 'Luxurious Fresh Ball Generic: Bronze, Practical: Plastic'
variantSlug: luxurious-fresh-ball-generic-bronze-practical-plastic
variantSKU: luxurious-fresh-ball-generic-bronze-practical-plastic
variantImage:
url: 'https://d1otoma47x30pg.cloudfront.net/66072f39417a2a35b2589cc7/66072fb51b89448912e2672c_image14.jpeg'
file: null
variantPrice:
unit: USD
value: 5561
string: $ 55.61 USD
weight: 11
height: 70
width: 82
length: 9
- count: 1
rowTotal:
unit: USD
value: 8309
string: $ 83.09 USD
productId: 66072fb61b89448912e2678b
productName: Incredible Bronze Towels
productSlug: incredible-bronze-towels
variantId: 66072fb71b89448912e2681e
variantName: 'Incredible Bronze Towels Sleek: Frozen, Incredible: Metal'
variantSlug: incredible-bronze-towels-sleek-frozen-incredible-metal
variantSKU: incredible-bronze-towels-sleek-frozen-incredible-metal
variantImage:
url: 'https://d1otoma47x30pg.cloudfront.net/66072f39417a2a35b2589cc7/66072fb51b89448912e26729_image16.jpeg'
file: null
variantPrice:
unit: USD
value: 8309
string: $ 83.09 USD
weight: null
height: 72
width: 19
length: 18
purchasedItemsCount: 3
stripeDetails:
customerId: cus_Ptod8KJBiiPgnH
paymentMethod: pm_1P410gJYFi4lcbXWbeKghqjK
chargeId: ch_3P410iJYFi4lcbXW0DxUkzCH
disputeId: null
paymentIntentId: pi_3P410iJYFi4lcbXW0EKKgcVg
subscriptionId: null
refundId: null
refundReason: null
stripeCard:
last4: '4242'
brand: Visa
ownerName: Arthur Dent
expires:
month: 4
year: 2025
paypalDetails: null
customData:
- {}
metadata:
isBuyNow: false
hasDownloads: false
paymentProcessor: stripe
billingAddress:
type: billing
addressee: Arthur Dent
line1: 20 W 34th St
line2: Empire State Building
city: New York
state: New York
country: US
postalCode: '10118'
- orderId: fc7-128
status: refunded
comment: Example comment to myself
orderComment: ''
acceptedOn: '2024-03-29T21:29:21.555Z'
fulfilledOn: null
refundedOn: '2024-04-08T18:25:04.238Z'
disputedOn: null
disputeUpdatedOn: null
disputeLastStatus: null
customerPaid:
unit: USD
value: 11873
string: $ 118.73 USD
netAmount:
unit: USD
value: 11262
string: $ 112.62 USD
applicationFee:
unit: USD
value: 237
string: $ 2.37 USD
allAddresses:
- type: billing
addressee: Arthur Dent
line1: 20 W 34th St
line2: Empire State Building
city: New York
state: New York
country: US
postalCode: '10118'
- type: shipping
addressee: Arthur Dent
line1: 20 W 34th St
line2: Empire State Building
city: New York
state: New York
country: US
postalCode: '10118'
shippingAddress:
type: shipping
addressee: Arthur Dent
line1: 20 W 34th St
line2: Empire State Building
city: New York
state: New York
country: US
postalCode: '10118'
shippingProvider: 'Shipping Company, Co.'
shippingTracking: tr00000000001
shippingTrackingURL: 'https://www.shippingcompany.com/tracking/tr00000000001'
customerInfo:
fullName: Arthur Dent
email: arthur.dent@example.com
purchasedItems:
- count: 1
rowTotal:
unit: USD
value: 5561
string: $ 55.61 USD
productId: 66072fb61b89448912e26791
productName: Luxurious Fresh Ball
productSlug: luxurious-fresh-ball
variantId: 66072fb71b89448912e2683f
variantName: 'Luxurious Fresh Ball Generic: Bronze, Practical: Plastic'
variantSlug: luxurious-fresh-ball-generic-bronze-practical-plastic
variantSKU: luxurious-fresh-ball-generic-bronze-practical-plastic
variantImage:
url: 'https://d1otoma47x30pg.cloudfront.net/66072f39417a2a35b2589cc7/66072fb51b89448912e2672c_image14.jpeg'
file: null
variantPrice:
unit: USD
value: 5561
string: $ 55.61 USD
weight: 11
height: 70
width: 82
length: 9
- count: 1
rowTotal:
unit: USD
value: 5344
string: $ 53.44 USD
productId: 66072fb61b89448912e26799
productName: Recycled Steel Gloves
productSlug: recycled-steel-gloves
variantId: 66072fb91b89448912e26ab9
variantName: 'Recycled Steel Gloves Electronic: Granite, Handcrafted: grey'
variantSlug: recycled-steel-gloves-electronic-granite-handcrafted-grey
variantSKU: recycled-steel-gloves-electronic-granite-handcrafted-grey
variantImage:
url: 'https://d1otoma47x30pg.cloudfront.net/66072f39417a2a35b2589cc7/66072fb51b89448912e2671e_image2.jpeg'
file: null
variantPrice:
unit: USD
value: 5344
string: $ 53.44 USD
weight: 38
height: 85
width: 76
length: 40
purchasedItemsCount: 2
stripeDetails:
customerId: cus_PpRsNHwWdUoRKR
paymentMethod: pm_1OzmzBJYFi4lcbXWHKNdXU7j
chargeId: ch_3OzmzDJYFi4lcbXW1ndkkrH2
disputeId: null
paymentIntentId: pi_3OzmzDJYFi4lcbXW1hTBW6ft
subscriptionId: null
refundId: re_3OzmzDJYFi4lcbXW1kFAmlBk
refundReason: fraudulent
stripeCard:
last4: '4242'
brand: Visa
ownerName: Arthur Dent
expires:
month: 4
year: 2024
paypalDetails: null
customData:
- {}
metadata:
isBuyNow: false
hasDownloads: false
paymentProcessor: stripe
billingAddress:
type: billing
addressee: Arthur Dent
line1: 20 W 34th St
line2: Empire State Building
city: New York
state: New York
country: US
postalCode: '10118'
totals:
subtotal:
unit: USD
value: 10905
string: $ 109.05 USD
extras:
- type: tax
name: State Taxes
description: NY Taxes (4.00%)
price:
unit: USD
value: 436
string: $ 4.36 USD
- type: tax
name: City Taxes
description: NEW YORK Taxes (4.88%)
price:
unit: USD
value: 532
string: $ 5.32 USD
- type: shipping
name: Flat
description: ''
price:
unit: USD
value: 0
string: $ 0.00 USD
total:
unit: USD
value: 11873
string: $ 118.73 USD
isCustomerDeleted: false
isShippingRequired: true
downloadFiles:
- id: 5e9a5eba75e0ac242e1b6f64
name: New product guide
url: 'https://webflow.com/dashboard/download-digital-product?payload=5d93ba5e38c6b0160ab711d3;e7634a;5eb1aac72912ec06f561278c;5e9a5eba75e0ac242e1b6f63:ka2nehxy:4a1ee0a632feaab94294350087215ed89533f2f530903e3b933b638940e921aa'
pagination:
limit: 100
offset: 0
total: 2
'400':
description: Request body was incorrectly formatted. Likely invalid JSON being sent up.
'401':
description: Provided access token is invalid or does not have access to requested resource
'403':
description: 'Provided access token is valid, but is missing the required scopes.'
content:
application/json:
schema:
type: object
properties:
status:
type: integer
example: 403
message:
type: string
publicErrorCode:
type: string
externalReference:
type: string
nullable: true
details:
type: array
items:
type: string
'404':
description: Requested resource not found
'409':
description: The site does not have ecommerce enabled.
content:
application/json:
schema:
allOf:
- example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
details:
type: array
description: Array of errors
items:
type:
- string
- object
- properties:
code:
type: string
description: Error code
enum:
- ecommerce_not_enabled
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
'/sites/{site_id}/orders/{order_id}':
get:
x-fern-sdk-group-name: orders
x-fern-sdk-method-name: get
security:
- OAuth2:
- 'ecommerce:read'
operationId: get-order
summary: Get Order
description: |
Retrieve a single product by its id. All of its SKUs will also be retrieved.
Required scope | `ecommerce:read`
tags:
- Orders
parameters:
- name: site_id
in: path
description: Unique identifier for a Site
example: 580e63e98c9a982ac9b8b741
required: true
schema:
type: string
format: objectid
default: null
- name: order_id
in: path
description: Unique identifier for an Order
example: 5e8518516e147040726cc415
required: true
schema:
type: string
format: objectid
responses:
'200':
description: Request was successful
content:
application/json:
schema:
type: object
properties:
orderId:
type: string
readOnly: true
description: |
The order id. Will usually be 6 hex characters, but can also be 9 hex characters if the site has a very large number of Orders. Randomly assigned.
example: dfa-3f1
status:
type: string
example: unfulfilled
description: |
The status of the Order
enum:
- pending
- unfulfilled
- fulfilled
- disputed
- dispute-lost
- refunded
comment:
type: string
description: 'A comment string for this Order, which is editable by API user (not used by Webflow).'
example: "Customer requested gift wrapping and a personalized note saying: Happy Birthday, Ford! \U0001F389 Please ensure the item is packed with extra bubble wrap for safe transit."
orderComment:
type: string
description: A comment that the customer left when making their Order
example: "Please gift wrap with a personal note saying \"Happy Birthday, Ford! \U0001F389"
acceptedOn:
type: string
format: date-time
nullable: true
description: The ISO8601 timestamp that an Order was placed.
example: 2018-12-03T22:06:15.761Z
fulfilledOn:
type: string
format: date-time
nullable: true
description: |
When an Order is marked as 'fulfilled', this field represents the timestamp of the fulfillment in ISO8601 format. Otherwise, it is null.
example: 2018-12-03T22:06:15.761Z
refundedOn:
type: string
format: date-time
nullable: true
description: 'When an Order is marked as ''refunded'', this field represents the timestamp of the fulfillment in ISO8601 format. Otherwise, it is null.'
example: 2018-12-03T22:06:15.761Z
disputedOn:
type: string
format: date-time
nullable: true
description: |
When an Order is marked as 'disputed', this field represents the timestamp of the fulfillment in ISO8601 format. Otherwise, it is null.
example: 2018-12-03T22:06:15.761Z
disputeUpdatedOn:
type: string
format: date-time
nullable: true
description: |
If an Order has been disputed by the customer, this key will be set to the ISO8601 timestamp of the last update received. If the Order is not disputed, the key will be null.
example: 2018-12-03T22:06:15.761Z
disputeLastStatus:
type: string
description: |
If an order was disputed by the customer, then this key will be set with the [dispute's status](https://stripe.com/docs/api#dispute_object-status).
example: null
enum:
- warning_needs_response
- warning_under_review
- warning_closed
- needs_response
- under_review
- charge_refunded
- won
- lost
nullable: true
customerPaid:
description: The total paid by the customer
properties:
unit:
description: The three-letter ISO currency code
type: string
example: USD
value:
description: The numeric value in the base unit of the currency
type: string
example: '5892'
string:
description: The user-facing string representation of the amount
type: string
example: $58.92
netAmount:
description: The net amount after application fees
properties:
unit:
description: The three-letter ISO currency code
type: string
example: USD
value:
description: The numeric value in the base unit of the currency
type: string
example: '5892'
string:
description: The user-facing string representation of the amount
type: string
example: $58.92
applicationFee:
description: The application fee assessed by the platform
properties:
unit:
description: The three-letter ISO currency code
type: string
example: USD
value:
description: The numeric value in the base unit of the currency
type: string
example: '5892'
string:
description: The user-facing string representation of the amount
type: string
example: $58.92
allAddresses:
description: All addresses provided by the customer during the ordering flow.
type: array
example:
- type: shipping
japanType: kanji
addressee: Custmerio Namen
line1: 123 Example Road
line2: Unit 3
city: Examplesville
state: CA
country: US
postalCode: 90012
- type: billing
japanType: kanji
addressee: Custmerio Namen
line1: 123 Example Road
line2: Unit 3
city: Examplesville
state: CA
country: US
postalCode: 90012
items:
description: A customer address
properties:
type:
description: The type of the order address (billing or shipping)
type: string
enum:
- shipping
- billing
example: shipping
japanType:
description: Represents a Japan-only address format. This field will only appear on orders placed from Japan.
type: string
enum:
- kana
- kanji
nullable: true
example: kanji
addressee:
description: Display name on the address
type: string
example: Customerio Namen
line1:
type: string
example: 123 Example Rd
description: The first line of the address
line2:
type: string
example: ''
description: The second line of the address
city:
type: string
example: Examplesville
description: The city of the address.
state:
type: string
example: CA
description: The state or province of the address
country:
type: string
example: US
description: The country of the address
postalCode:
type: string
example: 90012
description: The postal code of the address
shippingAddress:
description: The shipping address
example:
type: shipping
japanType: kanji
addressee: Custmerio Namen
line1: 123 Example Road
line2: Unit 3
city: Examplesville
state: CA
country: US
postalCode: 90012
properties:
type:
description: The type of the order address (billing or shipping)
type: string
enum:
- shipping
- billing
example: shipping
japanType:
description: Represents a Japan-only address format. This field will only appear on orders placed from Japan.
type: string
enum:
- kana
- kanji
nullable: true
example: kanji
addressee:
description: Display name on the address
type: string
example: Customerio Namen
line1:
type: string
example: 123 Example Rd
description: The first line of the address
line2:
type: string
example: ''
description: The second line of the address
city:
type: string
example: Examplesville
description: The city of the address.
state:
type: string
example: CA
description: The state or province of the address
country:
type: string
example: US
description: The country of the address
postalCode:
type: string
example: 90012
description: The postal code of the address
billingAddress:
description: The billing address
example:
type: billing
japanType: kanji
addressee: Custmerio Namen
line1: 123 Example Road
line2: Unit 3
city: Examplesville
state: CA
country: US
postalCode: 90012
properties:
type:
description: The type of the order address (billing or shipping)
type: string
enum:
- shipping
- billing
example: shipping
japanType:
description: Represents a Japan-only address format. This field will only appear on orders placed from Japan.
type: string
enum:
- kana
- kanji
nullable: true
example: kanji
addressee:
description: Display name on the address
type: string
example: Customerio Namen
line1:
type: string
example: 123 Example Rd
description: The first line of the address
line2:
type: string
example: ''
description: The second line of the address
city:
type: string
example: Examplesville
description: The city of the address.
state:
type: string
example: CA
description: The state or province of the address
country:
type: string
example: US
description: The country of the address
postalCode:
type: string
example: 90012
description: The postal code of the address
shippingProvider:
type: string
description: |
A string editable by the API user to note the shipping provider used (not used by Webflow).
example: USPS
nullable: true
shippingTracking:
type: string
description: |
A string editable by the API user to note the shipping tracking number for the order (not used by Webflow).
example: RA401558525US
nullable: true
shippingTrackingURL:
type: string
format: uri
example: shipping.test.com/RA401558525US
nullable: true
customerInfo:
description: An object with the keys `fullName` and `email`.
properties:
fullName:
description: The full name of the Customer
type: string
example: Customerio Namen
email:
description: The Customer's email address
type: string
format: email
example: renning@webflow.com
purchasedItems:
type: array
description: An array of all things that the Customer purchased.
items:
description: An Item that was purchased
properties:
count:
type: number
example: 1
description: Number of Item purchased.
rowTotal:
description: The total for the row
properties:
unit:
description: The three-letter ISO currency code
type: string
example: USD
value:
description: The numeric value in the base unit of the currency
type: string
example: '5892'
string:
description: The user-facing string representation of the amount
type: string
example: $58.92
productId:
type: string
format: objectid
description: The unique identifier for the Product
readOnly: true
example: 5eb9fd05caef491eb9757183
productName:
type: string
description: User-facing name of the Product
example: White Cup
productSlug:
type: string
description: Slug for the Product
example: white-cup
variantId:
type: string
description: Identifier for the Product Variant (SKU)
example: 5eb9fcace279761d8199790c
variantName:
type: string
description: User-facing name of the Product Variant (SKU)
example: Red
variantSlug:
type: string
description: Slug for the Product Variant (SKU)
example: red
variantSKU:
description: The user-defined custom SKU of the Product Variant (SKU)
type: string
example: red-medium
variantImage:
properties:
url:
description: The hosted location for the Variant's image
type: string
format: uri
example: 'https://d1otoma47x30pg.cloudfront.net/5bfedb42bab0ad90fa7dac03/5bfedb42bab0ad90fa7dad2e_5bb3d019b3465c6e8a324dd7_458036-unsplas.png'
file:
type: object
properties:
size:
description: The image size in bytes
type: number
example: 21064
originalFileName:
description: the original name of the image
type: string
example: cup.jpg
createdOn:
description: The creation timestamp of the image
type: string
format: date-time
example: 2018-12-03T22:06:15.761Z
contentType:
description: The MIME type of the image
format: mime-type
type: string
example: image/jpeg
width:
description: The image width in pixels
type: integer
example: 640
height:
description: The image height in pixels
type: integer
example: 480
variants:
description: Variants of the supplied image
type: array
items:
type: object
properties:
url:
description: The hosted location for the Variant's image
format: uri
type: string
example: 'https://d1otoma47x30pg.cloudfront.net/5bfedb42bab0ad90fa7dac03/5bfedb42bab0ad90fa7dad2e_5bb3d019b3465c6e8a324dd7_458036-example.png'
originalFileName:
type: string
example: cup.jpg
size:
description: The image size in bytes
type: number
example: 12040
width:
description: The image width in pixels
type: integer
example: 320
height:
description: The image height in pixels
type: integer
example: 240
variantPrice:
description: The price corresponding to the variant
properties:
unit:
description: The three-letter ISO currency code
type: string
example: USD
value:
description: The numeric value in the base unit of the currency
type: string
example: '5892'
string:
description: The user-facing string representation of the amount
type: string
example: $58.92
weight:
type: number
example: 5
default: null
nullable: true
description: 'The physical weight of the variant if provided, or null'
width:
type: number
example: 4
nullable: true
default: null
description: 'The physical width of the variant if provided, or null'
height:
type: number
example: 7
nullable: true
default: null
description: 'The physical height of the variant if provided, or null'
length:
type: number
example: 2
nullable: true
default: null
description: 'The physical length of the variant if provided, or null'
purchasedItemsCount:
type: number
description: The sum of all 'count' fields in 'purchasedItems'.
example: 1
stripeDetails:
description: 'An object with various Stripe IDs, useful for linking into the stripe dashboard.'
properties:
subscriptionId:
type: string
format: objectid
example: sub_1J6xwG2eZvKYlo2CXu9Zt0Tn
nullable: true
description: Stripe-generated identifier for the Subscription
paymentMethod:
type: string
format: objectid
example: pm_1J6xwG2eZvKYlo2CXu9Zt0Tn
nullable: true
description: Stripe-generated identifier for the PaymentMethod used
paymentIntentId:
type: string
format: objectid
example: pi_1J6xwG2eZvKYlo2CXu9Zt0Tn
nullable: true
description: 'Stripe-generated identifier for the PaymentIntent, or null'
customerId:
type: string
format: objectid
example: cus_E5ajeiWNHEtcAW
description: 'Stripe-generated customer identifier, or null'
nullable: true
chargeId:
type: string
format: objectid
description: 'Stripe-generated charge identifier, or null'
example: ch_1DdPYQKMjGA7k9mI2AKiBY6u
nullable: true
disputeId:
type: string
format: objectid
description: 'Stripe-generated dispute identifier, or null'
example: null
nullable: true
refundId:
type: string
format: objectid
description: 'Stripe-generated refund identifier, or null'
example: null
nullable: true
refundReason:
type: string
description: 'Stripe-generated refund reason, or null'
example: requested_by_customer
nullable: true
stripeCard:
description: |
Details on the card used to fulfill this order, if this order was finalized with Stripe.
properties:
last4:
type: string
description: The last 4 digits on the card as a string
example: '4242'
brand:
type: string
description: The card's brand (ie. credit card network)
example: Visa
enum:
- Visa
- American Express
- MasterCard
- Discover
- JCB
- Diners Club
- Unknown
ownerName:
type: string
description: The name on the card.
example: Customerio Namen
expires:
type: object
description: The card's expiration date.
properties:
year:
description: Year that the card expires
type: number
example: 2025
month:
description: Month that the card expires
type: number
example: 12
paypalDetails:
type: object
properties:
orderId:
type: string
description: PayPal order identifier
example: 1a2b3c4d5e6f7g8h9i0j
payerId:
type: string
description: PayPal payer identifier
example: 9k8j7i6h5g4f3e2d1c0b
captureId:
type: string
description: PayPal capture identifier
example: qwe123rty456uio789p
refundId:
type: string
description: PayPal refund identifier
example: abcde12345fghij67890
refundReason:
type: string
description: PayPal-issued reason for the refund
example: Customer requested refund
disputeId:
type: string
description: PayPal dispute identifier
example: zxcvbnm987poiuytrewq
customData:
type: array
additionalProperties: true
description: |
An array of additional inputs for custom order data gathering. Each object in the array represents an input with a name, and a textInput, textArea, or checkbox value.
items:
type: object
metadata:
type: object
properties:
isBuyNow:
type: boolean
example: false
isCustomerDeleted:
type: boolean
description: |
A boolean indicating whether the customer has been deleted from the site.
example: false
isShippingRequired:
type: boolean
description: |
A boolean indicating whether the order contains one or more purchased items that require shipping.
example: false
hasDownloads:
type: boolean
description: |
A boolean indicating whether the order contains one or more purchased items that are downloadable.
example: false
paymentProcessor:
type: string
description: |
A string indicating the payment processor used for this order.
example: stripe
totals:
description: An object describing various pricing totals
properties:
subtotal:
description: The subtotal price
properties:
unit:
description: The three-letter ISO currency code
type: string
example: USD
value:
description: The numeric value in the base unit of the currency
type: string
example: '5892'
string:
description: The user-facing string representation of the amount
type: string
example: $58.92
extras:
type: array
description: 'An array of extra items, includes discounts, shipping, and taxes.'
items:
description: 'Extra order items, includes discounts, shipping, and taxes.'
example:
type: tax
name: State Taxes
description: CA Taxes (6.25%)
price:
unit: USD
value: 344
string: $3.44
properties:
type:
type: string
example: tax
description: The type of extra item this is.
enum:
- discount
- discount-shipping
- shipping
- tax
name:
type: string
description: A human-readable (but English) name for this extra charge.
example: shipping
description:
type: string
description: A human-readable (but English) description of this extra charge.
example: Flat Rate
price:
description: The price for the item
properties:
unit:
description: The three-letter ISO currency code
type: string
example: USD
value:
description: The numeric value in the base unit of the currency
type: string
example: '5892'
string:
description: The user-facing string representation of the amount
type: string
example: $58.92
total:
description: The total price
properties:
unit:
description: The three-letter ISO currency code
type: string
example: USD
value:
description: The numeric value in the base unit of the currency
type: string
example: '5892'
string:
description: The user-facing string representation of the amount
type: string
example: $58.92
downloadFiles:
description: An array of downloadable file objects.
type: array
default: []
items:
properties:
id:
type: string
description: The unique identifier for the downloadable file
example: 5e9a5eba75e0ac242e1b6f64
name:
type: string
description: The user-facing name for the downloadable file
example: The modern web design process - Webflow Ebook.pdf
url:
type: string
format: uri
description: The hosted location for the downloadable file
example: 'https://webflow.com/dashboard/download-digital-product?payload=5d93ba5e38c6b0160ab711d3;e7634a;5eb1aac72912ec06f561278c;5e9a5eba75e0ac242e1b6f63:ka2nehxy:4a1ee0a632feaab94294350087215ed89533f2f530903e3b933b638940e921aa'
example:
orderId: fc7-128
status: refunded
comment: "Customer requested gift wrapping and a personalized note saying: Happy Birthday, Ford! \U0001F389 Please ensure the item is packed with extra bubble wrap for safe transit."
orderComment: "Please gift wrap with a personal note saying \"Happy Birthday, Ford! \U0001F389"
acceptedOn: '2024-03-29T21:29:21.555Z'
fulfilledOn: '2024-03-29T21:29:21.555Z'
refundedOn: '2024-04-08T18:25:04.238Z'
disputedOn: '2024-03-29T21:29:21.555Z'
disputeUpdatedOn: '2024-03-29T21:29:21.555Z'
disputeLastStatus: charge_refunded
customerPaid:
unit: USD
value: 11873
string: $ 118.73 USD
netAmount:
unit: USD
value: 11262
string: $ 112.62 USD
applicationFee:
unit: USD
value: 237
string: $ 2.37 USD
allAddresses:
- type: billing
addressee: Arthur Dent
line1: 20 W 34th St
line2: Empire State Building
city: New York
state: New York
country: US
postalCode: '10118'
- type: shipping
addressee: Arthur Dent
line1: 20 W 34th St
line2: Empire State Building
city: New York
state: New York
country: US
postalCode: '10118'
shippingAddress:
type: shipping
japanType: kanji
addressee: Arthur Dent
line1: 20 W 34th St
line2: Empire State Building
city: New York
state: New York
country: US
postalCode: '10118'
shippingProvider: 'Shipping Company, Co.'
shippingTracking: tr00000000001
shippingTrackingURL: 'https://www.shippingcompany.com/tracking/tr00000000001'
customerInfo:
fullName: Arthur Dent
email: arthur.dent@example.com
purchasedItems:
- count: 1
rowTotal:
unit: USD
value: 5561
string: $ 55.61 USD
productId: 66072fb61b89448912e26791
productName: Luxurious Fresh Ball
productSlug: luxurious-fresh-ball
variantId: 66072fb71b89448912e2683f
variantName: 'Luxurious Fresh Ball Generic: Bronze, Practical: Plastic'
variantSlug: luxurious-fresh-ball-generic-bronze-practical-plastic
variantSKU: luxurious-fresh-ball-generic-bronze-practical-plastic
variantImage:
url: 'https://d1otoma47x30pg.cloudfront.net/66072f39417a2a35b2589cc7/66072fb51b89448912e2672c_image14.jpeg'
file: null
variantPrice:
unit: USD
value: 5561
string: $ 55.61 USD
weight: 11
height: 70
width: 82
length: 9
- count: 1
rowTotal:
unit: USD
value: 5344
string: $ 53.44 USD
productId: 66072fb61b89448912e26799
productName: Recycled Steel Gloves
productSlug: recycled-steel-gloves
variantId: 66072fb91b89448912e26ab9
variantName: 'Recycled Steel Gloves Electronic: Granite, Handcrafted: grey'
variantSlug: recycled-steel-gloves-electronic-granite-handcrafted-grey
variantSKU: recycled-steel-gloves-electronic-granite-handcrafted-grey
variantImage:
url: 'https://d1otoma47x30pg.cloudfront.net/66072f39417a2a35b2589cc7/66072fb51b89448912e2671e_image2.jpeg'
file: null
variantPrice:
unit: USD
value: 5344
string: $ 53.44 USD
weight: 38
height: 85
width: 76
length: 40
purchasedItemsCount: 2
stripeDetails:
customerId: cus_PpRsNHwWdUoRKR
paymentMethod: pm_1OzmzBJYFi4lcbXWHKNdXU7j
chargeId: ch_3OzmzDJYFi4lcbXW1ndkkrH2
disputeId: null
paymentIntentId: pi_3OzmzDJYFi4lcbXW1hTBW6ft
subscriptionId: null
refundId: re_3OzmzDJYFi4lcbXW1kFAmlBk
refundReason: fraudulent
stripeCard:
last4: '4242'
brand: Visa
ownerName: Arthur Dent
expires:
month: 4
year: 2024
paypalDetails: null
customData:
- {}
metadata:
isBuyNow: false
hasDownloads: false
paymentProcessor: stripe
billingAddress:
type: billing
addressee: Arthur Dent
line1: 20 W 34th St
line2: Empire State Building
city: New York
state: New York
country: US
postalCode: '10118'
totals:
subtotal:
unit: USD
value: 10905
string: $ 109.05 USD
extras:
- type: tax
name: State Taxes
description: NY Taxes (4.00%)
price:
unit: USD
value: 436
string: $ 4.36 USD
- type: tax
name: City Taxes
description: NEW YORK Taxes (4.88%)
price:
unit: USD
value: 532
string: $ 5.32 USD
- type: shipping
name: Flat
description: ''
price:
unit: USD
value: 0
string: $ 0.00 USD
total:
unit: USD
value: 11873
string: $ 118.73 USD
isCustomerDeleted: false
isShippingRequired: true
downloadFiles:
- id: 5e9a5eba75e0ac242e1b6f64
name: New product guide
url: 'https://webflow.com/dashboard/download-digital-product?payload=5d93ba5e38c6b0160ab711d3;e7634a;5eb1aac72912ec06f561278c;5e9a5eba75e0ac242e1b6f63:ka2nehxy:4a1ee0a632feaab94294350087215ed89533f2f530903e3b933b638940e921aa'
'400':
description: Request body was incorrectly formatted. Likely invalid JSON being sent up.
'401':
description: Provided access token is invalid or does not have access to requested resource
'403':
description: 'Provided access token is valid, but is missing the required scopes.'
content:
application/json:
schema:
type: object
properties:
status:
type: integer
example: 403
message:
type: string
publicErrorCode:
type: string
externalReference:
type: string
nullable: true
details:
type: array
items:
type: string
'404':
description: Requested resource not found
'409':
description: The site does not have ecommerce enabled.
content:
application/json:
schema:
allOf:
- example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
details:
type: array
description: Array of errors
items:
type:
- string
- object
- properties:
code:
type: string
description: Error code
enum:
- ecommerce_not_enabled
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
patch:
x-fern-sdk-group-name: orders
x-fern-sdk-method-name: update
security:
- OAuth2:
- 'ecommerce:write'
operationId: update-order
summary: Update Order
description: |
This API lets you update the fields, `comment`, `shippingProvider`, and/or `shippingTracking` for a given order. All three fields can be updated simultaneously or independently.
Required scope | `ecommerce:write`
tags:
- Orders
parameters:
- name: site_id
in: path
description: Unique identifier for a Site
example: 580e63e98c9a982ac9b8b741
required: true
schema:
type: string
format: objectid
default: null
- name: order_id
in: path
description: Unique identifier for an Order
example: 5e8518516e147040726cc415
required: true
schema:
type: string
format: objectid
requestBody:
description: The order fields to update
required: true
content:
application/json:
schema:
description: The order to update
properties:
comment:
type: string
description: Arbitrary data for your records
example: Example comment to myself
shippingProvider:
type: string
description: Company or method used to ship order
example: 'Shipping Company, Co.'
shippingTracking:
type: string
description: Tracking number for order shipment
example: tr00000000001
shippingTrackingURL:
type: string
description: URL to track order shipment
example: 'https://www.shippingcompany.com/tracking/tr00000000001'
responses:
'200':
description: Request was successful
content:
application/json:
schema:
type: object
properties:
orderId:
type: string
readOnly: true
description: |
The order id. Will usually be 6 hex characters, but can also be 9 hex characters if the site has a very large number of Orders. Randomly assigned.
example: dfa-3f1
status:
type: string
example: unfulfilled
description: |
The status of the Order
enum:
- pending
- unfulfilled
- fulfilled
- disputed
- dispute-lost
- refunded
comment:
type: string
description: 'A comment string for this Order, which is editable by API user (not used by Webflow).'
example: "Customer requested gift wrapping and a personalized note saying: Happy Birthday, Ford! \U0001F389 Please ensure the item is packed with extra bubble wrap for safe transit."
orderComment:
type: string
description: A comment that the customer left when making their Order
example: "Please gift wrap with a personal note saying \"Happy Birthday, Ford! \U0001F389"
acceptedOn:
type: string
format: date-time
nullable: true
description: The ISO8601 timestamp that an Order was placed.
example: 2018-12-03T22:06:15.761Z
fulfilledOn:
type: string
format: date-time
nullable: true
description: |
When an Order is marked as 'fulfilled', this field represents the timestamp of the fulfillment in ISO8601 format. Otherwise, it is null.
example: 2018-12-03T22:06:15.761Z
refundedOn:
type: string
format: date-time
nullable: true
description: 'When an Order is marked as ''refunded'', this field represents the timestamp of the fulfillment in ISO8601 format. Otherwise, it is null.'
example: 2018-12-03T22:06:15.761Z
disputedOn:
type: string
format: date-time
nullable: true
description: |
When an Order is marked as 'disputed', this field represents the timestamp of the fulfillment in ISO8601 format. Otherwise, it is null.
example: 2018-12-03T22:06:15.761Z
disputeUpdatedOn:
type: string
format: date-time
nullable: true
description: |
If an Order has been disputed by the customer, this key will be set to the ISO8601 timestamp of the last update received. If the Order is not disputed, the key will be null.
example: 2018-12-03T22:06:15.761Z
disputeLastStatus:
type: string
description: |
If an order was disputed by the customer, then this key will be set with the [dispute's status](https://stripe.com/docs/api#dispute_object-status).
example: null
enum:
- warning_needs_response
- warning_under_review
- warning_closed
- needs_response
- under_review
- charge_refunded
- won
- lost
nullable: true
customerPaid:
description: The total paid by the customer
properties:
unit:
description: The three-letter ISO currency code
type: string
example: USD
value:
description: The numeric value in the base unit of the currency
type: string
example: '5892'
string:
description: The user-facing string representation of the amount
type: string
example: $58.92
netAmount:
description: The net amount after application fees
properties:
unit:
description: The three-letter ISO currency code
type: string
example: USD
value:
description: The numeric value in the base unit of the currency
type: string
example: '5892'
string:
description: The user-facing string representation of the amount
type: string
example: $58.92
applicationFee:
description: The application fee assessed by the platform
properties:
unit:
description: The three-letter ISO currency code
type: string
example: USD
value:
description: The numeric value in the base unit of the currency
type: string
example: '5892'
string:
description: The user-facing string representation of the amount
type: string
example: $58.92
allAddresses:
description: All addresses provided by the customer during the ordering flow.
type: array
example:
- type: shipping
japanType: kanji
addressee: Custmerio Namen
line1: 123 Example Road
line2: Unit 3
city: Examplesville
state: CA
country: US
postalCode: 90012
- type: billing
japanType: kanji
addressee: Custmerio Namen
line1: 123 Example Road
line2: Unit 3
city: Examplesville
state: CA
country: US
postalCode: 90012
items:
description: A customer address
properties:
type:
description: The type of the order address (billing or shipping)
type: string
enum:
- shipping
- billing
example: shipping
japanType:
description: Represents a Japan-only address format. This field will only appear on orders placed from Japan.
type: string
enum:
- kana
- kanji
nullable: true
example: kanji
addressee:
description: Display name on the address
type: string
example: Customerio Namen
line1:
type: string
example: 123 Example Rd
description: The first line of the address
line2:
type: string
example: ''
description: The second line of the address
city:
type: string
example: Examplesville
description: The city of the address.
state:
type: string
example: CA
description: The state or province of the address
country:
type: string
example: US
description: The country of the address
postalCode:
type: string
example: 90012
description: The postal code of the address
shippingAddress:
description: The shipping address
example:
type: shipping
japanType: kanji
addressee: Custmerio Namen
line1: 123 Example Road
line2: Unit 3
city: Examplesville
state: CA
country: US
postalCode: 90012
properties:
type:
description: The type of the order address (billing or shipping)
type: string
enum:
- shipping
- billing
example: shipping
japanType:
description: Represents a Japan-only address format. This field will only appear on orders placed from Japan.
type: string
enum:
- kana
- kanji
nullable: true
example: kanji
addressee:
description: Display name on the address
type: string
example: Customerio Namen
line1:
type: string
example: 123 Example Rd
description: The first line of the address
line2:
type: string
example: ''
description: The second line of the address
city:
type: string
example: Examplesville
description: The city of the address.
state:
type: string
example: CA
description: The state or province of the address
country:
type: string
example: US
description: The country of the address
postalCode:
type: string
example: 90012
description: The postal code of the address
billingAddress:
description: The billing address
example:
type: billing
japanType: kanji
addressee: Custmerio Namen
line1: 123 Example Road
line2: Unit 3
city: Examplesville
state: CA
country: US
postalCode: 90012
properties:
type:
description: The type of the order address (billing or shipping)
type: string
enum:
- shipping
- billing
example: shipping
japanType:
description: Represents a Japan-only address format. This field will only appear on orders placed from Japan.
type: string
enum:
- kana
- kanji
nullable: true
example: kanji
addressee:
description: Display name on the address
type: string
example: Customerio Namen
line1:
type: string
example: 123 Example Rd
description: The first line of the address
line2:
type: string
example: ''
description: The second line of the address
city:
type: string
example: Examplesville
description: The city of the address.
state:
type: string
example: CA
description: The state or province of the address
country:
type: string
example: US
description: The country of the address
postalCode:
type: string
example: 90012
description: The postal code of the address
shippingProvider:
type: string
description: |
A string editable by the API user to note the shipping provider used (not used by Webflow).
example: USPS
nullable: true
shippingTracking:
type: string
description: |
A string editable by the API user to note the shipping tracking number for the order (not used by Webflow).
example: RA401558525US
nullable: true
shippingTrackingURL:
type: string
format: uri
example: shipping.test.com/RA401558525US
nullable: true
customerInfo:
description: An object with the keys `fullName` and `email`.
properties:
fullName:
description: The full name of the Customer
type: string
example: Customerio Namen
email:
description: The Customer's email address
type: string
format: email
example: renning@webflow.com
purchasedItems:
type: array
description: An array of all things that the Customer purchased.
items:
description: An Item that was purchased
properties:
count:
type: number
example: 1
description: Number of Item purchased.
rowTotal:
description: The total for the row
properties:
unit:
description: The three-letter ISO currency code
type: string
example: USD
value:
description: The numeric value in the base unit of the currency
type: string
example: '5892'
string:
description: The user-facing string representation of the amount
type: string
example: $58.92
productId:
type: string
format: objectid
description: The unique identifier for the Product
readOnly: true
example: 5eb9fd05caef491eb9757183
productName:
type: string
description: User-facing name of the Product
example: White Cup
productSlug:
type: string
description: Slug for the Product
example: white-cup
variantId:
type: string
description: Identifier for the Product Variant (SKU)
example: 5eb9fcace279761d8199790c
variantName:
type: string
description: User-facing name of the Product Variant (SKU)
example: Red
variantSlug:
type: string
description: Slug for the Product Variant (SKU)
example: red
variantSKU:
description: The user-defined custom SKU of the Product Variant (SKU)
type: string
example: red-medium
variantImage:
properties:
url:
description: The hosted location for the Variant's image
type: string
format: uri
example: 'https://d1otoma47x30pg.cloudfront.net/5bfedb42bab0ad90fa7dac03/5bfedb42bab0ad90fa7dad2e_5bb3d019b3465c6e8a324dd7_458036-unsplas.png'
file:
type: object
properties:
size:
description: The image size in bytes
type: number
example: 21064
originalFileName:
description: the original name of the image
type: string
example: cup.jpg
createdOn:
description: The creation timestamp of the image
type: string
format: date-time
example: 2018-12-03T22:06:15.761Z
contentType:
description: The MIME type of the image
format: mime-type
type: string
example: image/jpeg
width:
description: The image width in pixels
type: integer
example: 640
height:
description: The image height in pixels
type: integer
example: 480
variants:
description: Variants of the supplied image
type: array
items:
type: object
properties:
url:
description: The hosted location for the Variant's image
format: uri
type: string
example: 'https://d1otoma47x30pg.cloudfront.net/5bfedb42bab0ad90fa7dac03/5bfedb42bab0ad90fa7dad2e_5bb3d019b3465c6e8a324dd7_458036-example.png'
originalFileName:
type: string
example: cup.jpg
size:
description: The image size in bytes
type: number
example: 12040
width:
description: The image width in pixels
type: integer
example: 320
height:
description: The image height in pixels
type: integer
example: 240
variantPrice:
description: The price corresponding to the variant
properties:
unit:
description: The three-letter ISO currency code
type: string
example: USD
value:
description: The numeric value in the base unit of the currency
type: string
example: '5892'
string:
description: The user-facing string representation of the amount
type: string
example: $58.92
weight:
type: number
example: 5
default: null
nullable: true
description: 'The physical weight of the variant if provided, or null'
width:
type: number
example: 4
nullable: true
default: null
description: 'The physical width of the variant if provided, or null'
height:
type: number
example: 7
nullable: true
default: null
description: 'The physical height of the variant if provided, or null'
length:
type: number
example: 2
nullable: true
default: null
description: 'The physical length of the variant if provided, or null'
purchasedItemsCount:
type: number
description: The sum of all 'count' fields in 'purchasedItems'.
example: 1
stripeDetails:
description: 'An object with various Stripe IDs, useful for linking into the stripe dashboard.'
properties:
subscriptionId:
type: string
format: objectid
example: sub_1J6xwG2eZvKYlo2CXu9Zt0Tn
nullable: true
description: Stripe-generated identifier for the Subscription
paymentMethod:
type: string
format: objectid
example: pm_1J6xwG2eZvKYlo2CXu9Zt0Tn
nullable: true
description: Stripe-generated identifier for the PaymentMethod used
paymentIntentId:
type: string
format: objectid
example: pi_1J6xwG2eZvKYlo2CXu9Zt0Tn
nullable: true
description: 'Stripe-generated identifier for the PaymentIntent, or null'
customerId:
type: string
format: objectid
example: cus_E5ajeiWNHEtcAW
description: 'Stripe-generated customer identifier, or null'
nullable: true
chargeId:
type: string
format: objectid
description: 'Stripe-generated charge identifier, or null'
example: ch_1DdPYQKMjGA7k9mI2AKiBY6u
nullable: true
disputeId:
type: string
format: objectid
description: 'Stripe-generated dispute identifier, or null'
example: null
nullable: true
refundId:
type: string
format: objectid
description: 'Stripe-generated refund identifier, or null'
example: null
nullable: true
refundReason:
type: string
description: 'Stripe-generated refund reason, or null'
example: requested_by_customer
nullable: true
stripeCard:
description: |
Details on the card used to fulfill this order, if this order was finalized with Stripe.
properties:
last4:
type: string
description: The last 4 digits on the card as a string
example: '4242'
brand:
type: string
description: The card's brand (ie. credit card network)
example: Visa
enum:
- Visa
- American Express
- MasterCard
- Discover
- JCB
- Diners Club
- Unknown
ownerName:
type: string
description: The name on the card.
example: Customerio Namen
expires:
type: object
description: The card's expiration date.
properties:
year:
description: Year that the card expires
type: number
example: 2025
month:
description: Month that the card expires
type: number
example: 12
paypalDetails:
type: object
properties:
orderId:
type: string
description: PayPal order identifier
example: 1a2b3c4d5e6f7g8h9i0j
payerId:
type: string
description: PayPal payer identifier
example: 9k8j7i6h5g4f3e2d1c0b
captureId:
type: string
description: PayPal capture identifier
example: qwe123rty456uio789p
refundId:
type: string
description: PayPal refund identifier
example: abcde12345fghij67890
refundReason:
type: string
description: PayPal-issued reason for the refund
example: Customer requested refund
disputeId:
type: string
description: PayPal dispute identifier
example: zxcvbnm987poiuytrewq
customData:
type: array
additionalProperties: true
description: |
An array of additional inputs for custom order data gathering. Each object in the array represents an input with a name, and a textInput, textArea, or checkbox value.
items:
type: object
metadata:
type: object
properties:
isBuyNow:
type: boolean
example: false
isCustomerDeleted:
type: boolean
description: |
A boolean indicating whether the customer has been deleted from the site.
example: false
isShippingRequired:
type: boolean
description: |
A boolean indicating whether the order contains one or more purchased items that require shipping.
example: false
hasDownloads:
type: boolean
description: |
A boolean indicating whether the order contains one or more purchased items that are downloadable.
example: false
paymentProcessor:
type: string
description: |
A string indicating the payment processor used for this order.
example: stripe
totals:
description: An object describing various pricing totals
properties:
subtotal:
description: The subtotal price
properties:
unit:
description: The three-letter ISO currency code
type: string
example: USD
value:
description: The numeric value in the base unit of the currency
type: string
example: '5892'
string:
description: The user-facing string representation of the amount
type: string
example: $58.92
extras:
type: array
description: 'An array of extra items, includes discounts, shipping, and taxes.'
items:
description: 'Extra order items, includes discounts, shipping, and taxes.'
example:
type: tax
name: State Taxes
description: CA Taxes (6.25%)
price:
unit: USD
value: 344
string: $3.44
properties:
type:
type: string
example: tax
description: The type of extra item this is.
enum:
- discount
- discount-shipping
- shipping
- tax
name:
type: string
description: A human-readable (but English) name for this extra charge.
example: shipping
description:
type: string
description: A human-readable (but English) description of this extra charge.
example: Flat Rate
price:
description: The price for the item
properties:
unit:
description: The three-letter ISO currency code
type: string
example: USD
value:
description: The numeric value in the base unit of the currency
type: string
example: '5892'
string:
description: The user-facing string representation of the amount
type: string
example: $58.92
total:
description: The total price
properties:
unit:
description: The three-letter ISO currency code
type: string
example: USD
value:
description: The numeric value in the base unit of the currency
type: string
example: '5892'
string:
description: The user-facing string representation of the amount
type: string
example: $58.92
downloadFiles:
description: An array of downloadable file objects.
type: array
default: []
items:
properties:
id:
type: string
description: The unique identifier for the downloadable file
example: 5e9a5eba75e0ac242e1b6f64
name:
type: string
description: The user-facing name for the downloadable file
example: The modern web design process - Webflow Ebook.pdf
url:
type: string
format: uri
description: The hosted location for the downloadable file
example: 'https://webflow.com/dashboard/download-digital-product?payload=5d93ba5e38c6b0160ab711d3;e7634a;5eb1aac72912ec06f561278c;5e9a5eba75e0ac242e1b6f63:ka2nehxy:4a1ee0a632feaab94294350087215ed89533f2f530903e3b933b638940e921aa'
example:
orderId: fc7-128
status: refunded
comment: "Customer requested gift wrapping and a personalized note saying: Happy Birthday, Ford! \U0001F389 Please ensure the item is packed with extra bubble wrap for safe transit."
orderComment: "Please gift wrap with a personal note saying \"Happy Birthday, Ford! \U0001F389"
acceptedOn: '2024-03-29T21:29:21.555Z'
fulfilledOn: '2024-03-29T21:29:21.555Z'
refundedOn: '2024-04-08T18:25:04.238Z'
disputedOn: '2024-03-29T21:29:21.555Z'
disputeUpdatedOn: '2024-03-29T21:29:21.555Z'
disputeLastStatus: charge_refunded
customerPaid:
unit: USD
value: 11873
string: $ 118.73 USD
netAmount:
unit: USD
value: 11262
string: $ 112.62 USD
applicationFee:
unit: USD
value: 237
string: $ 2.37 USD
allAddresses:
- type: billing
addressee: Arthur Dent
line1: 20 W 34th St
line2: Empire State Building
city: New York
state: New York
country: US
postalCode: '10118'
- type: shipping
addressee: Arthur Dent
line1: 20 W 34th St
line2: Empire State Building
city: New York
state: New York
country: US
postalCode: '10118'
shippingAddress:
type: shipping
japanType: kanji
addressee: Arthur Dent
line1: 20 W 34th St
line2: Empire State Building
city: New York
state: New York
country: US
postalCode: '10118'
shippingProvider: 'Shipping Company, Co.'
shippingTracking: tr00000000001
shippingTrackingURL: 'https://www.shippingcompany.com/tracking/tr00000000001'
customerInfo:
fullName: Arthur Dent
email: arthur.dent@example.com
purchasedItems:
- count: 1
rowTotal:
unit: USD
value: 5561
string: $ 55.61 USD
productId: 66072fb61b89448912e26791
productName: Luxurious Fresh Ball
productSlug: luxurious-fresh-ball
variantId: 66072fb71b89448912e2683f
variantName: 'Luxurious Fresh Ball Generic: Bronze, Practical: Plastic'
variantSlug: luxurious-fresh-ball-generic-bronze-practical-plastic
variantSKU: luxurious-fresh-ball-generic-bronze-practical-plastic
variantImage:
url: 'https://d1otoma47x30pg.cloudfront.net/66072f39417a2a35b2589cc7/66072fb51b89448912e2672c_image14.jpeg'
file: null
variantPrice:
unit: USD
value: 5561
string: $ 55.61 USD
weight: 11
height: 70
width: 82
length: 9
- count: 1
rowTotal:
unit: USD
value: 5344
string: $ 53.44 USD
productId: 66072fb61b89448912e26799
productName: Recycled Steel Gloves
productSlug: recycled-steel-gloves
variantId: 66072fb91b89448912e26ab9
variantName: 'Recycled Steel Gloves Electronic: Granite, Handcrafted: grey'
variantSlug: recycled-steel-gloves-electronic-granite-handcrafted-grey
variantSKU: recycled-steel-gloves-electronic-granite-handcrafted-grey
variantImage:
url: 'https://d1otoma47x30pg.cloudfront.net/66072f39417a2a35b2589cc7/66072fb51b89448912e2671e_image2.jpeg'
file: null
variantPrice:
unit: USD
value: 5344
string: $ 53.44 USD
weight: 38
height: 85
width: 76
length: 40
purchasedItemsCount: 2
stripeDetails:
customerId: cus_PpRsNHwWdUoRKR
paymentMethod: pm_1OzmzBJYFi4lcbXWHKNdXU7j
chargeId: ch_3OzmzDJYFi4lcbXW1ndkkrH2
disputeId: null
paymentIntentId: pi_3OzmzDJYFi4lcbXW1hTBW6ft
subscriptionId: null
refundId: re_3OzmzDJYFi4lcbXW1kFAmlBk
refundReason: fraudulent
stripeCard:
last4: '4242'
brand: Visa
ownerName: Arthur Dent
expires:
month: 4
year: 2024
paypalDetails: null
customData:
- {}
metadata:
isBuyNow: false
hasDownloads: false
paymentProcessor: stripe
billingAddress:
type: billing
addressee: Arthur Dent
line1: 20 W 34th St
line2: Empire State Building
city: New York
state: New York
country: US
postalCode: '10118'
totals:
subtotal:
unit: USD
value: 10905
string: $ 109.05 USD
extras:
- type: tax
name: State Taxes
description: NY Taxes (4.00%)
price:
unit: USD
value: 436
string: $ 4.36 USD
- type: tax
name: City Taxes
description: NEW YORK Taxes (4.88%)
price:
unit: USD
value: 532
string: $ 5.32 USD
- type: shipping
name: Flat
description: ''
price:
unit: USD
value: 0
string: $ 0.00 USD
total:
unit: USD
value: 11873
string: $ 118.73 USD
isCustomerDeleted: false
isShippingRequired: true
downloadFiles:
- id: 5e9a5eba75e0ac242e1b6f64
name: New product guide
url: 'https://webflow.com/dashboard/download-digital-product?payload=5d93ba5e38c6b0160ab711d3;e7634a;5eb1aac72912ec06f561278c;5e9a5eba75e0ac242e1b6f63:ka2nehxy:4a1ee0a632feaab94294350087215ed89533f2f530903e3b933b638940e921aa'
'400':
description: Request body was incorrectly formatted. Likely invalid JSON being sent up.
'401':
description: Provided access token is invalid or does not have access to requested resource
'403':
description: 'Provided access token is valid, but is missing the required scopes.'
content:
application/json:
schema:
type: object
properties:
status:
type: integer
example: 403
message:
type: string
publicErrorCode:
type: string
externalReference:
type: string
nullable: true
details:
type: array
items:
type: string
'404':
description: Requested resource not found
'409':
description: The site does not have ecommerce enabled.
content:
application/json:
schema:
allOf:
- example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
details:
type: array
description: Array of errors
items:
type:
- string
- object
- properties:
code:
type: string
description: Error code
enum:
- ecommerce_not_enabled
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
'/sites/{site_id}/orders/{order_id}/fulfill':
post:
x-fern-sdk-group-name: orders
x-fern-sdk-method-name: update-fulfill
security:
- OAuth2:
- 'ecommerce:write'
operationId: fulfill-order
summary: Fulfill Order
description: |
Updates an order's status to fulfilled
Required scope | `ecommerce:write`
tags:
- Orders
parameters:
- name: site_id
in: path
description: Unique identifier for a Site
example: 580e63e98c9a982ac9b8b741
required: true
schema:
type: string
format: objectid
default: null
- name: order_id
in: path
description: Unique identifier for an Order
example: 5e8518516e147040726cc415
required: true
schema:
type: string
format: objectid
requestBody:
description: The order fulfillment request
content:
application/json:
schema:
description: Update an order's status to fulfilled
properties:
sendOrderFulfilledEmail:
type: boolean
description: Whether or not the Order Fulfilled email should be sent
default: false
responses:
'200':
description: Request was successful
content:
application/json:
schema:
type: object
properties:
orderId:
type: string
readOnly: true
description: |
The order id. Will usually be 6 hex characters, but can also be 9 hex characters if the site has a very large number of Orders. Randomly assigned.
example: dfa-3f1
status:
type: string
example: unfulfilled
description: |
The status of the Order
enum:
- pending
- unfulfilled
- fulfilled
- disputed
- dispute-lost
- refunded
comment:
type: string
description: 'A comment string for this Order, which is editable by API user (not used by Webflow).'
example: "Customer requested gift wrapping and a personalized note saying: Happy Birthday, Ford! \U0001F389 Please ensure the item is packed with extra bubble wrap for safe transit."
orderComment:
type: string
description: A comment that the customer left when making their Order
example: "Please gift wrap with a personal note saying \"Happy Birthday, Ford! \U0001F389"
acceptedOn:
type: string
format: date-time
nullable: true
description: The ISO8601 timestamp that an Order was placed.
example: 2018-12-03T22:06:15.761Z
fulfilledOn:
type: string
format: date-time
nullable: true
description: |
When an Order is marked as 'fulfilled', this field represents the timestamp of the fulfillment in ISO8601 format. Otherwise, it is null.
example: 2018-12-03T22:06:15.761Z
refundedOn:
type: string
format: date-time
nullable: true
description: 'When an Order is marked as ''refunded'', this field represents the timestamp of the fulfillment in ISO8601 format. Otherwise, it is null.'
example: 2018-12-03T22:06:15.761Z
disputedOn:
type: string
format: date-time
nullable: true
description: |
When an Order is marked as 'disputed', this field represents the timestamp of the fulfillment in ISO8601 format. Otherwise, it is null.
example: 2018-12-03T22:06:15.761Z
disputeUpdatedOn:
type: string
format: date-time
nullable: true
description: |
If an Order has been disputed by the customer, this key will be set to the ISO8601 timestamp of the last update received. If the Order is not disputed, the key will be null.
example: 2018-12-03T22:06:15.761Z
disputeLastStatus:
type: string
description: |
If an order was disputed by the customer, then this key will be set with the [dispute's status](https://stripe.com/docs/api#dispute_object-status).
example: null
enum:
- warning_needs_response
- warning_under_review
- warning_closed
- needs_response
- under_review
- charge_refunded
- won
- lost
nullable: true
customerPaid:
description: The total paid by the customer
properties:
unit:
description: The three-letter ISO currency code
type: string
example: USD
value:
description: The numeric value in the base unit of the currency
type: string
example: '5892'
string:
description: The user-facing string representation of the amount
type: string
example: $58.92
netAmount:
description: The net amount after application fees
properties:
unit:
description: The three-letter ISO currency code
type: string
example: USD
value:
description: The numeric value in the base unit of the currency
type: string
example: '5892'
string:
description: The user-facing string representation of the amount
type: string
example: $58.92
applicationFee:
description: The application fee assessed by the platform
properties:
unit:
description: The three-letter ISO currency code
type: string
example: USD
value:
description: The numeric value in the base unit of the currency
type: string
example: '5892'
string:
description: The user-facing string representation of the amount
type: string
example: $58.92
allAddresses:
description: All addresses provided by the customer during the ordering flow.
type: array
example:
- type: shipping
japanType: kanji
addressee: Custmerio Namen
line1: 123 Example Road
line2: Unit 3
city: Examplesville
state: CA
country: US
postalCode: 90012
- type: billing
japanType: kanji
addressee: Custmerio Namen
line1: 123 Example Road
line2: Unit 3
city: Examplesville
state: CA
country: US
postalCode: 90012
items:
description: A customer address
properties:
type:
description: The type of the order address (billing or shipping)
type: string
enum:
- shipping
- billing
example: shipping
japanType:
description: Represents a Japan-only address format. This field will only appear on orders placed from Japan.
type: string
enum:
- kana
- kanji
nullable: true
example: kanji
addressee:
description: Display name on the address
type: string
example: Customerio Namen
line1:
type: string
example: 123 Example Rd
description: The first line of the address
line2:
type: string
example: ''
description: The second line of the address
city:
type: string
example: Examplesville
description: The city of the address.
state:
type: string
example: CA
description: The state or province of the address
country:
type: string
example: US
description: The country of the address
postalCode:
type: string
example: 90012
description: The postal code of the address
shippingAddress:
description: The shipping address
example:
type: shipping
japanType: kanji
addressee: Custmerio Namen
line1: 123 Example Road
line2: Unit 3
city: Examplesville
state: CA
country: US
postalCode: 90012
properties:
type:
description: The type of the order address (billing or shipping)
type: string
enum:
- shipping
- billing
example: shipping
japanType:
description: Represents a Japan-only address format. This field will only appear on orders placed from Japan.
type: string
enum:
- kana
- kanji
nullable: true
example: kanji
addressee:
description: Display name on the address
type: string
example: Customerio Namen
line1:
type: string
example: 123 Example Rd
description: The first line of the address
line2:
type: string
example: ''
description: The second line of the address
city:
type: string
example: Examplesville
description: The city of the address.
state:
type: string
example: CA
description: The state or province of the address
country:
type: string
example: US
description: The country of the address
postalCode:
type: string
example: 90012
description: The postal code of the address
billingAddress:
description: The billing address
example:
type: billing
japanType: kanji
addressee: Custmerio Namen
line1: 123 Example Road
line2: Unit 3
city: Examplesville
state: CA
country: US
postalCode: 90012
properties:
type:
description: The type of the order address (billing or shipping)
type: string
enum:
- shipping
- billing
example: shipping
japanType:
description: Represents a Japan-only address format. This field will only appear on orders placed from Japan.
type: string
enum:
- kana
- kanji
nullable: true
example: kanji
addressee:
description: Display name on the address
type: string
example: Customerio Namen
line1:
type: string
example: 123 Example Rd
description: The first line of the address
line2:
type: string
example: ''
description: The second line of the address
city:
type: string
example: Examplesville
description: The city of the address.
state:
type: string
example: CA
description: The state or province of the address
country:
type: string
example: US
description: The country of the address
postalCode:
type: string
example: 90012
description: The postal code of the address
shippingProvider:
type: string
description: |
A string editable by the API user to note the shipping provider used (not used by Webflow).
example: USPS
nullable: true
shippingTracking:
type: string
description: |
A string editable by the API user to note the shipping tracking number for the order (not used by Webflow).
example: RA401558525US
nullable: true
shippingTrackingURL:
type: string
format: uri
example: shipping.test.com/RA401558525US
nullable: true
customerInfo:
description: An object with the keys `fullName` and `email`.
properties:
fullName:
description: The full name of the Customer
type: string
example: Customerio Namen
email:
description: The Customer's email address
type: string
format: email
example: renning@webflow.com
purchasedItems:
type: array
description: An array of all things that the Customer purchased.
items:
description: An Item that was purchased
properties:
count:
type: number
example: 1
description: Number of Item purchased.
rowTotal:
description: The total for the row
properties:
unit:
description: The three-letter ISO currency code
type: string
example: USD
value:
description: The numeric value in the base unit of the currency
type: string
example: '5892'
string:
description: The user-facing string representation of the amount
type: string
example: $58.92
productId:
type: string
format: objectid
description: The unique identifier for the Product
readOnly: true
example: 5eb9fd05caef491eb9757183
productName:
type: string
description: User-facing name of the Product
example: White Cup
productSlug:
type: string
description: Slug for the Product
example: white-cup
variantId:
type: string
description: Identifier for the Product Variant (SKU)
example: 5eb9fcace279761d8199790c
variantName:
type: string
description: User-facing name of the Product Variant (SKU)
example: Red
variantSlug:
type: string
description: Slug for the Product Variant (SKU)
example: red
variantSKU:
description: The user-defined custom SKU of the Product Variant (SKU)
type: string
example: red-medium
variantImage:
properties:
url:
description: The hosted location for the Variant's image
type: string
format: uri
example: 'https://d1otoma47x30pg.cloudfront.net/5bfedb42bab0ad90fa7dac03/5bfedb42bab0ad90fa7dad2e_5bb3d019b3465c6e8a324dd7_458036-unsplas.png'
file:
type: object
properties:
size:
description: The image size in bytes
type: number
example: 21064
originalFileName:
description: the original name of the image
type: string
example: cup.jpg
createdOn:
description: The creation timestamp of the image
type: string
format: date-time
example: 2018-12-03T22:06:15.761Z
contentType:
description: The MIME type of the image
format: mime-type
type: string
example: image/jpeg
width:
description: The image width in pixels
type: integer
example: 640
height:
description: The image height in pixels
type: integer
example: 480
variants:
description: Variants of the supplied image
type: array
items:
type: object
properties:
url:
description: The hosted location for the Variant's image
format: uri
type: string
example: 'https://d1otoma47x30pg.cloudfront.net/5bfedb42bab0ad90fa7dac03/5bfedb42bab0ad90fa7dad2e_5bb3d019b3465c6e8a324dd7_458036-example.png'
originalFileName:
type: string
example: cup.jpg
size:
description: The image size in bytes
type: number
example: 12040
width:
description: The image width in pixels
type: integer
example: 320
height:
description: The image height in pixels
type: integer
example: 240
variantPrice:
description: The price corresponding to the variant
properties:
unit:
description: The three-letter ISO currency code
type: string
example: USD
value:
description: The numeric value in the base unit of the currency
type: string
example: '5892'
string:
description: The user-facing string representation of the amount
type: string
example: $58.92
weight:
type: number
example: 5
default: null
nullable: true
description: 'The physical weight of the variant if provided, or null'
width:
type: number
example: 4
nullable: true
default: null
description: 'The physical width of the variant if provided, or null'
height:
type: number
example: 7
nullable: true
default: null
description: 'The physical height of the variant if provided, or null'
length:
type: number
example: 2
nullable: true
default: null
description: 'The physical length of the variant if provided, or null'
purchasedItemsCount:
type: number
description: The sum of all 'count' fields in 'purchasedItems'.
example: 1
stripeDetails:
description: 'An object with various Stripe IDs, useful for linking into the stripe dashboard.'
properties:
subscriptionId:
type: string
format: objectid
example: sub_1J6xwG2eZvKYlo2CXu9Zt0Tn
nullable: true
description: Stripe-generated identifier for the Subscription
paymentMethod:
type: string
format: objectid
example: pm_1J6xwG2eZvKYlo2CXu9Zt0Tn
nullable: true
description: Stripe-generated identifier for the PaymentMethod used
paymentIntentId:
type: string
format: objectid
example: pi_1J6xwG2eZvKYlo2CXu9Zt0Tn
nullable: true
description: 'Stripe-generated identifier for the PaymentIntent, or null'
customerId:
type: string
format: objectid
example: cus_E5ajeiWNHEtcAW
description: 'Stripe-generated customer identifier, or null'
nullable: true
chargeId:
type: string
format: objectid
description: 'Stripe-generated charge identifier, or null'
example: ch_1DdPYQKMjGA7k9mI2AKiBY6u
nullable: true
disputeId:
type: string
format: objectid
description: 'Stripe-generated dispute identifier, or null'
example: null
nullable: true
refundId:
type: string
format: objectid
description: 'Stripe-generated refund identifier, or null'
example: null
nullable: true
refundReason:
type: string
description: 'Stripe-generated refund reason, or null'
example: requested_by_customer
nullable: true
stripeCard:
description: |
Details on the card used to fulfill this order, if this order was finalized with Stripe.
properties:
last4:
type: string
description: The last 4 digits on the card as a string
example: '4242'
brand:
type: string
description: The card's brand (ie. credit card network)
example: Visa
enum:
- Visa
- American Express
- MasterCard
- Discover
- JCB
- Diners Club
- Unknown
ownerName:
type: string
description: The name on the card.
example: Customerio Namen
expires:
type: object
description: The card's expiration date.
properties:
year:
description: Year that the card expires
type: number
example: 2025
month:
description: Month that the card expires
type: number
example: 12
paypalDetails:
type: object
properties:
orderId:
type: string
description: PayPal order identifier
example: 1a2b3c4d5e6f7g8h9i0j
payerId:
type: string
description: PayPal payer identifier
example: 9k8j7i6h5g4f3e2d1c0b
captureId:
type: string
description: PayPal capture identifier
example: qwe123rty456uio789p
refundId:
type: string
description: PayPal refund identifier
example: abcde12345fghij67890
refundReason:
type: string
description: PayPal-issued reason for the refund
example: Customer requested refund
disputeId:
type: string
description: PayPal dispute identifier
example: zxcvbnm987poiuytrewq
customData:
type: array
additionalProperties: true
description: |
An array of additional inputs for custom order data gathering. Each object in the array represents an input with a name, and a textInput, textArea, or checkbox value.
items:
type: object
metadata:
type: object
properties:
isBuyNow:
type: boolean
example: false
isCustomerDeleted:
type: boolean
description: |
A boolean indicating whether the customer has been deleted from the site.
example: false
isShippingRequired:
type: boolean
description: |
A boolean indicating whether the order contains one or more purchased items that require shipping.
example: false
hasDownloads:
type: boolean
description: |
A boolean indicating whether the order contains one or more purchased items that are downloadable.
example: false
paymentProcessor:
type: string
description: |
A string indicating the payment processor used for this order.
example: stripe
totals:
description: An object describing various pricing totals
properties:
subtotal:
description: The subtotal price
properties:
unit:
description: The three-letter ISO currency code
type: string
example: USD
value:
description: The numeric value in the base unit of the currency
type: string
example: '5892'
string:
description: The user-facing string representation of the amount
type: string
example: $58.92
extras:
type: array
description: 'An array of extra items, includes discounts, shipping, and taxes.'
items:
description: 'Extra order items, includes discounts, shipping, and taxes.'
example:
type: tax
name: State Taxes
description: CA Taxes (6.25%)
price:
unit: USD
value: 344
string: $3.44
properties:
type:
type: string
example: tax
description: The type of extra item this is.
enum:
- discount
- discount-shipping
- shipping
- tax
name:
type: string
description: A human-readable (but English) name for this extra charge.
example: shipping
description:
type: string
description: A human-readable (but English) description of this extra charge.
example: Flat Rate
price:
description: The price for the item
properties:
unit:
description: The three-letter ISO currency code
type: string
example: USD
value:
description: The numeric value in the base unit of the currency
type: string
example: '5892'
string:
description: The user-facing string representation of the amount
type: string
example: $58.92
total:
description: The total price
properties:
unit:
description: The three-letter ISO currency code
type: string
example: USD
value:
description: The numeric value in the base unit of the currency
type: string
example: '5892'
string:
description: The user-facing string representation of the amount
type: string
example: $58.92
downloadFiles:
description: An array of downloadable file objects.
type: array
default: []
items:
properties:
id:
type: string
description: The unique identifier for the downloadable file
example: 5e9a5eba75e0ac242e1b6f64
name:
type: string
description: The user-facing name for the downloadable file
example: The modern web design process - Webflow Ebook.pdf
url:
type: string
format: uri
description: The hosted location for the downloadable file
example: 'https://webflow.com/dashboard/download-digital-product?payload=5d93ba5e38c6b0160ab711d3;e7634a;5eb1aac72912ec06f561278c;5e9a5eba75e0ac242e1b6f63:ka2nehxy:4a1ee0a632feaab94294350087215ed89533f2f530903e3b933b638940e921aa'
example:
orderId: fc7-128
status: refunded
comment: "Customer requested gift wrapping and a personalized note saying: Happy Birthday, Ford! \U0001F389 Please ensure the item is packed with extra bubble wrap for safe transit."
orderComment: "Please gift wrap with a personal note saying \"Happy Birthday, Ford! \U0001F389"
acceptedOn: '2024-03-29T21:29:21.555Z'
fulfilledOn: '2024-03-29T21:29:21.555Z'
refundedOn: '2024-04-08T18:25:04.238Z'
disputedOn: '2024-03-29T21:29:21.555Z'
disputeUpdatedOn: '2024-03-29T21:29:21.555Z'
disputeLastStatus: charge_refunded
customerPaid:
unit: USD
value: 11873
string: $ 118.73 USD
netAmount:
unit: USD
value: 11262
string: $ 112.62 USD
applicationFee:
unit: USD
value: 237
string: $ 2.37 USD
allAddresses:
- type: billing
addressee: Arthur Dent
line1: 20 W 34th St
line2: Empire State Building
city: New York
state: New York
country: US
postalCode: '10118'
- type: shipping
addressee: Arthur Dent
line1: 20 W 34th St
line2: Empire State Building
city: New York
state: New York
country: US
postalCode: '10118'
shippingAddress:
type: shipping
japanType: kanji
addressee: Arthur Dent
line1: 20 W 34th St
line2: Empire State Building
city: New York
state: New York
country: US
postalCode: '10118'
shippingProvider: 'Shipping Company, Co.'
shippingTracking: tr00000000001
shippingTrackingURL: 'https://www.shippingcompany.com/tracking/tr00000000001'
customerInfo:
fullName: Arthur Dent
email: arthur.dent@example.com
purchasedItems:
- count: 1
rowTotal:
unit: USD
value: 5561
string: $ 55.61 USD
productId: 66072fb61b89448912e26791
productName: Luxurious Fresh Ball
productSlug: luxurious-fresh-ball
variantId: 66072fb71b89448912e2683f
variantName: 'Luxurious Fresh Ball Generic: Bronze, Practical: Plastic'
variantSlug: luxurious-fresh-ball-generic-bronze-practical-plastic
variantSKU: luxurious-fresh-ball-generic-bronze-practical-plastic
variantImage:
url: 'https://d1otoma47x30pg.cloudfront.net/66072f39417a2a35b2589cc7/66072fb51b89448912e2672c_image14.jpeg'
file: null
variantPrice:
unit: USD
value: 5561
string: $ 55.61 USD
weight: 11
height: 70
width: 82
length: 9
- count: 1
rowTotal:
unit: USD
value: 5344
string: $ 53.44 USD
productId: 66072fb61b89448912e26799
productName: Recycled Steel Gloves
productSlug: recycled-steel-gloves
variantId: 66072fb91b89448912e26ab9
variantName: 'Recycled Steel Gloves Electronic: Granite, Handcrafted: grey'
variantSlug: recycled-steel-gloves-electronic-granite-handcrafted-grey
variantSKU: recycled-steel-gloves-electronic-granite-handcrafted-grey
variantImage:
url: 'https://d1otoma47x30pg.cloudfront.net/66072f39417a2a35b2589cc7/66072fb51b89448912e2671e_image2.jpeg'
file: null
variantPrice:
unit: USD
value: 5344
string: $ 53.44 USD
weight: 38
height: 85
width: 76
length: 40
purchasedItemsCount: 2
stripeDetails:
customerId: cus_PpRsNHwWdUoRKR
paymentMethod: pm_1OzmzBJYFi4lcbXWHKNdXU7j
chargeId: ch_3OzmzDJYFi4lcbXW1ndkkrH2
disputeId: null
paymentIntentId: pi_3OzmzDJYFi4lcbXW1hTBW6ft
subscriptionId: null
refundId: re_3OzmzDJYFi4lcbXW1kFAmlBk
refundReason: fraudulent
stripeCard:
last4: '4242'
brand: Visa
ownerName: Arthur Dent
expires:
month: 4
year: 2024
paypalDetails: null
customData:
- {}
metadata:
isBuyNow: false
hasDownloads: false
paymentProcessor: stripe
billingAddress:
type: billing
addressee: Arthur Dent
line1: 20 W 34th St
line2: Empire State Building
city: New York
state: New York
country: US
postalCode: '10118'
totals:
subtotal:
unit: USD
value: 10905
string: $ 109.05 USD
extras:
- type: tax
name: State Taxes
description: NY Taxes (4.00%)
price:
unit: USD
value: 436
string: $ 4.36 USD
- type: tax
name: City Taxes
description: NEW YORK Taxes (4.88%)
price:
unit: USD
value: 532
string: $ 5.32 USD
- type: shipping
name: Flat
description: ''
price:
unit: USD
value: 0
string: $ 0.00 USD
total:
unit: USD
value: 11873
string: $ 118.73 USD
isCustomerDeleted: false
isShippingRequired: true
downloadFiles:
- id: 5e9a5eba75e0ac242e1b6f64
name: New product guide
url: 'https://webflow.com/dashboard/download-digital-product?payload=5d93ba5e38c6b0160ab711d3;e7634a;5eb1aac72912ec06f561278c;5e9a5eba75e0ac242e1b6f63:ka2nehxy:4a1ee0a632feaab94294350087215ed89533f2f530903e3b933b638940e921aa'
'400':
description: Request body was incorrectly formatted. Likely invalid JSON being sent up.
'401':
description: Provided access token is invalid or does not have access to requested resource
'403':
description: 'Provided access token is valid, but is missing the required scopes.'
content:
application/json:
schema:
type: object
properties:
status:
type: integer
example: 403
message:
type: string
publicErrorCode:
type: string
externalReference:
type: string
nullable: true
details:
type: array
items:
type: string
'404':
description: Requested resource not found
'409':
description: The site does not have ecommerce enabled.
content:
application/json:
schema:
allOf:
- example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
details:
type: array
description: Array of errors
items:
type:
- string
- object
- properties:
code:
type: string
description: Error code
enum:
- ecommerce_not_enabled
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
'/sites/{site_id}/orders/{order_id}/unfulfill':
post:
x-fern-sdk-group-name: orders
x-fern-sdk-method-name: update-unfulfill
security:
- OAuth2:
- 'ecommerce:write'
operationId: unfulfill-order
summary: Unfulfill Order
description: |
Updates an order's status to unfulfilled
Required scope | `ecommerce:write`
tags:
- Orders
parameters:
- name: site_id
in: path
description: Unique identifier for a Site
example: 580e63e98c9a982ac9b8b741
required: true
schema:
type: string
format: objectid
default: null
- name: order_id
in: path
description: Unique identifier for an Order
example: 5e8518516e147040726cc415
required: true
schema:
type: string
format: objectid
responses:
'200':
description: Request was successful
content:
application/json:
schema:
type: object
properties:
orderId:
type: string
readOnly: true
description: |
The order id. Will usually be 6 hex characters, but can also be 9 hex characters if the site has a very large number of Orders. Randomly assigned.
example: dfa-3f1
status:
type: string
example: unfulfilled
description: |
The status of the Order
enum:
- pending
- unfulfilled
- fulfilled
- disputed
- dispute-lost
- refunded
comment:
type: string
description: 'A comment string for this Order, which is editable by API user (not used by Webflow).'
example: "Customer requested gift wrapping and a personalized note saying: Happy Birthday, Ford! \U0001F389 Please ensure the item is packed with extra bubble wrap for safe transit."
orderComment:
type: string
description: A comment that the customer left when making their Order
example: "Please gift wrap with a personal note saying \"Happy Birthday, Ford! \U0001F389"
acceptedOn:
type: string
format: date-time
nullable: true
description: The ISO8601 timestamp that an Order was placed.
example: 2018-12-03T22:06:15.761Z
fulfilledOn:
type: string
format: date-time
nullable: true
description: |
When an Order is marked as 'fulfilled', this field represents the timestamp of the fulfillment in ISO8601 format. Otherwise, it is null.
example: 2018-12-03T22:06:15.761Z
refundedOn:
type: string
format: date-time
nullable: true
description: 'When an Order is marked as ''refunded'', this field represents the timestamp of the fulfillment in ISO8601 format. Otherwise, it is null.'
example: 2018-12-03T22:06:15.761Z
disputedOn:
type: string
format: date-time
nullable: true
description: |
When an Order is marked as 'disputed', this field represents the timestamp of the fulfillment in ISO8601 format. Otherwise, it is null.
example: 2018-12-03T22:06:15.761Z
disputeUpdatedOn:
type: string
format: date-time
nullable: true
description: |
If an Order has been disputed by the customer, this key will be set to the ISO8601 timestamp of the last update received. If the Order is not disputed, the key will be null.
example: 2018-12-03T22:06:15.761Z
disputeLastStatus:
type: string
description: |
If an order was disputed by the customer, then this key will be set with the [dispute's status](https://stripe.com/docs/api#dispute_object-status).
example: null
enum:
- warning_needs_response
- warning_under_review
- warning_closed
- needs_response
- under_review
- charge_refunded
- won
- lost
nullable: true
customerPaid:
description: The total paid by the customer
properties:
unit:
description: The three-letter ISO currency code
type: string
example: USD
value:
description: The numeric value in the base unit of the currency
type: string
example: '5892'
string:
description: The user-facing string representation of the amount
type: string
example: $58.92
netAmount:
description: The net amount after application fees
properties:
unit:
description: The three-letter ISO currency code
type: string
example: USD
value:
description: The numeric value in the base unit of the currency
type: string
example: '5892'
string:
description: The user-facing string representation of the amount
type: string
example: $58.92
applicationFee:
description: The application fee assessed by the platform
properties:
unit:
description: The three-letter ISO currency code
type: string
example: USD
value:
description: The numeric value in the base unit of the currency
type: string
example: '5892'
string:
description: The user-facing string representation of the amount
type: string
example: $58.92
allAddresses:
description: All addresses provided by the customer during the ordering flow.
type: array
example:
- type: shipping
japanType: kanji
addressee: Custmerio Namen
line1: 123 Example Road
line2: Unit 3
city: Examplesville
state: CA
country: US
postalCode: 90012
- type: billing
japanType: kanji
addressee: Custmerio Namen
line1: 123 Example Road
line2: Unit 3
city: Examplesville
state: CA
country: US
postalCode: 90012
items:
description: A customer address
properties:
type:
description: The type of the order address (billing or shipping)
type: string
enum:
- shipping
- billing
example: shipping
japanType:
description: Represents a Japan-only address format. This field will only appear on orders placed from Japan.
type: string
enum:
- kana
- kanji
nullable: true
example: kanji
addressee:
description: Display name on the address
type: string
example: Customerio Namen
line1:
type: string
example: 123 Example Rd
description: The first line of the address
line2:
type: string
example: ''
description: The second line of the address
city:
type: string
example: Examplesville
description: The city of the address.
state:
type: string
example: CA
description: The state or province of the address
country:
type: string
example: US
description: The country of the address
postalCode:
type: string
example: 90012
description: The postal code of the address
shippingAddress:
description: The shipping address
example:
type: shipping
japanType: kanji
addressee: Custmerio Namen
line1: 123 Example Road
line2: Unit 3
city: Examplesville
state: CA
country: US
postalCode: 90012
properties:
type:
description: The type of the order address (billing or shipping)
type: string
enum:
- shipping
- billing
example: shipping
japanType:
description: Represents a Japan-only address format. This field will only appear on orders placed from Japan.
type: string
enum:
- kana
- kanji
nullable: true
example: kanji
addressee:
description: Display name on the address
type: string
example: Customerio Namen
line1:
type: string
example: 123 Example Rd
description: The first line of the address
line2:
type: string
example: ''
description: The second line of the address
city:
type: string
example: Examplesville
description: The city of the address.
state:
type: string
example: CA
description: The state or province of the address
country:
type: string
example: US
description: The country of the address
postalCode:
type: string
example: 90012
description: The postal code of the address
billingAddress:
description: The billing address
example:
type: billing
japanType: kanji
addressee: Custmerio Namen
line1: 123 Example Road
line2: Unit 3
city: Examplesville
state: CA
country: US
postalCode: 90012
properties:
type:
description: The type of the order address (billing or shipping)
type: string
enum:
- shipping
- billing
example: shipping
japanType:
description: Represents a Japan-only address format. This field will only appear on orders placed from Japan.
type: string
enum:
- kana
- kanji
nullable: true
example: kanji
addressee:
description: Display name on the address
type: string
example: Customerio Namen
line1:
type: string
example: 123 Example Rd
description: The first line of the address
line2:
type: string
example: ''
description: The second line of the address
city:
type: string
example: Examplesville
description: The city of the address.
state:
type: string
example: CA
description: The state or province of the address
country:
type: string
example: US
description: The country of the address
postalCode:
type: string
example: 90012
description: The postal code of the address
shippingProvider:
type: string
description: |
A string editable by the API user to note the shipping provider used (not used by Webflow).
example: USPS
nullable: true
shippingTracking:
type: string
description: |
A string editable by the API user to note the shipping tracking number for the order (not used by Webflow).
example: RA401558525US
nullable: true
shippingTrackingURL:
type: string
format: uri
example: shipping.test.com/RA401558525US
nullable: true
customerInfo:
description: An object with the keys `fullName` and `email`.
properties:
fullName:
description: The full name of the Customer
type: string
example: Customerio Namen
email:
description: The Customer's email address
type: string
format: email
example: renning@webflow.com
purchasedItems:
type: array
description: An array of all things that the Customer purchased.
items:
description: An Item that was purchased
properties:
count:
type: number
example: 1
description: Number of Item purchased.
rowTotal:
description: The total for the row
properties:
unit:
description: The three-letter ISO currency code
type: string
example: USD
value:
description: The numeric value in the base unit of the currency
type: string
example: '5892'
string:
description: The user-facing string representation of the amount
type: string
example: $58.92
productId:
type: string
format: objectid
description: The unique identifier for the Product
readOnly: true
example: 5eb9fd05caef491eb9757183
productName:
type: string
description: User-facing name of the Product
example: White Cup
productSlug:
type: string
description: Slug for the Product
example: white-cup
variantId:
type: string
description: Identifier for the Product Variant (SKU)
example: 5eb9fcace279761d8199790c
variantName:
type: string
description: User-facing name of the Product Variant (SKU)
example: Red
variantSlug:
type: string
description: Slug for the Product Variant (SKU)
example: red
variantSKU:
description: The user-defined custom SKU of the Product Variant (SKU)
type: string
example: red-medium
variantImage:
properties:
url:
description: The hosted location for the Variant's image
type: string
format: uri
example: 'https://d1otoma47x30pg.cloudfront.net/5bfedb42bab0ad90fa7dac03/5bfedb42bab0ad90fa7dad2e_5bb3d019b3465c6e8a324dd7_458036-unsplas.png'
file:
type: object
properties:
size:
description: The image size in bytes
type: number
example: 21064
originalFileName:
description: the original name of the image
type: string
example: cup.jpg
createdOn:
description: The creation timestamp of the image
type: string
format: date-time
example: 2018-12-03T22:06:15.761Z
contentType:
description: The MIME type of the image
format: mime-type
type: string
example: image/jpeg
width:
description: The image width in pixels
type: integer
example: 640
height:
description: The image height in pixels
type: integer
example: 480
variants:
description: Variants of the supplied image
type: array
items:
type: object
properties:
url:
description: The hosted location for the Variant's image
format: uri
type: string
example: 'https://d1otoma47x30pg.cloudfront.net/5bfedb42bab0ad90fa7dac03/5bfedb42bab0ad90fa7dad2e_5bb3d019b3465c6e8a324dd7_458036-example.png'
originalFileName:
type: string
example: cup.jpg
size:
description: The image size in bytes
type: number
example: 12040
width:
description: The image width in pixels
type: integer
example: 320
height:
description: The image height in pixels
type: integer
example: 240
variantPrice:
description: The price corresponding to the variant
properties:
unit:
description: The three-letter ISO currency code
type: string
example: USD
value:
description: The numeric value in the base unit of the currency
type: string
example: '5892'
string:
description: The user-facing string representation of the amount
type: string
example: $58.92
weight:
type: number
example: 5
default: null
nullable: true
description: 'The physical weight of the variant if provided, or null'
width:
type: number
example: 4
nullable: true
default: null
description: 'The physical width of the variant if provided, or null'
height:
type: number
example: 7
nullable: true
default: null
description: 'The physical height of the variant if provided, or null'
length:
type: number
example: 2
nullable: true
default: null
description: 'The physical length of the variant if provided, or null'
purchasedItemsCount:
type: number
description: The sum of all 'count' fields in 'purchasedItems'.
example: 1
stripeDetails:
description: 'An object with various Stripe IDs, useful for linking into the stripe dashboard.'
properties:
subscriptionId:
type: string
format: objectid
example: sub_1J6xwG2eZvKYlo2CXu9Zt0Tn
nullable: true
description: Stripe-generated identifier for the Subscription
paymentMethod:
type: string
format: objectid
example: pm_1J6xwG2eZvKYlo2CXu9Zt0Tn
nullable: true
description: Stripe-generated identifier for the PaymentMethod used
paymentIntentId:
type: string
format: objectid
example: pi_1J6xwG2eZvKYlo2CXu9Zt0Tn
nullable: true
description: 'Stripe-generated identifier for the PaymentIntent, or null'
customerId:
type: string
format: objectid
example: cus_E5ajeiWNHEtcAW
description: 'Stripe-generated customer identifier, or null'
nullable: true
chargeId:
type: string
format: objectid
description: 'Stripe-generated charge identifier, or null'
example: ch_1DdPYQKMjGA7k9mI2AKiBY6u
nullable: true
disputeId:
type: string
format: objectid
description: 'Stripe-generated dispute identifier, or null'
example: null
nullable: true
refundId:
type: string
format: objectid
description: 'Stripe-generated refund identifier, or null'
example: null
nullable: true
refundReason:
type: string
description: 'Stripe-generated refund reason, or null'
example: requested_by_customer
nullable: true
stripeCard:
description: |
Details on the card used to fulfill this order, if this order was finalized with Stripe.
properties:
last4:
type: string
description: The last 4 digits on the card as a string
example: '4242'
brand:
type: string
description: The card's brand (ie. credit card network)
example: Visa
enum:
- Visa
- American Express
- MasterCard
- Discover
- JCB
- Diners Club
- Unknown
ownerName:
type: string
description: The name on the card.
example: Customerio Namen
expires:
type: object
description: The card's expiration date.
properties:
year:
description: Year that the card expires
type: number
example: 2025
month:
description: Month that the card expires
type: number
example: 12
paypalDetails:
type: object
properties:
orderId:
type: string
description: PayPal order identifier
example: 1a2b3c4d5e6f7g8h9i0j
payerId:
type: string
description: PayPal payer identifier
example: 9k8j7i6h5g4f3e2d1c0b
captureId:
type: string
description: PayPal capture identifier
example: qwe123rty456uio789p
refundId:
type: string
description: PayPal refund identifier
example: abcde12345fghij67890
refundReason:
type: string
description: PayPal-issued reason for the refund
example: Customer requested refund
disputeId:
type: string
description: PayPal dispute identifier
example: zxcvbnm987poiuytrewq
customData:
type: array
additionalProperties: true
description: |
An array of additional inputs for custom order data gathering. Each object in the array represents an input with a name, and a textInput, textArea, or checkbox value.
items:
type: object
metadata:
type: object
properties:
isBuyNow:
type: boolean
example: false
isCustomerDeleted:
type: boolean
description: |
A boolean indicating whether the customer has been deleted from the site.
example: false
isShippingRequired:
type: boolean
description: |
A boolean indicating whether the order contains one or more purchased items that require shipping.
example: false
hasDownloads:
type: boolean
description: |
A boolean indicating whether the order contains one or more purchased items that are downloadable.
example: false
paymentProcessor:
type: string
description: |
A string indicating the payment processor used for this order.
example: stripe
totals:
description: An object describing various pricing totals
properties:
subtotal:
description: The subtotal price
properties:
unit:
description: The three-letter ISO currency code
type: string
example: USD
value:
description: The numeric value in the base unit of the currency
type: string
example: '5892'
string:
description: The user-facing string representation of the amount
type: string
example: $58.92
extras:
type: array
description: 'An array of extra items, includes discounts, shipping, and taxes.'
items:
description: 'Extra order items, includes discounts, shipping, and taxes.'
example:
type: tax
name: State Taxes
description: CA Taxes (6.25%)
price:
unit: USD
value: 344
string: $3.44
properties:
type:
type: string
example: tax
description: The type of extra item this is.
enum:
- discount
- discount-shipping
- shipping
- tax
name:
type: string
description: A human-readable (but English) name for this extra charge.
example: shipping
description:
type: string
description: A human-readable (but English) description of this extra charge.
example: Flat Rate
price:
description: The price for the item
properties:
unit:
description: The three-letter ISO currency code
type: string
example: USD
value:
description: The numeric value in the base unit of the currency
type: string
example: '5892'
string:
description: The user-facing string representation of the amount
type: string
example: $58.92
total:
description: The total price
properties:
unit:
description: The three-letter ISO currency code
type: string
example: USD
value:
description: The numeric value in the base unit of the currency
type: string
example: '5892'
string:
description: The user-facing string representation of the amount
type: string
example: $58.92
downloadFiles:
description: An array of downloadable file objects.
type: array
default: []
items:
properties:
id:
type: string
description: The unique identifier for the downloadable file
example: 5e9a5eba75e0ac242e1b6f64
name:
type: string
description: The user-facing name for the downloadable file
example: The modern web design process - Webflow Ebook.pdf
url:
type: string
format: uri
description: The hosted location for the downloadable file
example: 'https://webflow.com/dashboard/download-digital-product?payload=5d93ba5e38c6b0160ab711d3;e7634a;5eb1aac72912ec06f561278c;5e9a5eba75e0ac242e1b6f63:ka2nehxy:4a1ee0a632feaab94294350087215ed89533f2f530903e3b933b638940e921aa'
example:
orderId: fc7-128
status: refunded
comment: "Customer requested gift wrapping and a personalized note saying: Happy Birthday, Ford! \U0001F389 Please ensure the item is packed with extra bubble wrap for safe transit."
orderComment: "Please gift wrap with a personal note saying \"Happy Birthday, Ford! \U0001F389"
acceptedOn: '2024-03-29T21:29:21.555Z'
fulfilledOn: '2024-03-29T21:29:21.555Z'
refundedOn: '2024-04-08T18:25:04.238Z'
disputedOn: '2024-03-29T21:29:21.555Z'
disputeUpdatedOn: '2024-03-29T21:29:21.555Z'
disputeLastStatus: charge_refunded
customerPaid:
unit: USD
value: 11873
string: $ 118.73 USD
netAmount:
unit: USD
value: 11262
string: $ 112.62 USD
applicationFee:
unit: USD
value: 237
string: $ 2.37 USD
allAddresses:
- type: billing
addressee: Arthur Dent
line1: 20 W 34th St
line2: Empire State Building
city: New York
state: New York
country: US
postalCode: '10118'
- type: shipping
addressee: Arthur Dent
line1: 20 W 34th St
line2: Empire State Building
city: New York
state: New York
country: US
postalCode: '10118'
shippingAddress:
type: shipping
japanType: kanji
addressee: Arthur Dent
line1: 20 W 34th St
line2: Empire State Building
city: New York
state: New York
country: US
postalCode: '10118'
shippingProvider: 'Shipping Company, Co.'
shippingTracking: tr00000000001
shippingTrackingURL: 'https://www.shippingcompany.com/tracking/tr00000000001'
customerInfo:
fullName: Arthur Dent
email: arthur.dent@example.com
purchasedItems:
- count: 1
rowTotal:
unit: USD
value: 5561
string: $ 55.61 USD
productId: 66072fb61b89448912e26791
productName: Luxurious Fresh Ball
productSlug: luxurious-fresh-ball
variantId: 66072fb71b89448912e2683f
variantName: 'Luxurious Fresh Ball Generic: Bronze, Practical: Plastic'
variantSlug: luxurious-fresh-ball-generic-bronze-practical-plastic
variantSKU: luxurious-fresh-ball-generic-bronze-practical-plastic
variantImage:
url: 'https://d1otoma47x30pg.cloudfront.net/66072f39417a2a35b2589cc7/66072fb51b89448912e2672c_image14.jpeg'
file: null
variantPrice:
unit: USD
value: 5561
string: $ 55.61 USD
weight: 11
height: 70
width: 82
length: 9
- count: 1
rowTotal:
unit: USD
value: 5344
string: $ 53.44 USD
productId: 66072fb61b89448912e26799
productName: Recycled Steel Gloves
productSlug: recycled-steel-gloves
variantId: 66072fb91b89448912e26ab9
variantName: 'Recycled Steel Gloves Electronic: Granite, Handcrafted: grey'
variantSlug: recycled-steel-gloves-electronic-granite-handcrafted-grey
variantSKU: recycled-steel-gloves-electronic-granite-handcrafted-grey
variantImage:
url: 'https://d1otoma47x30pg.cloudfront.net/66072f39417a2a35b2589cc7/66072fb51b89448912e2671e_image2.jpeg'
file: null
variantPrice:
unit: USD
value: 5344
string: $ 53.44 USD
weight: 38
height: 85
width: 76
length: 40
purchasedItemsCount: 2
stripeDetails:
customerId: cus_PpRsNHwWdUoRKR
paymentMethod: pm_1OzmzBJYFi4lcbXWHKNdXU7j
chargeId: ch_3OzmzDJYFi4lcbXW1ndkkrH2
disputeId: null
paymentIntentId: pi_3OzmzDJYFi4lcbXW1hTBW6ft
subscriptionId: null
refundId: re_3OzmzDJYFi4lcbXW1kFAmlBk
refundReason: fraudulent
stripeCard:
last4: '4242'
brand: Visa
ownerName: Arthur Dent
expires:
month: 4
year: 2024
paypalDetails: null
customData:
- {}
metadata:
isBuyNow: false
hasDownloads: false
paymentProcessor: stripe
billingAddress:
type: billing
addressee: Arthur Dent
line1: 20 W 34th St
line2: Empire State Building
city: New York
state: New York
country: US
postalCode: '10118'
totals:
subtotal:
unit: USD
value: 10905
string: $ 109.05 USD
extras:
- type: tax
name: State Taxes
description: NY Taxes (4.00%)
price:
unit: USD
value: 436
string: $ 4.36 USD
- type: tax
name: City Taxes
description: NEW YORK Taxes (4.88%)
price:
unit: USD
value: 532
string: $ 5.32 USD
- type: shipping
name: Flat
description: ''
price:
unit: USD
value: 0
string: $ 0.00 USD
total:
unit: USD
value: 11873
string: $ 118.73 USD
isCustomerDeleted: false
isShippingRequired: true
downloadFiles:
- id: 5e9a5eba75e0ac242e1b6f64
name: New product guide
url: 'https://webflow.com/dashboard/download-digital-product?payload=5d93ba5e38c6b0160ab711d3;e7634a;5eb1aac72912ec06f561278c;5e9a5eba75e0ac242e1b6f63:ka2nehxy:4a1ee0a632feaab94294350087215ed89533f2f530903e3b933b638940e921aa'
'400':
description: Request body was incorrectly formatted. Likely invalid JSON being sent up.
'401':
description: Provided access token is invalid or does not have access to requested resource
'403':
description: 'Provided access token is valid, but is missing the required scopes.'
content:
application/json:
schema:
type: object
properties:
status:
type: integer
example: 403
message:
type: string
publicErrorCode:
type: string
externalReference:
type: string
nullable: true
details:
type: array
items:
type: string
'404':
description: Requested resource not found
'409':
description: The site does not have ecommerce enabled.
content:
application/json:
schema:
allOf:
- example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
details:
type: array
description: Array of errors
items:
type:
- string
- object
- properties:
code:
type: string
description: Error code
enum:
- ecommerce_not_enabled
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
'/sites/{site_id}/orders/{order_id}/refund':
post:
x-fern-sdk-group-name: orders
x-fern-sdk-method-name: refund
security:
- OAuth2:
- 'ecommerce:write'
operationId: refund-order
summary: Refund Order
description: |
This API will reverse a Stripe charge and refund an order back to a
customer. It will also set the order's status to `refunded`.
Required scope | `ecommerce:write`
tags:
- Orders
parameters:
- name: site_id
in: path
description: Unique identifier for a Site
example: 580e63e98c9a982ac9b8b741
required: true
schema:
type: string
format: objectid
default: null
- name: order_id
in: path
description: Unique identifier for an Order
example: 5e8518516e147040726cc415
required: true
schema:
type: string
format: objectid
requestBody:
description: The order fulfillment request
content:
application/json:
schema:
description: Update an order's status to fulfilled
properties:
reason:
type: string
description: The reason for the refund
enum:
- duplicate
- fraudulent
- requested
responses:
'200':
description: Request was successful
content:
application/json:
schema:
type: object
properties:
orderId:
type: string
readOnly: true
description: |
The order id. Will usually be 6 hex characters, but can also be 9 hex characters if the site has a very large number of Orders. Randomly assigned.
example: dfa-3f1
status:
type: string
example: unfulfilled
description: |
The status of the Order
enum:
- pending
- unfulfilled
- fulfilled
- disputed
- dispute-lost
- refunded
comment:
type: string
description: 'A comment string for this Order, which is editable by API user (not used by Webflow).'
example: "Customer requested gift wrapping and a personalized note saying: Happy Birthday, Ford! \U0001F389 Please ensure the item is packed with extra bubble wrap for safe transit."
orderComment:
type: string
description: A comment that the customer left when making their Order
example: "Please gift wrap with a personal note saying \"Happy Birthday, Ford! \U0001F389"
acceptedOn:
type: string
format: date-time
nullable: true
description: The ISO8601 timestamp that an Order was placed.
example: 2018-12-03T22:06:15.761Z
fulfilledOn:
type: string
format: date-time
nullable: true
description: |
When an Order is marked as 'fulfilled', this field represents the timestamp of the fulfillment in ISO8601 format. Otherwise, it is null.
example: 2018-12-03T22:06:15.761Z
refundedOn:
type: string
format: date-time
nullable: true
description: 'When an Order is marked as ''refunded'', this field represents the timestamp of the fulfillment in ISO8601 format. Otherwise, it is null.'
example: 2018-12-03T22:06:15.761Z
disputedOn:
type: string
format: date-time
nullable: true
description: |
When an Order is marked as 'disputed', this field represents the timestamp of the fulfillment in ISO8601 format. Otherwise, it is null.
example: 2018-12-03T22:06:15.761Z
disputeUpdatedOn:
type: string
format: date-time
nullable: true
description: |
If an Order has been disputed by the customer, this key will be set to the ISO8601 timestamp of the last update received. If the Order is not disputed, the key will be null.
example: 2018-12-03T22:06:15.761Z
disputeLastStatus:
type: string
description: |
If an order was disputed by the customer, then this key will be set with the [dispute's status](https://stripe.com/docs/api#dispute_object-status).
example: null
enum:
- warning_needs_response
- warning_under_review
- warning_closed
- needs_response
- under_review
- charge_refunded
- won
- lost
nullable: true
customerPaid:
description: The total paid by the customer
properties:
unit:
description: The three-letter ISO currency code
type: string
example: USD
value:
description: The numeric value in the base unit of the currency
type: string
example: '5892'
string:
description: The user-facing string representation of the amount
type: string
example: $58.92
netAmount:
description: The net amount after application fees
properties:
unit:
description: The three-letter ISO currency code
type: string
example: USD
value:
description: The numeric value in the base unit of the currency
type: string
example: '5892'
string:
description: The user-facing string representation of the amount
type: string
example: $58.92
applicationFee:
description: The application fee assessed by the platform
properties:
unit:
description: The three-letter ISO currency code
type: string
example: USD
value:
description: The numeric value in the base unit of the currency
type: string
example: '5892'
string:
description: The user-facing string representation of the amount
type: string
example: $58.92
allAddresses:
description: All addresses provided by the customer during the ordering flow.
type: array
example:
- type: shipping
japanType: kanji
addressee: Custmerio Namen
line1: 123 Example Road
line2: Unit 3
city: Examplesville
state: CA
country: US
postalCode: 90012
- type: billing
japanType: kanji
addressee: Custmerio Namen
line1: 123 Example Road
line2: Unit 3
city: Examplesville
state: CA
country: US
postalCode: 90012
items:
description: A customer address
properties:
type:
description: The type of the order address (billing or shipping)
type: string
enum:
- shipping
- billing
example: shipping
japanType:
description: Represents a Japan-only address format. This field will only appear on orders placed from Japan.
type: string
enum:
- kana
- kanji
nullable: true
example: kanji
addressee:
description: Display name on the address
type: string
example: Customerio Namen
line1:
type: string
example: 123 Example Rd
description: The first line of the address
line2:
type: string
example: ''
description: The second line of the address
city:
type: string
example: Examplesville
description: The city of the address.
state:
type: string
example: CA
description: The state or province of the address
country:
type: string
example: US
description: The country of the address
postalCode:
type: string
example: 90012
description: The postal code of the address
shippingAddress:
description: The shipping address
example:
type: shipping
japanType: kanji
addressee: Custmerio Namen
line1: 123 Example Road
line2: Unit 3
city: Examplesville
state: CA
country: US
postalCode: 90012
properties:
type:
description: The type of the order address (billing or shipping)
type: string
enum:
- shipping
- billing
example: shipping
japanType:
description: Represents a Japan-only address format. This field will only appear on orders placed from Japan.
type: string
enum:
- kana
- kanji
nullable: true
example: kanji
addressee:
description: Display name on the address
type: string
example: Customerio Namen
line1:
type: string
example: 123 Example Rd
description: The first line of the address
line2:
type: string
example: ''
description: The second line of the address
city:
type: string
example: Examplesville
description: The city of the address.
state:
type: string
example: CA
description: The state or province of the address
country:
type: string
example: US
description: The country of the address
postalCode:
type: string
example: 90012
description: The postal code of the address
billingAddress:
description: The billing address
example:
type: billing
japanType: kanji
addressee: Custmerio Namen
line1: 123 Example Road
line2: Unit 3
city: Examplesville
state: CA
country: US
postalCode: 90012
properties:
type:
description: The type of the order address (billing or shipping)
type: string
enum:
- shipping
- billing
example: shipping
japanType:
description: Represents a Japan-only address format. This field will only appear on orders placed from Japan.
type: string
enum:
- kana
- kanji
nullable: true
example: kanji
addressee:
description: Display name on the address
type: string
example: Customerio Namen
line1:
type: string
example: 123 Example Rd
description: The first line of the address
line2:
type: string
example: ''
description: The second line of the address
city:
type: string
example: Examplesville
description: The city of the address.
state:
type: string
example: CA
description: The state or province of the address
country:
type: string
example: US
description: The country of the address
postalCode:
type: string
example: 90012
description: The postal code of the address
shippingProvider:
type: string
description: |
A string editable by the API user to note the shipping provider used (not used by Webflow).
example: USPS
nullable: true
shippingTracking:
type: string
description: |
A string editable by the API user to note the shipping tracking number for the order (not used by Webflow).
example: RA401558525US
nullable: true
shippingTrackingURL:
type: string
format: uri
example: shipping.test.com/RA401558525US
nullable: true
customerInfo:
description: An object with the keys `fullName` and `email`.
properties:
fullName:
description: The full name of the Customer
type: string
example: Customerio Namen
email:
description: The Customer's email address
type: string
format: email
example: renning@webflow.com
purchasedItems:
type: array
description: An array of all things that the Customer purchased.
items:
description: An Item that was purchased
properties:
count:
type: number
example: 1
description: Number of Item purchased.
rowTotal:
description: The total for the row
properties:
unit:
description: The three-letter ISO currency code
type: string
example: USD
value:
description: The numeric value in the base unit of the currency
type: string
example: '5892'
string:
description: The user-facing string representation of the amount
type: string
example: $58.92
productId:
type: string
format: objectid
description: The unique identifier for the Product
readOnly: true
example: 5eb9fd05caef491eb9757183
productName:
type: string
description: User-facing name of the Product
example: White Cup
productSlug:
type: string
description: Slug for the Product
example: white-cup
variantId:
type: string
description: Identifier for the Product Variant (SKU)
example: 5eb9fcace279761d8199790c
variantName:
type: string
description: User-facing name of the Product Variant (SKU)
example: Red
variantSlug:
type: string
description: Slug for the Product Variant (SKU)
example: red
variantSKU:
description: The user-defined custom SKU of the Product Variant (SKU)
type: string
example: red-medium
variantImage:
properties:
url:
description: The hosted location for the Variant's image
type: string
format: uri
example: 'https://d1otoma47x30pg.cloudfront.net/5bfedb42bab0ad90fa7dac03/5bfedb42bab0ad90fa7dad2e_5bb3d019b3465c6e8a324dd7_458036-unsplas.png'
file:
type: object
properties:
size:
description: The image size in bytes
type: number
example: 21064
originalFileName:
description: the original name of the image
type: string
example: cup.jpg
createdOn:
description: The creation timestamp of the image
type: string
format: date-time
example: 2018-12-03T22:06:15.761Z
contentType:
description: The MIME type of the image
format: mime-type
type: string
example: image/jpeg
width:
description: The image width in pixels
type: integer
example: 640
height:
description: The image height in pixels
type: integer
example: 480
variants:
description: Variants of the supplied image
type: array
items:
type: object
properties:
url:
description: The hosted location for the Variant's image
format: uri
type: string
example: 'https://d1otoma47x30pg.cloudfront.net/5bfedb42bab0ad90fa7dac03/5bfedb42bab0ad90fa7dad2e_5bb3d019b3465c6e8a324dd7_458036-example.png'
originalFileName:
type: string
example: cup.jpg
size:
description: The image size in bytes
type: number
example: 12040
width:
description: The image width in pixels
type: integer
example: 320
height:
description: The image height in pixels
type: integer
example: 240
variantPrice:
description: The price corresponding to the variant
properties:
unit:
description: The three-letter ISO currency code
type: string
example: USD
value:
description: The numeric value in the base unit of the currency
type: string
example: '5892'
string:
description: The user-facing string representation of the amount
type: string
example: $58.92
weight:
type: number
example: 5
default: null
nullable: true
description: 'The physical weight of the variant if provided, or null'
width:
type: number
example: 4
nullable: true
default: null
description: 'The physical width of the variant if provided, or null'
height:
type: number
example: 7
nullable: true
default: null
description: 'The physical height of the variant if provided, or null'
length:
type: number
example: 2
nullable: true
default: null
description: 'The physical length of the variant if provided, or null'
purchasedItemsCount:
type: number
description: The sum of all 'count' fields in 'purchasedItems'.
example: 1
stripeDetails:
description: 'An object with various Stripe IDs, useful for linking into the stripe dashboard.'
properties:
subscriptionId:
type: string
format: objectid
example: sub_1J6xwG2eZvKYlo2CXu9Zt0Tn
nullable: true
description: Stripe-generated identifier for the Subscription
paymentMethod:
type: string
format: objectid
example: pm_1J6xwG2eZvKYlo2CXu9Zt0Tn
nullable: true
description: Stripe-generated identifier for the PaymentMethod used
paymentIntentId:
type: string
format: objectid
example: pi_1J6xwG2eZvKYlo2CXu9Zt0Tn
nullable: true
description: 'Stripe-generated identifier for the PaymentIntent, or null'
customerId:
type: string
format: objectid
example: cus_E5ajeiWNHEtcAW
description: 'Stripe-generated customer identifier, or null'
nullable: true
chargeId:
type: string
format: objectid
description: 'Stripe-generated charge identifier, or null'
example: ch_1DdPYQKMjGA7k9mI2AKiBY6u
nullable: true
disputeId:
type: string
format: objectid
description: 'Stripe-generated dispute identifier, or null'
example: null
nullable: true
refundId:
type: string
format: objectid
description: 'Stripe-generated refund identifier, or null'
example: null
nullable: true
refundReason:
type: string
description: 'Stripe-generated refund reason, or null'
example: requested_by_customer
nullable: true
stripeCard:
description: |
Details on the card used to fulfill this order, if this order was finalized with Stripe.
properties:
last4:
type: string
description: The last 4 digits on the card as a string
example: '4242'
brand:
type: string
description: The card's brand (ie. credit card network)
example: Visa
enum:
- Visa
- American Express
- MasterCard
- Discover
- JCB
- Diners Club
- Unknown
ownerName:
type: string
description: The name on the card.
example: Customerio Namen
expires:
type: object
description: The card's expiration date.
properties:
year:
description: Year that the card expires
type: number
example: 2025
month:
description: Month that the card expires
type: number
example: 12
paypalDetails:
type: object
properties:
orderId:
type: string
description: PayPal order identifier
example: 1a2b3c4d5e6f7g8h9i0j
payerId:
type: string
description: PayPal payer identifier
example: 9k8j7i6h5g4f3e2d1c0b
captureId:
type: string
description: PayPal capture identifier
example: qwe123rty456uio789p
refundId:
type: string
description: PayPal refund identifier
example: abcde12345fghij67890
refundReason:
type: string
description: PayPal-issued reason for the refund
example: Customer requested refund
disputeId:
type: string
description: PayPal dispute identifier
example: zxcvbnm987poiuytrewq
customData:
type: array
additionalProperties: true
description: |
An array of additional inputs for custom order data gathering. Each object in the array represents an input with a name, and a textInput, textArea, or checkbox value.
items:
type: object
metadata:
type: object
properties:
isBuyNow:
type: boolean
example: false
isCustomerDeleted:
type: boolean
description: |
A boolean indicating whether the customer has been deleted from the site.
example: false
isShippingRequired:
type: boolean
description: |
A boolean indicating whether the order contains one or more purchased items that require shipping.
example: false
hasDownloads:
type: boolean
description: |
A boolean indicating whether the order contains one or more purchased items that are downloadable.
example: false
paymentProcessor:
type: string
description: |
A string indicating the payment processor used for this order.
example: stripe
totals:
description: An object describing various pricing totals
properties:
subtotal:
description: The subtotal price
properties:
unit:
description: The three-letter ISO currency code
type: string
example: USD
value:
description: The numeric value in the base unit of the currency
type: string
example: '5892'
string:
description: The user-facing string representation of the amount
type: string
example: $58.92
extras:
type: array
description: 'An array of extra items, includes discounts, shipping, and taxes.'
items:
description: 'Extra order items, includes discounts, shipping, and taxes.'
example:
type: tax
name: State Taxes
description: CA Taxes (6.25%)
price:
unit: USD
value: 344
string: $3.44
properties:
type:
type: string
example: tax
description: The type of extra item this is.
enum:
- discount
- discount-shipping
- shipping
- tax
name:
type: string
description: A human-readable (but English) name for this extra charge.
example: shipping
description:
type: string
description: A human-readable (but English) description of this extra charge.
example: Flat Rate
price:
description: The price for the item
properties:
unit:
description: The three-letter ISO currency code
type: string
example: USD
value:
description: The numeric value in the base unit of the currency
type: string
example: '5892'
string:
description: The user-facing string representation of the amount
type: string
example: $58.92
total:
description: The total price
properties:
unit:
description: The three-letter ISO currency code
type: string
example: USD
value:
description: The numeric value in the base unit of the currency
type: string
example: '5892'
string:
description: The user-facing string representation of the amount
type: string
example: $58.92
downloadFiles:
description: An array of downloadable file objects.
type: array
default: []
items:
properties:
id:
type: string
description: The unique identifier for the downloadable file
example: 5e9a5eba75e0ac242e1b6f64
name:
type: string
description: The user-facing name for the downloadable file
example: The modern web design process - Webflow Ebook.pdf
url:
type: string
format: uri
description: The hosted location for the downloadable file
example: 'https://webflow.com/dashboard/download-digital-product?payload=5d93ba5e38c6b0160ab711d3;e7634a;5eb1aac72912ec06f561278c;5e9a5eba75e0ac242e1b6f63:ka2nehxy:4a1ee0a632feaab94294350087215ed89533f2f530903e3b933b638940e921aa'
example:
orderId: fc7-128
status: refunded
comment: "Customer requested gift wrapping and a personalized note saying: Happy Birthday, Ford! \U0001F389 Please ensure the item is packed with extra bubble wrap for safe transit."
orderComment: "Please gift wrap with a personal note saying \"Happy Birthday, Ford! \U0001F389"
acceptedOn: '2024-03-29T21:29:21.555Z'
fulfilledOn: '2024-03-29T21:29:21.555Z'
refundedOn: '2024-04-08T18:25:04.238Z'
disputedOn: '2024-03-29T21:29:21.555Z'
disputeUpdatedOn: '2024-03-29T21:29:21.555Z'
disputeLastStatus: charge_refunded
customerPaid:
unit: USD
value: 11873
string: $ 118.73 USD
netAmount:
unit: USD
value: 11262
string: $ 112.62 USD
applicationFee:
unit: USD
value: 237
string: $ 2.37 USD
allAddresses:
- type: billing
addressee: Arthur Dent
line1: 20 W 34th St
line2: Empire State Building
city: New York
state: New York
country: US
postalCode: '10118'
- type: shipping
addressee: Arthur Dent
line1: 20 W 34th St
line2: Empire State Building
city: New York
state: New York
country: US
postalCode: '10118'
shippingAddress:
type: shipping
japanType: kanji
addressee: Arthur Dent
line1: 20 W 34th St
line2: Empire State Building
city: New York
state: New York
country: US
postalCode: '10118'
shippingProvider: 'Shipping Company, Co.'
shippingTracking: tr00000000001
shippingTrackingURL: 'https://www.shippingcompany.com/tracking/tr00000000001'
customerInfo:
fullName: Arthur Dent
email: arthur.dent@example.com
purchasedItems:
- count: 1
rowTotal:
unit: USD
value: 5561
string: $ 55.61 USD
productId: 66072fb61b89448912e26791
productName: Luxurious Fresh Ball
productSlug: luxurious-fresh-ball
variantId: 66072fb71b89448912e2683f
variantName: 'Luxurious Fresh Ball Generic: Bronze, Practical: Plastic'
variantSlug: luxurious-fresh-ball-generic-bronze-practical-plastic
variantSKU: luxurious-fresh-ball-generic-bronze-practical-plastic
variantImage:
url: 'https://d1otoma47x30pg.cloudfront.net/66072f39417a2a35b2589cc7/66072fb51b89448912e2672c_image14.jpeg'
file: null
variantPrice:
unit: USD
value: 5561
string: $ 55.61 USD
weight: 11
height: 70
width: 82
length: 9
- count: 1
rowTotal:
unit: USD
value: 5344
string: $ 53.44 USD
productId: 66072fb61b89448912e26799
productName: Recycled Steel Gloves
productSlug: recycled-steel-gloves
variantId: 66072fb91b89448912e26ab9
variantName: 'Recycled Steel Gloves Electronic: Granite, Handcrafted: grey'
variantSlug: recycled-steel-gloves-electronic-granite-handcrafted-grey
variantSKU: recycled-steel-gloves-electronic-granite-handcrafted-grey
variantImage:
url: 'https://d1otoma47x30pg.cloudfront.net/66072f39417a2a35b2589cc7/66072fb51b89448912e2671e_image2.jpeg'
file: null
variantPrice:
unit: USD
value: 5344
string: $ 53.44 USD
weight: 38
height: 85
width: 76
length: 40
purchasedItemsCount: 2
stripeDetails:
customerId: cus_PpRsNHwWdUoRKR
paymentMethod: pm_1OzmzBJYFi4lcbXWHKNdXU7j
chargeId: ch_3OzmzDJYFi4lcbXW1ndkkrH2
disputeId: null
paymentIntentId: pi_3OzmzDJYFi4lcbXW1hTBW6ft
subscriptionId: null
refundId: re_3OzmzDJYFi4lcbXW1kFAmlBk
refundReason: fraudulent
stripeCard:
last4: '4242'
brand: Visa
ownerName: Arthur Dent
expires:
month: 4
year: 2024
paypalDetails: null
customData:
- {}
metadata:
isBuyNow: false
hasDownloads: false
paymentProcessor: stripe
billingAddress:
type: billing
addressee: Arthur Dent
line1: 20 W 34th St
line2: Empire State Building
city: New York
state: New York
country: US
postalCode: '10118'
totals:
subtotal:
unit: USD
value: 10905
string: $ 109.05 USD
extras:
- type: tax
name: State Taxes
description: NY Taxes (4.00%)
price:
unit: USD
value: 436
string: $ 4.36 USD
- type: tax
name: City Taxes
description: NEW YORK Taxes (4.88%)
price:
unit: USD
value: 532
string: $ 5.32 USD
- type: shipping
name: Flat
description: ''
price:
unit: USD
value: 0
string: $ 0.00 USD
total:
unit: USD
value: 11873
string: $ 118.73 USD
isCustomerDeleted: false
isShippingRequired: true
downloadFiles:
- id: 5e9a5eba75e0ac242e1b6f64
name: New product guide
url: 'https://webflow.com/dashboard/download-digital-product?payload=5d93ba5e38c6b0160ab711d3;e7634a;5eb1aac72912ec06f561278c;5e9a5eba75e0ac242e1b6f63:ka2nehxy:4a1ee0a632feaab94294350087215ed89533f2f530903e3b933b638940e921aa'
'400':
description: Request body was incorrectly formatted. Likely invalid JSON being sent up.
'401':
description: Provided access token is invalid or does not have access to requested resource
'403':
description: 'Provided access token is valid, but is missing the required scopes.'
content:
application/json:
schema:
type: object
properties:
status:
type: integer
example: 403
message:
type: string
publicErrorCode:
type: string
externalReference:
type: string
nullable: true
details:
type: array
items:
type: string
'404':
description: Requested resource not found
'409':
description: The site does not have ecommerce enabled.
content:
application/json:
schema:
allOf:
- example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
details:
type: array
description: Array of errors
items:
type:
- string
- object
- properties:
code:
type: string
description: Error code
enum:
- ecommerce_not_enabled
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
'/collections/{collection_id}/items/{item_id}/inventory':
get:
x-fern-sdk-group-name: inventory
x-fern-sdk-method-name: list
security:
- OAuth2:
- 'ecommerce:read'
operationId: list-inventory
summary: List Inventory
description: |
List the current inventory levels for a particular SKU item.
Required scope | `ecommerce:read`
tags:
- Inventory
parameters:
- name: collection_id
in: path
description: Unique identifier for a Collection
example: 580e63fc8c9a982ac9b8b745
required: true
schema:
type: string
format: objectid
- name: item_id
in: path
description: Unique identifier for an Item
example: 580e64008c9a982ac9b8b754
required: true
schema:
type: string
format: objectid
responses:
'200':
description: Request was successful
content:
application/json:
schema:
description: The availabile inventory for an item
properties:
id:
type: string
readOnly: true
format: objectid
description: Unique identifier for a SKU item
example: 5bfedb42bab0ad90fa7dad39
quantity:
type: number
description: Total quantity of items remaining in inventory (if inventoryType is finite)
example: 100
inventoryType:
type: string
description: infinite or finite
enum:
- infinite
- finite
example: finite
'400':
description: Request body was incorrectly formatted. Likely invalid JSON being sent up.
'401':
description: Provided access token is invalid or does not have access to requested resource
'403':
description: 'Provided access token is valid, but is missing the required scopes.'
content:
application/json:
schema:
type: object
properties:
status:
type: integer
example: 403
message:
type: string
publicErrorCode:
type: string
externalReference:
type: string
nullable: true
details:
type: array
items:
type: string
'404':
description: Requested resource not found
'409':
description: The site does not have ecommerce enabled.
content:
application/json:
schema:
allOf:
- example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
details:
type: array
description: Array of errors
items:
type:
- string
- object
- properties:
code:
type: string
description: Error code
enum:
- ecommerce_not_enabled
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
patch:
x-fern-sdk-group-name: inventory
x-fern-sdk-method-name: update
security:
- OAuth2:
- 'ecommerce:write'
operationId: update-inventory
summary: Update Item Inventory
description: |
Updates the current inventory levels for a particular SKU item. Updates may be given in one or two methods, absolutely or incrementally. Absolute updates are done by setting `quantity` directly. Incremental updates are by specifying the inventory delta in `updateQuantity` which is then added to the `quantity` stored on the server.
Required scope | `ecommerce:write`
tags:
- Inventory
parameters:
- name: collection_id
in: path
description: Unique identifier for a Collection
example: 580e63fc8c9a982ac9b8b745
required: true
schema:
type: string
format: objectid
- name: item_id
in: path
description: Unique identifier for an Item
example: 580e64008c9a982ac9b8b754
required: true
schema:
type: string
format: objectid
requestBody:
description: The updated inventory
required: true
content:
application/json:
schema:
type: object
required:
- inventoryType
properties:
inventoryType:
type: string
description: infinite or finite
enum:
- infinite
- finite
example: finite
updateQuantity:
type: number
description: Adds this quantity to currently store quantity. Can be negative.
example: 1
quantity:
type: number
description: Immediately sets quantity to this value.
example: 100
responses:
'200':
description: Request was successful
content:
application/json:
schema:
description: The availabile inventory for an item
properties:
id:
type: string
readOnly: true
format: objectid
description: Unique identifier for a SKU item
example: 5bfedb42bab0ad90fa7dad39
quantity:
type: number
description: Total quantity of items remaining in inventory (if inventoryType is finite)
example: 100
inventoryType:
type: string
description: infinite or finite
enum:
- infinite
- finite
example: finite
'400':
description: Request body was incorrectly formatted. Likely invalid JSON being sent up.
'401':
description: Provided access token is invalid or does not have access to requested resource
'403':
description: 'Provided access token is valid, but is missing the required scopes.'
content:
application/json:
schema:
type: object
properties:
status:
type: integer
example: 403
message:
type: string
publicErrorCode:
type: string
externalReference:
type: string
nullable: true
details:
type: array
items:
type: string
'404':
description: Requested resource not found
'409':
description: The site does not have ecommerce enabled.
content:
application/json:
schema:
allOf:
- example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
details:
type: array
description: Array of errors
items:
type:
- string
- object
- properties:
code:
type: string
description: Error code
enum:
- ecommerce_not_enabled
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
'/sites/{site_id}/ecommerce/settings':
get:
x-fern-sdk-group-name: ecommerce
x-fern-sdk-method-name: get-settings
security:
- OAuth2:
- 'ecommerce:read'
operationId: ecommerce-settings
summary: Get Ecommerce Settings
description: |
Retrieve ecommerce settings for a site.
Required scope | `ecommerce:read`
tags:
- Settings
parameters:
- name: site_id
in: path
description: Unique identifier for a Site
example: 580e63e98c9a982ac9b8b741
required: true
schema:
type: string
format: objectid
default: null
responses:
'200':
description: Request was successful
content:
application/json:
schema:
description: Ecommerce settings for a Webflow Site
properties:
siteId:
type: string
readOnly: true
description: The identifier of the Site
example: 5eb0b5583bf24e2d3a488969
format: objectid
createdOn:
type: string
format: date-time
readOnly: true
description: Date that the Site was created on
example: 2018-10-04T15:21:02.042Z
defaultCurrency:
type: string
description: The three-letter ISO currency code for the Site
example: USD
'400':
description: Request body was incorrectly formatted. Likely invalid JSON being sent up.
'401':
description: Provided access token is invalid or does not have access to requested resource
'403':
description: 'Provided access token is valid, but is missing the required scopes.'
content:
application/json:
schema:
type: object
properties:
status:
type: integer
example: 403
message:
type: string
publicErrorCode:
type: string
externalReference:
type: string
nullable: true
details:
type: array
items:
type: string
'404':
description: Requested resource not found
'409':
description: The site does not have ecommerce enabled.
content:
application/json:
schema:
allOf:
- example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
details:
type: array
description: Array of errors
items:
type:
- string
- object
- properties:
code:
type: string
description: Error code
enum:
- ecommerce_not_enabled
'429':
description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
headers:
X-RateLimit-Remaining:
description: Contains the number of available requests remaining in the current minute
schema:
type: number
X-RateLimit-Limit:
description: Contains your current overall rate limit per minute
schema:
type: number
'500':
description: We had a problem with our server. Try again later.
components:
securitySchemes:
OAuth2:
type: oauth2
flows:
authorizationCode:
scopes:
'authorized_user:read': read details about the authorized user
'assets:read': read assets on the site
'assets:write': write assets on a site
'cms:read': read collections and items for a site
'cms:write': write to collections and items for a site
'custom_code:read': read custom code on the site
'custom_code:write': modify custom code on the site
'ecommerce:read': read ecommerce data
'ecommerce:write': edit ecommerce data
'forms:read': read form data
'forms:write': write form data
'pages:read': read pages on the site
'pages:write': write to pages on the site
'sites:read': read sites on the site
'sites:write': modify pages on the site
'users:read': read users on the site
'site_activity:read': read site activity logs
'users:write': modify users on the site
'workspace:read': read workspace resource data
'workspace:write': write workspace resource data
authorizationUrl: 'https://webflow.com/oauth/authorize'
tokenUrl: 'https://api.webflow.com/oauth/token'
ApiKey:
type: http
scheme: bearer
x-fern-token-variable-name: access_token
webhooks:
form_submission:
post:
operationId: form_submission
summary: Form Submission
description: Information about a form that was subitted
tags:
- Forms
- Sites
requestBody:
description: The form data submitted
content:
application/json:
schema:
properties:
triggerType:
type: string
description: The type of event that triggered the request
example: form_submission
payload:
type: object
description: The payload of data sent from Webflow
properties:
name:
type: string
description: The name of the form
example: Sample Form
siteId:
type: string
format: objectid
description: The id of the site that the form was submitted from
example: 62749158efef318abc8d5a0f
data:
type: object
description: The data submitted in the form
example:
name: Arthur Dent
email: arthur.dent@mostlyharmless.com
submittedAt:
type: string
description: The timestamp the form was submitted
example: '2022-09-14T12:35:16.117Z'
formId:
type: string
format: objectid
description: The id of the form submission
example: 6321ca84df3949bfc6752327
example:
name: Sample Form
site: 62749158efef318abc8d5a0f
data:
name: Some One
email: some.one@home.com
d: '2022-09-14T12:35:16.117Z'
id: 6321ca84df3949bfc6752327
site_publish:
post:
operationId: site_publish
summary: Site Publish
tags:
- Sites
requestBody:
description: The information about the site(s) published
content:
application/json:
schema:
properties:
payload:
type: object
description: The payload of data sent from Webflow
properties:
site:
description: The site id that was published
type: string
format: objectid
example: 62749158efef318abc8d5a0f
publishTime:
description: The timestamp of the publish event
type: string
format: date-time
example: 1653619272801
domains:
description: The domains that were published
type: array
items:
type: string
example:
- my-website.webflow.io
publishedBy:
type: object
description: The name and id of the user who published the site
example:
triggerType: site_publish
payload:
site: 62749158efef318abc8d5a0f
publishTime: 1653619272801
domains:
- my-website.webflow.io
publishedBy:
name: Some One
id: 123460a7b6c16def4527122d
responses:
'200':
description: Return a 200 status to indicate that the data was received successfully
ecomm_new_order:
post:
operationId: ecomm_new_order
summary: New eComm Order
tags:
- Orders
requestBody:
description: The information about the new order
content:
application/json:
schema:
type: object
properties:
orderId:
type: string
readOnly: true
description: |
The order id. Will usually be 6 hex characters, but can also be 9 hex characters if the site has a very large number of Orders. Randomly assigned.
example: dfa-3f1
status:
type: string
example: unfulfilled
description: |
The status of the Order
enum:
- pending
- unfulfilled
- fulfilled
- disputed
- dispute-lost
- refunded
comment:
type: string
description: 'A comment string for this Order, which is editable by API user (not used by Webflow).'
example: "Customer requested gift wrapping and a personalized note saying: Happy Birthday, Ford! \U0001F389 Please ensure the item is packed with extra bubble wrap for safe transit."
orderComment:
type: string
description: A comment that the customer left when making their Order
example: "Please gift wrap with a personal note saying \"Happy Birthday, Ford! \U0001F389"
acceptedOn:
type: string
format: date-time
nullable: true
description: The ISO8601 timestamp that an Order was placed.
example: 2018-12-03T22:06:15.761Z
fulfilledOn:
type: string
format: date-time
nullable: true
description: |
When an Order is marked as 'fulfilled', this field represents the timestamp of the fulfillment in ISO8601 format. Otherwise, it is null.
example: 2018-12-03T22:06:15.761Z
refundedOn:
type: string
format: date-time
nullable: true
description: 'When an Order is marked as ''refunded'', this field represents the timestamp of the fulfillment in ISO8601 format. Otherwise, it is null.'
example: 2018-12-03T22:06:15.761Z
disputedOn:
type: string
format: date-time
nullable: true
description: |
When an Order is marked as 'disputed', this field represents the timestamp of the fulfillment in ISO8601 format. Otherwise, it is null.
example: 2018-12-03T22:06:15.761Z
disputeUpdatedOn:
type: string
format: date-time
nullable: true
description: |
If an Order has been disputed by the customer, this key will be set to the ISO8601 timestamp of the last update received. If the Order is not disputed, the key will be null.
example: 2018-12-03T22:06:15.761Z
disputeLastStatus:
type: string
description: |
If an order was disputed by the customer, then this key will be set with the [dispute's status](https://stripe.com/docs/api#dispute_object-status).
example: null
enum:
- warning_needs_response
- warning_under_review
- warning_closed
- needs_response
- under_review
- charge_refunded
- won
- lost
nullable: true
customerPaid:
description: The total paid by the customer
properties:
unit:
description: The three-letter ISO currency code
type: string
example: USD
value:
description: The numeric value in the base unit of the currency
type: string
example: '5892'
string:
description: The user-facing string representation of the amount
type: string
example: $58.92
netAmount:
description: The net amount after application fees
properties:
unit:
description: The three-letter ISO currency code
type: string
example: USD
value:
description: The numeric value in the base unit of the currency
type: string
example: '5892'
string:
description: The user-facing string representation of the amount
type: string
example: $58.92
applicationFee:
description: The application fee assessed by the platform
properties:
unit:
description: The three-letter ISO currency code
type: string
example: USD
value:
description: The numeric value in the base unit of the currency
type: string
example: '5892'
string:
description: The user-facing string representation of the amount
type: string
example: $58.92
allAddresses:
description: All addresses provided by the customer during the ordering flow.
type: array
example:
- type: shipping
japanType: kanji
addressee: Custmerio Namen
line1: 123 Example Road
line2: Unit 3
city: Examplesville
state: CA
country: US
postalCode: 90012
- type: billing
japanType: kanji
addressee: Custmerio Namen
line1: 123 Example Road
line2: Unit 3
city: Examplesville
state: CA
country: US
postalCode: 90012
items:
description: A customer address
properties:
type:
description: The type of the order address (billing or shipping)
type: string
enum:
- shipping
- billing
example: shipping
japanType:
description: Represents a Japan-only address format. This field will only appear on orders placed from Japan.
type: string
enum:
- kana
- kanji
nullable: true
example: kanji
addressee:
description: Display name on the address
type: string
example: Customerio Namen
line1:
type: string
example: 123 Example Rd
description: The first line of the address
line2:
type: string
example: ''
description: The second line of the address
city:
type: string
example: Examplesville
description: The city of the address.
state:
type: string
example: CA
description: The state or province of the address
country:
type: string
example: US
description: The country of the address
postalCode:
type: string
example: 90012
description: The postal code of the address
shippingAddress:
description: The shipping address
example:
type: shipping
japanType: kanji
addressee: Custmerio Namen
line1: 123 Example Road
line2: Unit 3
city: Examplesville
state: CA
country: US
postalCode: 90012
properties:
type:
description: The type of the order address (billing or shipping)
type: string
enum:
- shipping
- billing
example: shipping
japanType:
description: Represents a Japan-only address format. This field will only appear on orders placed from Japan.
type: string
enum:
- kana
- kanji
nullable: true
example: kanji
addressee:
description: Display name on the address
type: string
example: Customerio Namen
line1:
type: string
example: 123 Example Rd
description: The first line of the address
line2:
type: string
example: ''
description: The second line of the address
city:
type: string
example: Examplesville
description: The city of the address.
state:
type: string
example: CA
description: The state or province of the address
country:
type: string
example: US
description: The country of the address
postalCode:
type: string
example: 90012
description: The postal code of the address
billingAddress:
description: The billing address
example:
type: billing
japanType: kanji
addressee: Custmerio Namen
line1: 123 Example Road
line2: Unit 3
city: Examplesville
state: CA
country: US
postalCode: 90012
properties:
type:
description: The type of the order address (billing or shipping)
type: string
enum:
- shipping
- billing
example: shipping
japanType:
description: Represents a Japan-only address format. This field will only appear on orders placed from Japan.
type: string
enum:
- kana
- kanji
nullable: true
example: kanji
addressee:
description: Display name on the address
type: string
example: Customerio Namen
line1:
type: string
example: 123 Example Rd
description: The first line of the address
line2:
type: string
example: ''
description: The second line of the address
city:
type: string
example: Examplesville
description: The city of the address.
state:
type: string
example: CA
description: The state or province of the address
country:
type: string
example: US
description: The country of the address
postalCode:
type: string
example: 90012
description: The postal code of the address
shippingProvider:
type: string
description: |
A string editable by the API user to note the shipping provider used (not used by Webflow).
example: USPS
nullable: true
shippingTracking:
type: string
description: |
A string editable by the API user to note the shipping tracking number for the order (not used by Webflow).
example: RA401558525US
nullable: true
shippingTrackingURL:
type: string
format: uri
example: shipping.test.com/RA401558525US
nullable: true
customerInfo:
description: An object with the keys `fullName` and `email`.
properties:
fullName:
description: The full name of the Customer
type: string
example: Customerio Namen
email:
description: The Customer's email address
type: string
format: email
example: renning@webflow.com
purchasedItems:
type: array
description: An array of all things that the Customer purchased.
items:
description: An Item that was purchased
properties:
count:
type: number
example: 1
description: Number of Item purchased.
rowTotal:
description: The total for the row
properties:
unit:
description: The three-letter ISO currency code
type: string
example: USD
value:
description: The numeric value in the base unit of the currency
type: string
example: '5892'
string:
description: The user-facing string representation of the amount
type: string
example: $58.92
productId:
type: string
format: objectid
description: The unique identifier for the Product
readOnly: true
example: 5eb9fd05caef491eb9757183
productName:
type: string
description: User-facing name of the Product
example: White Cup
productSlug:
type: string
description: Slug for the Product
example: white-cup
variantId:
type: string
description: Identifier for the Product Variant (SKU)
example: 5eb9fcace279761d8199790c
variantName:
type: string
description: User-facing name of the Product Variant (SKU)
example: Red
variantSlug:
type: string
description: Slug for the Product Variant (SKU)
example: red
variantSKU:
description: The user-defined custom SKU of the Product Variant (SKU)
type: string
example: red-medium
variantImage:
properties:
url:
description: The hosted location for the Variant's image
type: string
format: uri
example: 'https://d1otoma47x30pg.cloudfront.net/5bfedb42bab0ad90fa7dac03/5bfedb42bab0ad90fa7dad2e_5bb3d019b3465c6e8a324dd7_458036-unsplas.png'
file:
type: object
properties:
size:
description: The image size in bytes
type: number
example: 21064
originalFileName:
description: the original name of the image
type: string
example: cup.jpg
createdOn:
description: The creation timestamp of the image
type: string
format: date-time
example: 2018-12-03T22:06:15.761Z
contentType:
description: The MIME type of the image
format: mime-type
type: string
example: image/jpeg
width:
description: The image width in pixels
type: integer
example: 640
height:
description: The image height in pixels
type: integer
example: 480
variants:
description: Variants of the supplied image
type: array
items:
type: object
properties:
url:
description: The hosted location for the Variant's image
format: uri
type: string
example: 'https://d1otoma47x30pg.cloudfront.net/5bfedb42bab0ad90fa7dac03/5bfedb42bab0ad90fa7dad2e_5bb3d019b3465c6e8a324dd7_458036-example.png'
originalFileName:
type: string
example: cup.jpg
size:
description: The image size in bytes
type: number
example: 12040
width:
description: The image width in pixels
type: integer
example: 320
height:
description: The image height in pixels
type: integer
example: 240
variantPrice:
description: The price corresponding to the variant
properties:
unit:
description: The three-letter ISO currency code
type: string
example: USD
value:
description: The numeric value in the base unit of the currency
type: string
example: '5892'
string:
description: The user-facing string representation of the amount
type: string
example: $58.92
weight:
type: number
example: 5
default: null
nullable: true
description: 'The physical weight of the variant if provided, or null'
width:
type: number
example: 4
nullable: true
default: null
description: 'The physical width of the variant if provided, or null'
height:
type: number
example: 7
nullable: true
default: null
description: 'The physical height of the variant if provided, or null'
length:
type: number
example: 2
nullable: true
default: null
description: 'The physical length of the variant if provided, or null'
purchasedItemsCount:
type: number
description: The sum of all 'count' fields in 'purchasedItems'.
example: 1
stripeDetails:
description: 'An object with various Stripe IDs, useful for linking into the stripe dashboard.'
properties:
subscriptionId:
type: string
format: objectid
example: sub_1J6xwG2eZvKYlo2CXu9Zt0Tn
nullable: true
description: Stripe-generated identifier for the Subscription
paymentMethod:
type: string
format: objectid
example: pm_1J6xwG2eZvKYlo2CXu9Zt0Tn
nullable: true
description: Stripe-generated identifier for the PaymentMethod used
paymentIntentId:
type: string
format: objectid
example: pi_1J6xwG2eZvKYlo2CXu9Zt0Tn
nullable: true
description: 'Stripe-generated identifier for the PaymentIntent, or null'
customerId:
type: string
format: objectid
example: cus_E5ajeiWNHEtcAW
description: 'Stripe-generated customer identifier, or null'
nullable: true
chargeId:
type: string
format: objectid
description: 'Stripe-generated charge identifier, or null'
example: ch_1DdPYQKMjGA7k9mI2AKiBY6u
nullable: true
disputeId:
type: string
format: objectid
description: 'Stripe-generated dispute identifier, or null'
example: null
nullable: true
refundId:
type: string
format: objectid
description: 'Stripe-generated refund identifier, or null'
example: null
nullable: true
refundReason:
type: string
description: 'Stripe-generated refund reason, or null'
example: requested_by_customer
nullable: true
stripeCard:
description: |
Details on the card used to fulfill this order, if this order was finalized with Stripe.
properties:
last4:
type: string
description: The last 4 digits on the card as a string
example: '4242'
brand:
type: string
description: The card's brand (ie. credit card network)
example: Visa
enum:
- Visa
- American Express
- MasterCard
- Discover
- JCB
- Diners Club
- Unknown
ownerName:
type: string
description: The name on the card.
example: Customerio Namen
expires:
type: object
description: The card's expiration date.
properties:
year:
description: Year that the card expires
type: number
example: 2025
month:
description: Month that the card expires
type: number
example: 12
paypalDetails:
type: object
properties:
orderId:
type: string
description: PayPal order identifier
example: 1a2b3c4d5e6f7g8h9i0j
payerId:
type: string
description: PayPal payer identifier
example: 9k8j7i6h5g4f3e2d1c0b
captureId:
type: string
description: PayPal capture identifier
example: qwe123rty456uio789p
refundId:
type: string
description: PayPal refund identifier
example: abcde12345fghij67890
refundReason:
type: string
description: PayPal-issued reason for the refund
example: Customer requested refund
disputeId:
type: string
description: PayPal dispute identifier
example: zxcvbnm987poiuytrewq
customData:
type: array
additionalProperties: true
description: |
An array of additional inputs for custom order data gathering. Each object in the array represents an input with a name, and a textInput, textArea, or checkbox value.
items:
type: object
metadata:
type: object
properties:
isBuyNow:
type: boolean
example: false
isCustomerDeleted:
type: boolean
description: |
A boolean indicating whether the customer has been deleted from the site.
example: false
isShippingRequired:
type: boolean
description: |
A boolean indicating whether the order contains one or more purchased items that require shipping.
example: false
hasDownloads:
type: boolean
description: |
A boolean indicating whether the order contains one or more purchased items that are downloadable.
example: false
paymentProcessor:
type: string
description: |
A string indicating the payment processor used for this order.
example: stripe
totals:
description: An object describing various pricing totals
properties:
subtotal:
description: The subtotal price
properties:
unit:
description: The three-letter ISO currency code
type: string
example: USD
value:
description: The numeric value in the base unit of the currency
type: string
example: '5892'
string:
description: The user-facing string representation of the amount
type: string
example: $58.92
extras:
type: array
description: 'An array of extra items, includes discounts, shipping, and taxes.'
items:
description: 'Extra order items, includes discounts, shipping, and taxes.'
example:
type: tax
name: State Taxes
description: CA Taxes (6.25%)
price:
unit: USD
value: 344
string: $3.44
properties:
type:
type: string
example: tax
description: The type of extra item this is.
enum:
- discount
- discount-shipping
- shipping
- tax
name:
type: string
description: A human-readable (but English) name for this extra charge.
example: shipping
description:
type: string
description: A human-readable (but English) description of this extra charge.
example: Flat Rate
price:
description: The price for the item
properties:
unit:
description: The three-letter ISO currency code
type: string
example: USD
value:
description: The numeric value in the base unit of the currency
type: string
example: '5892'
string:
description: The user-facing string representation of the amount
type: string
example: $58.92
total:
description: The total price
properties:
unit:
description: The three-letter ISO currency code
type: string
example: USD
value:
description: The numeric value in the base unit of the currency
type: string
example: '5892'
string:
description: The user-facing string representation of the amount
type: string
example: $58.92
downloadFiles:
description: An array of downloadable file objects.
type: array
default: []
items:
properties:
id:
type: string
description: The unique identifier for the downloadable file
example: 5e9a5eba75e0ac242e1b6f64
name:
type: string
description: The user-facing name for the downloadable file
example: The modern web design process - Webflow Ebook.pdf
url:
type: string
format: uri
description: The hosted location for the downloadable file
example: 'https://webflow.com/dashboard/download-digital-product?payload=5d93ba5e38c6b0160ab711d3;e7634a;5eb1aac72912ec06f561278c;5e9a5eba75e0ac242e1b6f63:ka2nehxy:4a1ee0a632feaab94294350087215ed89533f2f530903e3b933b638940e921aa'
example:
orderId: fc7-128
status: refunded
comment: "Customer requested gift wrapping and a personalized note saying: Happy Birthday, Ford! \U0001F389 Please ensure the item is packed with extra bubble wrap for safe transit."
orderComment: "Please gift wrap with a personal note saying \"Happy Birthday, Ford! \U0001F389"
acceptedOn: '2024-03-29T21:29:21.555Z'
fulfilledOn: '2024-03-29T21:29:21.555Z'
refundedOn: '2024-04-08T18:25:04.238Z'
disputedOn: '2024-03-29T21:29:21.555Z'
disputeUpdatedOn: '2024-03-29T21:29:21.555Z'
disputeLastStatus: charge_refunded
customerPaid:
unit: USD
value: 11873
string: $ 118.73 USD
netAmount:
unit: USD
value: 11262
string: $ 112.62 USD
applicationFee:
unit: USD
value: 237
string: $ 2.37 USD
allAddresses:
- type: billing
addressee: Arthur Dent
line1: 20 W 34th St
line2: Empire State Building
city: New York
state: New York
country: US
postalCode: '10118'
- type: shipping
addressee: Arthur Dent
line1: 20 W 34th St
line2: Empire State Building
city: New York
state: New York
country: US
postalCode: '10118'
shippingAddress:
type: shipping
japanType: kanji
addressee: Arthur Dent
line1: 20 W 34th St
line2: Empire State Building
city: New York
state: New York
country: US
postalCode: '10118'
shippingProvider: 'Shipping Company, Co.'
shippingTracking: tr00000000001
shippingTrackingURL: 'https://www.shippingcompany.com/tracking/tr00000000001'
customerInfo:
fullName: Arthur Dent
email: arthur.dent@example.com
purchasedItems:
- count: 1
rowTotal:
unit: USD
value: 5561
string: $ 55.61 USD
productId: 66072fb61b89448912e26791
productName: Luxurious Fresh Ball
productSlug: luxurious-fresh-ball
variantId: 66072fb71b89448912e2683f
variantName: 'Luxurious Fresh Ball Generic: Bronze, Practical: Plastic'
variantSlug: luxurious-fresh-ball-generic-bronze-practical-plastic
variantSKU: luxurious-fresh-ball-generic-bronze-practical-plastic
variantImage:
url: 'https://d1otoma47x30pg.cloudfront.net/66072f39417a2a35b2589cc7/66072fb51b89448912e2672c_image14.jpeg'
file: null
variantPrice:
unit: USD
value: 5561
string: $ 55.61 USD
weight: 11
height: 70
width: 82
length: 9
- count: 1
rowTotal:
unit: USD
value: 5344
string: $ 53.44 USD
productId: 66072fb61b89448912e26799
productName: Recycled Steel Gloves
productSlug: recycled-steel-gloves
variantId: 66072fb91b89448912e26ab9
variantName: 'Recycled Steel Gloves Electronic: Granite, Handcrafted: grey'
variantSlug: recycled-steel-gloves-electronic-granite-handcrafted-grey
variantSKU: recycled-steel-gloves-electronic-granite-handcrafted-grey
variantImage:
url: 'https://d1otoma47x30pg.cloudfront.net/66072f39417a2a35b2589cc7/66072fb51b89448912e2671e_image2.jpeg'
file: null
variantPrice:
unit: USD
value: 5344
string: $ 53.44 USD
weight: 38
height: 85
width: 76
length: 40
purchasedItemsCount: 2
stripeDetails:
customerId: cus_PpRsNHwWdUoRKR
paymentMethod: pm_1OzmzBJYFi4lcbXWHKNdXU7j
chargeId: ch_3OzmzDJYFi4lcbXW1ndkkrH2
disputeId: null
paymentIntentId: pi_3OzmzDJYFi4lcbXW1hTBW6ft
subscriptionId: null
refundId: re_3OzmzDJYFi4lcbXW1kFAmlBk
refundReason: fraudulent
stripeCard:
last4: '4242'
brand: Visa
ownerName: Arthur Dent
expires:
month: 4
year: 2024
paypalDetails: null
customData:
- {}
metadata:
isBuyNow: false
hasDownloads: false
paymentProcessor: stripe
billingAddress:
type: billing
addressee: Arthur Dent
line1: 20 W 34th St
line2: Empire State Building
city: New York
state: New York
country: US
postalCode: '10118'
totals:
subtotal:
unit: USD
value: 10905
string: $ 109.05 USD
extras:
- type: tax
name: State Taxes
description: NY Taxes (4.00%)
price:
unit: USD
value: 436
string: $ 4.36 USD
- type: tax
name: City Taxes
description: NEW YORK Taxes (4.88%)
price:
unit: USD
value: 532
string: $ 5.32 USD
- type: shipping
name: Flat
description: ''
price:
unit: USD
value: 0
string: $ 0.00 USD
total:
unit: USD
value: 11873
string: $ 118.73 USD
isCustomerDeleted: false
isShippingRequired: true
downloadFiles:
- id: 5e9a5eba75e0ac242e1b6f64
name: New product guide
url: 'https://webflow.com/dashboard/download-digital-product?payload=5d93ba5e38c6b0160ab711d3;e7634a;5eb1aac72912ec06f561278c;5e9a5eba75e0ac242e1b6f63:ka2nehxy:4a1ee0a632feaab94294350087215ed89533f2f530903e3b933b638940e921aa'
responses:
'200':
description: Return a 200 status to indicate that the data was received successfully
ecomm_order_changed:
post:
operationId: ecomm_order_changed
summary: Updated eComm Order
tags:
- Orders
requestBody:
description: The information about the order that changed
content:
application/json:
schema:
type: object
properties:
orderId:
type: string
readOnly: true
description: |
The order id. Will usually be 6 hex characters, but can also be 9 hex characters if the site has a very large number of Orders. Randomly assigned.
example: dfa-3f1
status:
type: string
example: unfulfilled
description: |
The status of the Order
enum:
- pending
- unfulfilled
- fulfilled
- disputed
- dispute-lost
- refunded
comment:
type: string
description: 'A comment string for this Order, which is editable by API user (not used by Webflow).'
example: "Customer requested gift wrapping and a personalized note saying: Happy Birthday, Ford! \U0001F389 Please ensure the item is packed with extra bubble wrap for safe transit."
orderComment:
type: string
description: A comment that the customer left when making their Order
example: "Please gift wrap with a personal note saying \"Happy Birthday, Ford! \U0001F389"
acceptedOn:
type: string
format: date-time
nullable: true
description: The ISO8601 timestamp that an Order was placed.
example: 2018-12-03T22:06:15.761Z
fulfilledOn:
type: string
format: date-time
nullable: true
description: |
When an Order is marked as 'fulfilled', this field represents the timestamp of the fulfillment in ISO8601 format. Otherwise, it is null.
example: 2018-12-03T22:06:15.761Z
refundedOn:
type: string
format: date-time
nullable: true
description: 'When an Order is marked as ''refunded'', this field represents the timestamp of the fulfillment in ISO8601 format. Otherwise, it is null.'
example: 2018-12-03T22:06:15.761Z
disputedOn:
type: string
format: date-time
nullable: true
description: |
When an Order is marked as 'disputed', this field represents the timestamp of the fulfillment in ISO8601 format. Otherwise, it is null.
example: 2018-12-03T22:06:15.761Z
disputeUpdatedOn:
type: string
format: date-time
nullable: true
description: |
If an Order has been disputed by the customer, this key will be set to the ISO8601 timestamp of the last update received. If the Order is not disputed, the key will be null.
example: 2018-12-03T22:06:15.761Z
disputeLastStatus:
type: string
description: |
If an order was disputed by the customer, then this key will be set with the [dispute's status](https://stripe.com/docs/api#dispute_object-status).
example: null
enum:
- warning_needs_response
- warning_under_review
- warning_closed
- needs_response
- under_review
- charge_refunded
- won
- lost
nullable: true
customerPaid:
description: The total paid by the customer
properties:
unit:
description: The three-letter ISO currency code
type: string
example: USD
value:
description: The numeric value in the base unit of the currency
type: string
example: '5892'
string:
description: The user-facing string representation of the amount
type: string
example: $58.92
netAmount:
description: The net amount after application fees
properties:
unit:
description: The three-letter ISO currency code
type: string
example: USD
value:
description: The numeric value in the base unit of the currency
type: string
example: '5892'
string:
description: The user-facing string representation of the amount
type: string
example: $58.92
applicationFee:
description: The application fee assessed by the platform
properties:
unit:
description: The three-letter ISO currency code
type: string
example: USD
value:
description: The numeric value in the base unit of the currency
type: string
example: '5892'
string:
description: The user-facing string representation of the amount
type: string
example: $58.92
allAddresses:
description: All addresses provided by the customer during the ordering flow.
type: array
example:
- type: shipping
japanType: kanji
addressee: Custmerio Namen
line1: 123 Example Road
line2: Unit 3
city: Examplesville
state: CA
country: US
postalCode: 90012
- type: billing
japanType: kanji
addressee: Custmerio Namen
line1: 123 Example Road
line2: Unit 3
city: Examplesville
state: CA
country: US
postalCode: 90012
items:
description: A customer address
properties:
type:
description: The type of the order address (billing or shipping)
type: string
enum:
- shipping
- billing
example: shipping
japanType:
description: Represents a Japan-only address format. This field will only appear on orders placed from Japan.
type: string
enum:
- kana
- kanji
nullable: true
example: kanji
addressee:
description: Display name on the address
type: string
example: Customerio Namen
line1:
type: string
example: 123 Example Rd
description: The first line of the address
line2:
type: string
example: ''
description: The second line of the address
city:
type: string
example: Examplesville
description: The city of the address.
state:
type: string
example: CA
description: The state or province of the address
country:
type: string
example: US
description: The country of the address
postalCode:
type: string
example: 90012
description: The postal code of the address
shippingAddress:
description: The shipping address
example:
type: shipping
japanType: kanji
addressee: Custmerio Namen
line1: 123 Example Road
line2: Unit 3
city: Examplesville
state: CA
country: US
postalCode: 90012
properties:
type:
description: The type of the order address (billing or shipping)
type: string
enum:
- shipping
- billing
example: shipping
japanType:
description: Represents a Japan-only address format. This field will only appear on orders placed from Japan.
type: string
enum:
- kana
- kanji
nullable: true
example: kanji
addressee:
description: Display name on the address
type: string
example: Customerio Namen
line1:
type: string
example: 123 Example Rd
description: The first line of the address
line2:
type: string
example: ''
description: The second line of the address
city:
type: string
example: Examplesville
description: The city of the address.
state:
type: string
example: CA
description: The state or province of the address
country:
type: string
example: US
description: The country of the address
postalCode:
type: string
example: 90012
description: The postal code of the address
billingAddress:
description: The billing address
example:
type: billing
japanType: kanji
addressee: Custmerio Namen
line1: 123 Example Road
line2: Unit 3
city: Examplesville
state: CA
country: US
postalCode: 90012
properties:
type:
description: The type of the order address (billing or shipping)
type: string
enum:
- shipping
- billing
example: shipping
japanType:
description: Represents a Japan-only address format. This field will only appear on orders placed from Japan.
type: string
enum:
- kana
- kanji
nullable: true
example: kanji
addressee:
description: Display name on the address
type: string
example: Customerio Namen
line1:
type: string
example: 123 Example Rd
description: The first line of the address
line2:
type: string
example: ''
description: The second line of the address
city:
type: string
example: Examplesville
description: The city of the address.
state:
type: string
example: CA
description: The state or province of the address
country:
type: string
example: US
description: The country of the address
postalCode:
type: string
example: 90012
description: The postal code of the address
shippingProvider:
type: string
description: |
A string editable by the API user to note the shipping provider used (not used by Webflow).
example: USPS
nullable: true
shippingTracking:
type: string
description: |
A string editable by the API user to note the shipping tracking number for the order (not used by Webflow).
example: RA401558525US
nullable: true
shippingTrackingURL:
type: string
format: uri
example: shipping.test.com/RA401558525US
nullable: true
customerInfo:
description: An object with the keys `fullName` and `email`.
properties:
fullName:
description: The full name of the Customer
type: string
example: Customerio Namen
email:
description: The Customer's email address
type: string
format: email
example: renning@webflow.com
purchasedItems:
type: array
description: An array of all things that the Customer purchased.
items:
description: An Item that was purchased
properties:
count:
type: number
example: 1
description: Number of Item purchased.
rowTotal:
description: The total for the row
properties:
unit:
description: The three-letter ISO currency code
type: string
example: USD
value:
description: The numeric value in the base unit of the currency
type: string
example: '5892'
string:
description: The user-facing string representation of the amount
type: string
example: $58.92
productId:
type: string
format: objectid
description: The unique identifier for the Product
readOnly: true
example: 5eb9fd05caef491eb9757183
productName:
type: string
description: User-facing name of the Product
example: White Cup
productSlug:
type: string
description: Slug for the Product
example: white-cup
variantId:
type: string
description: Identifier for the Product Variant (SKU)
example: 5eb9fcace279761d8199790c
variantName:
type: string
description: User-facing name of the Product Variant (SKU)
example: Red
variantSlug:
type: string
description: Slug for the Product Variant (SKU)
example: red
variantSKU:
description: The user-defined custom SKU of the Product Variant (SKU)
type: string
example: red-medium
variantImage:
properties:
url:
description: The hosted location for the Variant's image
type: string
format: uri
example: 'https://d1otoma47x30pg.cloudfront.net/5bfedb42bab0ad90fa7dac03/5bfedb42bab0ad90fa7dad2e_5bb3d019b3465c6e8a324dd7_458036-unsplas.png'
file:
type: object
properties:
size:
description: The image size in bytes
type: number
example: 21064
originalFileName:
description: the original name of the image
type: string
example: cup.jpg
createdOn:
description: The creation timestamp of the image
type: string
format: date-time
example: 2018-12-03T22:06:15.761Z
contentType:
description: The MIME type of the image
format: mime-type
type: string
example: image/jpeg
width:
description: The image width in pixels
type: integer
example: 640
height:
description: The image height in pixels
type: integer
example: 480
variants:
description: Variants of the supplied image
type: array
items:
type: object
properties:
url:
description: The hosted location for the Variant's image
format: uri
type: string
example: 'https://d1otoma47x30pg.cloudfront.net/5bfedb42bab0ad90fa7dac03/5bfedb42bab0ad90fa7dad2e_5bb3d019b3465c6e8a324dd7_458036-example.png'
originalFileName:
type: string
example: cup.jpg
size:
description: The image size in bytes
type: number
example: 12040
width:
description: The image width in pixels
type: integer
example: 320
height:
description: The image height in pixels
type: integer
example: 240
variantPrice:
description: The price corresponding to the variant
properties:
unit:
description: The three-letter ISO currency code
type: string
example: USD
value:
description: The numeric value in the base unit of the currency
type: string
example: '5892'
string:
description: The user-facing string representation of the amount
type: string
example: $58.92
weight:
type: number
example: 5
default: null
nullable: true
description: 'The physical weight of the variant if provided, or null'
width:
type: number
example: 4
nullable: true
default: null
description: 'The physical width of the variant if provided, or null'
height:
type: number
example: 7
nullable: true
default: null
description: 'The physical height of the variant if provided, or null'
length:
type: number
example: 2
nullable: true
default: null
description: 'The physical length of the variant if provided, or null'
purchasedItemsCount:
type: number
description: The sum of all 'count' fields in 'purchasedItems'.
example: 1
stripeDetails:
description: 'An object with various Stripe IDs, useful for linking into the stripe dashboard.'
properties:
subscriptionId:
type: string
format: objectid
example: sub_1J6xwG2eZvKYlo2CXu9Zt0Tn
nullable: true
description: Stripe-generated identifier for the Subscription
paymentMethod:
type: string
format: objectid
example: pm_1J6xwG2eZvKYlo2CXu9Zt0Tn
nullable: true
description: Stripe-generated identifier for the PaymentMethod used
paymentIntentId:
type: string
format: objectid
example: pi_1J6xwG2eZvKYlo2CXu9Zt0Tn
nullable: true
description: 'Stripe-generated identifier for the PaymentIntent, or null'
customerId:
type: string
format: objectid
example: cus_E5ajeiWNHEtcAW
description: 'Stripe-generated customer identifier, or null'
nullable: true
chargeId:
type: string
format: objectid
description: 'Stripe-generated charge identifier, or null'
example: ch_1DdPYQKMjGA7k9mI2AKiBY6u
nullable: true
disputeId:
type: string
format: objectid
description: 'Stripe-generated dispute identifier, or null'
example: null
nullable: true
refundId:
type: string
format: objectid
description: 'Stripe-generated refund identifier, or null'
example: null
nullable: true
refundReason:
type: string
description: 'Stripe-generated refund reason, or null'
example: requested_by_customer
nullable: true
stripeCard:
description: |
Details on the card used to fulfill this order, if this order was finalized with Stripe.
properties:
last4:
type: string
description: The last 4 digits on the card as a string
example: '4242'
brand:
type: string
description: The card's brand (ie. credit card network)
example: Visa
enum:
- Visa
- American Express
- MasterCard
- Discover
- JCB
- Diners Club
- Unknown
ownerName:
type: string
description: The name on the card.
example: Customerio Namen
expires:
type: object
description: The card's expiration date.
properties:
year:
description: Year that the card expires
type: number
example: 2025
month:
description: Month that the card expires
type: number
example: 12
paypalDetails:
type: object
properties:
orderId:
type: string
description: PayPal order identifier
example: 1a2b3c4d5e6f7g8h9i0j
payerId:
type: string
description: PayPal payer identifier
example: 9k8j7i6h5g4f3e2d1c0b
captureId:
type: string
description: PayPal capture identifier
example: qwe123rty456uio789p
refundId:
type: string
description: PayPal refund identifier
example: abcde12345fghij67890
refundReason:
type: string
description: PayPal-issued reason for the refund
example: Customer requested refund
disputeId:
type: string
description: PayPal dispute identifier
example: zxcvbnm987poiuytrewq
customData:
type: array
additionalProperties: true
description: |
An array of additional inputs for custom order data gathering. Each object in the array represents an input with a name, and a textInput, textArea, or checkbox value.
items:
type: object
metadata:
type: object
properties:
isBuyNow:
type: boolean
example: false
isCustomerDeleted:
type: boolean
description: |
A boolean indicating whether the customer has been deleted from the site.
example: false
isShippingRequired:
type: boolean
description: |
A boolean indicating whether the order contains one or more purchased items that require shipping.
example: false
hasDownloads:
type: boolean
description: |
A boolean indicating whether the order contains one or more purchased items that are downloadable.
example: false
paymentProcessor:
type: string
description: |
A string indicating the payment processor used for this order.
example: stripe
totals:
description: An object describing various pricing totals
properties:
subtotal:
description: The subtotal price
properties:
unit:
description: The three-letter ISO currency code
type: string
example: USD
value:
description: The numeric value in the base unit of the currency
type: string
example: '5892'
string:
description: The user-facing string representation of the amount
type: string
example: $58.92
extras:
type: array
description: 'An array of extra items, includes discounts, shipping, and taxes.'
items:
description: 'Extra order items, includes discounts, shipping, and taxes.'
example:
type: tax
name: State Taxes
description: CA Taxes (6.25%)
price:
unit: USD
value: 344
string: $3.44
properties:
type:
type: string
example: tax
description: The type of extra item this is.
enum:
- discount
- discount-shipping
- shipping
- tax
name:
type: string
description: A human-readable (but English) name for this extra charge.
example: shipping
description:
type: string
description: A human-readable (but English) description of this extra charge.
example: Flat Rate
price:
description: The price for the item
properties:
unit:
description: The three-letter ISO currency code
type: string
example: USD
value:
description: The numeric value in the base unit of the currency
type: string
example: '5892'
string:
description: The user-facing string representation of the amount
type: string
example: $58.92
total:
description: The total price
properties:
unit:
description: The three-letter ISO currency code
type: string
example: USD
value:
description: The numeric value in the base unit of the currency
type: string
example: '5892'
string:
description: The user-facing string representation of the amount
type: string
example: $58.92
downloadFiles:
description: An array of downloadable file objects.
type: array
default: []
items:
properties:
id:
type: string
description: The unique identifier for the downloadable file
example: 5e9a5eba75e0ac242e1b6f64
name:
type: string
description: The user-facing name for the downloadable file
example: The modern web design process - Webflow Ebook.pdf
url:
type: string
format: uri
description: The hosted location for the downloadable file
example: 'https://webflow.com/dashboard/download-digital-product?payload=5d93ba5e38c6b0160ab711d3;e7634a;5eb1aac72912ec06f561278c;5e9a5eba75e0ac242e1b6f63:ka2nehxy:4a1ee0a632feaab94294350087215ed89533f2f530903e3b933b638940e921aa'
example:
orderId: fc7-128
status: refunded
comment: "Customer requested gift wrapping and a personalized note saying: Happy Birthday, Ford! \U0001F389 Please ensure the item is packed with extra bubble wrap for safe transit."
orderComment: "Please gift wrap with a personal note saying \"Happy Birthday, Ford! \U0001F389"
acceptedOn: '2024-03-29T21:29:21.555Z'
fulfilledOn: '2024-03-29T21:29:21.555Z'
refundedOn: '2024-04-08T18:25:04.238Z'
disputedOn: '2024-03-29T21:29:21.555Z'
disputeUpdatedOn: '2024-03-29T21:29:21.555Z'
disputeLastStatus: charge_refunded
customerPaid:
unit: USD
value: 11873
string: $ 118.73 USD
netAmount:
unit: USD
value: 11262
string: $ 112.62 USD
applicationFee:
unit: USD
value: 237
string: $ 2.37 USD
allAddresses:
- type: billing
addressee: Arthur Dent
line1: 20 W 34th St
line2: Empire State Building
city: New York
state: New York
country: US
postalCode: '10118'
- type: shipping
addressee: Arthur Dent
line1: 20 W 34th St
line2: Empire State Building
city: New York
state: New York
country: US
postalCode: '10118'
shippingAddress:
type: shipping
japanType: kanji
addressee: Arthur Dent
line1: 20 W 34th St
line2: Empire State Building
city: New York
state: New York
country: US
postalCode: '10118'
shippingProvider: 'Shipping Company, Co.'
shippingTracking: tr00000000001
shippingTrackingURL: 'https://www.shippingcompany.com/tracking/tr00000000001'
customerInfo:
fullName: Arthur Dent
email: arthur.dent@example.com
purchasedItems:
- count: 1
rowTotal:
unit: USD
value: 5561
string: $ 55.61 USD
productId: 66072fb61b89448912e26791
productName: Luxurious Fresh Ball
productSlug: luxurious-fresh-ball
variantId: 66072fb71b89448912e2683f
variantName: 'Luxurious Fresh Ball Generic: Bronze, Practical: Plastic'
variantSlug: luxurious-fresh-ball-generic-bronze-practical-plastic
variantSKU: luxurious-fresh-ball-generic-bronze-practical-plastic
variantImage:
url: 'https://d1otoma47x30pg.cloudfront.net/66072f39417a2a35b2589cc7/66072fb51b89448912e2672c_image14.jpeg'
file: null
variantPrice:
unit: USD
value: 5561
string: $ 55.61 USD
weight: 11
height: 70
width: 82
length: 9
- count: 1
rowTotal:
unit: USD
value: 5344
string: $ 53.44 USD
productId: 66072fb61b89448912e26799
productName: Recycled Steel Gloves
productSlug: recycled-steel-gloves
variantId: 66072fb91b89448912e26ab9
variantName: 'Recycled Steel Gloves Electronic: Granite, Handcrafted: grey'
variantSlug: recycled-steel-gloves-electronic-granite-handcrafted-grey
variantSKU: recycled-steel-gloves-electronic-granite-handcrafted-grey
variantImage:
url: 'https://d1otoma47x30pg.cloudfront.net/66072f39417a2a35b2589cc7/66072fb51b89448912e2671e_image2.jpeg'
file: null
variantPrice:
unit: USD
value: 5344
string: $ 53.44 USD
weight: 38
height: 85
width: 76
length: 40
purchasedItemsCount: 2
stripeDetails:
customerId: cus_PpRsNHwWdUoRKR
paymentMethod: pm_1OzmzBJYFi4lcbXWHKNdXU7j
chargeId: ch_3OzmzDJYFi4lcbXW1ndkkrH2
disputeId: null
paymentIntentId: pi_3OzmzDJYFi4lcbXW1hTBW6ft
subscriptionId: null
refundId: re_3OzmzDJYFi4lcbXW1kFAmlBk
refundReason: fraudulent
stripeCard:
last4: '4242'
brand: Visa
ownerName: Arthur Dent
expires:
month: 4
year: 2024
paypalDetails: null
customData:
- {}
metadata:
isBuyNow: false
hasDownloads: false
paymentProcessor: stripe
billingAddress:
type: billing
addressee: Arthur Dent
line1: 20 W 34th St
line2: Empire State Building
city: New York
state: New York
country: US
postalCode: '10118'
totals:
subtotal:
unit: USD
value: 10905
string: $ 109.05 USD
extras:
- type: tax
name: State Taxes
description: NY Taxes (4.00%)
price:
unit: USD
value: 436
string: $ 4.36 USD
- type: tax
name: City Taxes
description: NEW YORK Taxes (4.88%)
price:
unit: USD
value: 532
string: $ 5.32 USD
- type: shipping
name: Flat
description: ''
price:
unit: USD
value: 0
string: $ 0.00 USD
total:
unit: USD
value: 11873
string: $ 118.73 USD
isCustomerDeleted: false
isShippingRequired: true
downloadFiles:
- id: 5e9a5eba75e0ac242e1b6f64
name: New product guide
url: 'https://webflow.com/dashboard/download-digital-product?payload=5d93ba5e38c6b0160ab711d3;e7634a;5eb1aac72912ec06f561278c;5e9a5eba75e0ac242e1b6f63:ka2nehxy:4a1ee0a632feaab94294350087215ed89533f2f530903e3b933b638940e921aa'
responses:
'200':
description: Return a 200 status to indicate that the data was received successfully
ecomm_inventory_changed:
post:
operationId: ecomm_inventory_changed
summary: Updated eComm Inventory
tags:
- Inventory
requestBody:
description: The information about the inventory item that changed
content:
application/json:
schema:
description: The availabile inventory for an item
properties:
id:
type: string
readOnly: true
format: objectid
description: Unique identifier for a SKU item
example: 5bfedb42bab0ad90fa7dad39
quantity:
type: number
description: Total quantity of items remaining in inventory (if inventoryType is finite)
example: 100
inventoryType:
type: string
description: infinite or finite
enum:
- infinite
- finite
example: finite
responses:
'200':
description: Return a 200 status to indicate that the data was received successfully
user_account_added:
post:
operationId: user_account_added
summary: New User Added
tags:
- Users
requestBody:
description: The information about the user account that was added
content:
application/json:
schema:
properties:
triggerType:
type: string
description: The type of event that triggered the request
enum:
- user_account_added
- user_account_updated
- user_account_deleted
payload:
description: |
The fields that define the schema for a given Item are based on the Collection that Item belongs to. Beyond the user defined fields, there are a handful of additional fields that are automatically created for all items
example:
id: 6287ec36a841b25637c663df
isEmailVerified: true
lastUpdated: '2022-05-20T13:46:12.093Z'
invitedOn: '2022-05-20T13:46:12.093Z'
createdOn: '2022-05-20T13:46:12.093Z'
lastLogin: '2022-05-20T13:46:12.093Z'
status: verified
accessGroups:
- slug: webflowers
type: admin
data:
name: Arthur Dent
email: arthur.dent@mostlyharmless.com
accept-privacy: true
accept-communications: true
favoriteDrink: Tea
currentPlanet: Somewhere in the vicinity of Betelgeuse
properties:
id:
readOnly: true
type: string
format: objectid
example: 6287ec36a841b25637c663df
description: Unique identifier for the User
isEmailVerified:
readOnly: true
type: boolean
description: Shows whether the user has verified their email address
lastUpdated:
readOnly: true
type: string
format: date-time
description: The timestamp the user was updated
example: '2016-10-24T19:41:29.156Z'
invitedOn:
readOnly: true
type: string
format: date-time
description: The timestamp the user was invited
example: '2016-10-24T19:41:29.156Z'
createdOn:
readOnly: true
type: string
format: date-time
description: The timestamp the user was created
example: '2016-10-24T19:41:29.156Z'
lastLogin:
readOnly: true
type: string
format: date-time
description: The timestamp the user was logged in
example: '2016-10-24T19:41:29.156Z'
status:
readOnly: true
type: string
description: The status of the user
enum:
- invited
- verified
- unverified
accessGroups:
type: array
description: Access groups the user belongs to
example:
- slug: webflowers
type: admin
- slug: platinum
type: ecommerce
items:
type: object
description: Access group slugs and types
properties:
slug:
type: string
description: Access group identifier for APIs
type:
type: string
enum:
- admin
- ecommerce
description: |
The type of access group based on how it was assigned to the user.
* `admin` - Assigned to the user via API or in the designer
* `ecommerce` - Assigned to the user via an ecommerce purchase
data:
type: object
description: An object containing the User's basic info and custom fields
properties:
data:
type: object
properties:
name:
type: string
description: |
The name of the user
email:
type: string
description: |
The email address of the user
accept-privacy:
type: boolean
description: |
Boolean indicating if the user has accepted the privacy policy
accept-communications:
type: boolean
description: |
Boolean indicating if the user has accepted to receive communications
additionalProperties:
description: Custom user attributes
type: string
responses:
'200':
description: Return a 200 status to indicate that the data was received successfully
user_account_updated:
post:
operationId: user_account_updated
summary: Account Updated
tags:
- Users
requestBody:
description: The information about the user account that was updated
content:
application/json:
schema:
properties:
triggerType:
type: string
description: The type of event that triggered the request
enum:
- user_account_added
- user_account_updated
- user_account_deleted
payload:
description: |
The fields that define the schema for a given Item are based on the Collection that Item belongs to. Beyond the user defined fields, there are a handful of additional fields that are automatically created for all items
example:
id: 6287ec36a841b25637c663df
isEmailVerified: true
lastUpdated: '2022-05-20T13:46:12.093Z'
invitedOn: '2022-05-20T13:46:12.093Z'
createdOn: '2022-05-20T13:46:12.093Z'
lastLogin: '2022-05-20T13:46:12.093Z'
status: verified
accessGroups:
- slug: webflowers
type: admin
data:
name: Arthur Dent
email: arthur.dent@mostlyharmless.com
accept-privacy: true
accept-communications: true
favoriteDrink: Tea
currentPlanet: Somewhere in the vicinity of Betelgeuse
properties:
id:
readOnly: true
type: string
format: objectid
example: 6287ec36a841b25637c663df
description: Unique identifier for the User
isEmailVerified:
readOnly: true
type: boolean
description: Shows whether the user has verified their email address
lastUpdated:
readOnly: true
type: string
format: date-time
description: The timestamp the user was updated
example: '2016-10-24T19:41:29.156Z'
invitedOn:
readOnly: true
type: string
format: date-time
description: The timestamp the user was invited
example: '2016-10-24T19:41:29.156Z'
createdOn:
readOnly: true
type: string
format: date-time
description: The timestamp the user was created
example: '2016-10-24T19:41:29.156Z'
lastLogin:
readOnly: true
type: string
format: date-time
description: The timestamp the user was logged in
example: '2016-10-24T19:41:29.156Z'
status:
readOnly: true
type: string
description: The status of the user
enum:
- invited
- verified
- unverified
accessGroups:
type: array
description: Access groups the user belongs to
example:
- slug: webflowers
type: admin
- slug: platinum
type: ecommerce
items:
type: object
description: Access group slugs and types
properties:
slug:
type: string
description: Access group identifier for APIs
type:
type: string
enum:
- admin
- ecommerce
description: |
The type of access group based on how it was assigned to the user.
* `admin` - Assigned to the user via API or in the designer
* `ecommerce` - Assigned to the user via an ecommerce purchase
data:
type: object
description: An object containing the User's basic info and custom fields
properties:
data:
type: object
properties:
name:
type: string
description: |
The name of the user
email:
type: string
description: |
The email address of the user
accept-privacy:
type: boolean
description: |
Boolean indicating if the user has accepted the privacy policy
accept-communications:
type: boolean
description: |
Boolean indicating if the user has accepted to receive communications
additionalProperties:
description: Custom user attributes
type: string
responses:
'200':
description: Return a 200 status to indicate that the data was received successfully
user_account_deleted:
post:
operationId: user_account_deleted
summary: Account Deleted
tags:
- Users
requestBody:
description: The information about the user account that was deleted
content:
application/json:
schema:
properties:
triggerType:
type: string
description: The type of event that triggered the request
enum:
- user_account_added
- user_account_updated
- user_account_deleted
payload:
description: |
The fields that define the schema for a given Item are based on the Collection that Item belongs to. Beyond the user defined fields, there are a handful of additional fields that are automatically created for all items
example:
id: 6287ec36a841b25637c663df
isEmailVerified: true
lastUpdated: '2022-05-20T13:46:12.093Z'
invitedOn: '2022-05-20T13:46:12.093Z'
createdOn: '2022-05-20T13:46:12.093Z'
lastLogin: '2022-05-20T13:46:12.093Z'
status: verified
accessGroups:
- slug: webflowers
type: admin
data:
name: Arthur Dent
email: arthur.dent@mostlyharmless.com
accept-privacy: true
accept-communications: true
favoriteDrink: Tea
currentPlanet: Somewhere in the vicinity of Betelgeuse
properties:
id:
readOnly: true
type: string
format: objectid
example: 6287ec36a841b25637c663df
description: Unique identifier for the User
isEmailVerified:
readOnly: true
type: boolean
description: Shows whether the user has verified their email address
lastUpdated:
readOnly: true
type: string
format: date-time
description: The timestamp the user was updated
example: '2016-10-24T19:41:29.156Z'
invitedOn:
readOnly: true
type: string
format: date-time
description: The timestamp the user was invited
example: '2016-10-24T19:41:29.156Z'
createdOn:
readOnly: true
type: string
format: date-time
description: The timestamp the user was created
example: '2016-10-24T19:41:29.156Z'
lastLogin:
readOnly: true
type: string
format: date-time
description: The timestamp the user was logged in
example: '2016-10-24T19:41:29.156Z'
status:
readOnly: true
type: string
description: The status of the user
enum:
- invited
- verified
- unverified
accessGroups:
type: array
description: Access groups the user belongs to
example:
- slug: webflowers
type: admin
- slug: platinum
type: ecommerce
items:
type: object
description: Access group slugs and types
properties:
slug:
type: string
description: Access group identifier for APIs
type:
type: string
enum:
- admin
- ecommerce
description: |
The type of access group based on how it was assigned to the user.
* `admin` - Assigned to the user via API or in the designer
* `ecommerce` - Assigned to the user via an ecommerce purchase
data:
type: object
description: An object containing the User's basic info and custom fields
properties:
data:
type: object
properties:
name:
type: string
description: |
The name of the user
email:
type: string
description: |
The email address of the user
accept-privacy:
type: boolean
description: |
Boolean indicating if the user has accepted the privacy policy
accept-communications:
type: boolean
description: |
Boolean indicating if the user has accepted to receive communications
additionalProperties:
description: Custom user attributes
type: string
responses:
'200':
description: Return a 200 status to indicate that the data was received successfully
collection_item_created:
post:
operationId: collection_item_created
summary: Item Created
tags:
- Items
- Collections
requestBody:
description: The information about the collection item that was created
content:
application/json:
schema:
description: |
The fields that define the schema for a given Item are based on the Collection that Item belongs to. Beyond the user defined fields, there are a handful of additional fields that are automatically created for all items
required:
- id
properties:
id:
type: string
readOnly: true
example: 580e64008c9a982ac9b8b754
description: Unique identifier for the Item
cmsLocaleId:
type: string
example: 653ad57de882f528b32e810e
description: Identifier for the locale of the CMS item
lastPublished:
type: string
format: date-string
readOnly: true
example: 2023-03-17T18:47:35.560Z
description: The date the item was last published
lastUpdated:
type: string
format: date-string
readOnly: true
example: 2023-03-17T18:47:35.560Z
description: The date the item was last updated
createdOn:
type: string
format: date-string
readOnly: true
example: 2023-03-17T18:47:35.560Z
description: The date the item was created
isArchived:
type: boolean
default: false
description: Boolean determining if the Item is set to archived
isDraft:
type: boolean
default: false
description: Boolean determining if the Item is set to draft
fieldData:
type: object
properties:
name:
type: string
description: Name of the Item
slug:
type: string
description: 'URL structure of the Item in your site. Note: Updates to an item slug will break all links referencing the old slug.'
additionalProperties: true
example:
date: 2022-11-18T00:00:00.000Z
featured: false
name: My new item
slug: my-new-item
color: '#db4b68'
example:
id: 42b720ef280c7a7a3be8cabe
cmsLocaleId: 653ad57de882f528b32e810e
lastPublished: '2022-11-29T16:22:43.159Z'
lastUpdated: '2022-11-17T17:19:43.282Z'
createdOn: '2022-11-17T17:11:57.148Z'
isArchived: false
isDraft: false
fieldData:
date: '2022-11-18T00:00:00.000Z'
featured: true
name: Pan Galactic Gargle Blaster Recipe
slug: pan-galactic-gargle-blaster
color: '#db4b68'
responses:
'200':
description: Return a 200 status to indicate that the data was received successfully
collection_item_changed:
post:
operationId: collection_item_changed
summary: Item Updated
tags:
- Items
- Collections
requestBody:
description: The information about the collection item that was changed
content:
application/json:
schema:
description: |
The fields that define the schema for a given Item are based on the Collection that Item belongs to. Beyond the user defined fields, there are a handful of additional fields that are automatically created for all items
required:
- id
properties:
id:
type: string
readOnly: true
example: 580e64008c9a982ac9b8b754
description: Unique identifier for the Item
cmsLocaleId:
type: string
example: 653ad57de882f528b32e810e
description: Identifier for the locale of the CMS item
lastPublished:
type: string
format: date-string
readOnly: true
example: 2023-03-17T18:47:35.560Z
description: The date the item was last published
lastUpdated:
type: string
format: date-string
readOnly: true
example: 2023-03-17T18:47:35.560Z
description: The date the item was last updated
createdOn:
type: string
format: date-string
readOnly: true
example: 2023-03-17T18:47:35.560Z
description: The date the item was created
isArchived:
type: boolean
default: false
description: Boolean determining if the Item is set to archived
isDraft:
type: boolean
default: false
description: Boolean determining if the Item is set to draft
fieldData:
type: object
properties:
name:
type: string
description: Name of the Item
slug:
type: string
description: 'URL structure of the Item in your site. Note: Updates to an item slug will break all links referencing the old slug.'
additionalProperties: true
example:
date: 2022-11-18T00:00:00.000Z
featured: false
name: My new item
slug: my-new-item
color: '#db4b68'
example:
id: 42b720ef280c7a7a3be8cabe
cmsLocaleId: 653ad57de882f528b32e810e
lastPublished: '2022-11-29T16:22:43.159Z'
lastUpdated: '2022-11-17T17:19:43.282Z'
createdOn: '2022-11-17T17:11:57.148Z'
isArchived: false
isDraft: false
fieldData:
date: '2022-11-18T00:00:00.000Z'
featured: true
name: Pan Galactic Gargle Blaster Recipe
slug: pan-galactic-gargle-blaster
color: '#db4b68'
responses:
'200':
description: Return a 200 status to indicate that the data was received successfully
collection_item_deleted:
post:
operationId: collection_item_deleted
summary: Item Deleted
tags:
- Items
- Collections
requestBody:
description: The results from deleting the collection item
content:
application/json:
schema:
properties:
deleted:
type: number
description: The number of items deleted
example: 1
itemId:
type: string
format: objectid
description: The id of the collection item that was deleted
example: 6321ca84df3949bfc6752327
example:
deleted: 1
itemId: 6321ca84df3949bfc6752327
responses:
'200':
description: Return a 200 status to indicate that the data was received successfully
collection_item_unpublished:
post:
operationId: collection_item_unpublished
summary: Item Unpublished
tags:
- Items
- Collections
requestBody:
description: The results from unpublishing the collection item
content:
application/json:
schema:
properties:
deleted:
type: number
description: The number of items deleted
example: 1
itemId:
type: string
format: objectid
description: The id of the collection item that was deleted
example: 6321ca84df3949bfc6752327
example:
deleted: 1
itemId: 6321ca84df3949bfc6752327
responses:
'200':
description: Return a 200 status to indicate that the data was received successfully
page_created:
post:
operationId: page_created
summary: Page Created
tags:
- Pages
requestBody:
description: Details about the page that was created
content:
application/json:
schema:
description: The Webhook payload for when a Page is created
type: object
properties:
siteId:
type: string
format: objectid
example: 562ac0395358780a1f5e6fbd
pageId:
type: string
format: objectid
example: 1as2d3f4g5h6j7k8l9z0x1c2v3b4n5m6
pageTitle:
type: string
example: My New Page
createdAt:
type: string
format: date-time
example: '2022-12-07T16:51:37.571Z'
responses:
'200':
description: Return a 200 status to indicate that the data was received successfully
page_metadata_updated:
post:
operationId: page_metadata_updated
summary: Page Metadata Updated
tags:
- Pages
requestBody:
description: Details about the page that was updated
content:
application/json:
schema:
description: The Webhook payload for when a Page's metadata is updated
type: object
properties:
siteId:
type: string
format: objectid
example: 562ac0395358780a1f5e6fbd
pageId:
type: string
format: objectid
example: 1as2d3f4g5h6j7k8l9z0x1c2v3b4n5m6
pageTitle:
type: string
example: My New Page
lastUpdated:
type: string
format: date-time
example: '2022-12-07T16:51:37.571Z'
responses:
'200':
description: Return a 200 status to indicate that the data was received successfully
page_deleted:
post:
operationId: page_deleted
summary: Page Deleted
tags:
- Pages
requestBody:
description: Details about the page that was deleted
content:
application/json:
schema:
description: The Webhook payload for when a Page is deleted
type: object
properties:
siteId:
type: string
format: objectid
example: 562ac0395358780a1f5e6fbd
pageId:
type: string
format: objectid
example: 1as2d3f4g5h6j7k8l9z0x1c2v3b4n5m6
pageTitle:
type: string
example: My New Page
deletedAt:
type: string
format: date-time
example: '2022-12-07T16:51:37.571Z'
responses:
'200':
description: Return a 200 status to indicate that the data was received successfully