openapi: 3.1.0
info:
version: 2.0.0
title: Data API
description: Webflow's Data API v2
termsOfService: 'https://webflow.com/legal/terms'
contact:
name: Webflow Developer Relations
email: developers@webflow.com
url: 'https://developers.webflow.com'
license:
name: MIT
url: 'https://opensource.org/licenses/MIT'
servers:
- url: 'https://api.webflow.com/v2'
description: Webflow API v2
x-fern-server-name: Data API
security:
- OAuth2: []
- ApiKey: []
tags:
- name: Analyze
description: Analyze reports provide read-only site analytics.
- name: Assets
description: Assets are files that are uploaded to your Webflow account.
- name: Custom Fonts
description: Custom fonts are font files that are uploaded to a Webflow site.
- name: Collections
description: Collections are CMS collections of items.
- name: Custom Code
description: Custom code is JavaScript that is added to your Webflow site.
- name: Custom Code - Pages
description: Custom code for pages.
- name: Custom Code - Sites
description: Custom code for sites.
- name: Forms
description: Forms are forms that are created on your Webflow site.
- name: Inventory
description: Inventory is the stock of e-commerce items in your Webflow site.
- name: Items
description: Items are the individual e-commerce items in your Webflow site.
- name: Meta
description: Meta is the metadata for your Webflow API token.
- name: Orders
description: Orders are the orders for your Webflow site.
- name: Pages
description: Pages are the pages in your Webflow site.
- name: Products & SKUs
description: Products & SKUs are the products and SKUs in your Webflow e-commerce site.
- name: Settings
description: Settings are the e-commerce settings for your Webflow site.
- name: Sites
description: Sites are the sites in your Webflow workspace.
- name: Webhooks
description: Webhooks are the webhooks in your Webflow site.
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: Get 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
x-logErrorCode: 401
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
'403':
description: 'Provided access token is valid, but is missing the required scopes.'
x-logErrorCode: 403
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: missing_scopes
message: 'OAuthForbidden: You are missing the following scopes - components:write'
externalReference: null
details: []
4XX:
description: Request body was incorrectly formatted.
x-logErrorCode: 400
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: bad_request
message: 'Bad Request: Request is malformed'
externalReference: null
details: []
5XX:
description: We had a problem with our server. Try again later.
content:
application/json:
x-logErrorCode: 500
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: internal_error
message: An Internal Error occurred
externalReference: null
details: []
/token/introspect:
get:
x-fern-sdk-group-name: token
x-fern-sdk-method-name: introspect
operationId: introspect
summary: Get Authorization Info
description: |
Information about the authorization token
Access to this endpoint requires a bearer token from a [Data Client App](/data/docs/data-clients/getting-started).
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:
type: object
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
x-logErrorCode: 401
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
4XX:
description: Request body was incorrectly formatted.
x-logErrorCode: 400
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: bad_request
message: 'Bad Request: Request is malformed'
externalReference: null
details: []
5XX:
description: We had a problem with our server. Try again later.
content:
application/json:
x-logErrorCode: 500
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: internal_error
message: An Internal Error occurred
externalReference: null
details: []
'/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: The Hitchhiker's Guide to the Galaxy
description: The name of the site
templateName:
type: string
example: Megadodo Publications - Guide Template
description: The workspace or marketplace template to use
parentFolderId:
type: string
nullable: true
example: a9c420f9347c2139b248e913
description: MegaDodo Publications - Potential Book Ideas
responses:
'201':
description: Request was successful
content:
application/json:
schema:
required:
- id
- workspaceId
- createdOn
- displayName
- shortName
- templateName
- lastPublished
- lastUpdated
- previewUrl
- timeZone
- dataCollectionEnabled
- dataCollectionType
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: America/Los_Angeles
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:
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
dataCollectionEnabled: true
dataCollectionType: always
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://dev-assets.website-files.com/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
url:
type: string
example: test-api-domain.com
description: The registered Domain name
lastPublished:
type: string
format: date-time
example: '2022-12-07T16:51:37.571Z'
readOnly: true
nullable: true
description: The date the custom domain was last published to
example:
id: 589a331aa51e760df7ccb89d
url: test-api-domain.com
lastPublished: '2022-12-07T16:51:37.571Z'
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.
dataCollectionEnabled:
type: boolean
description: Indicates if data collection is enabled for the site.
example: false
dataCollectionType:
type: string
enum:
- always
- optOut
- disabled
description: The type of data collection enabled for the site.
example: always
examples:
NewlyCreatedSite:
value:
id: 670ecf86817e3cc7a510eb6a
workspaceId: 625860a7a6c16d624927122f
displayName: The Hitchiker's Guide
shortName: hitchikers-guide
previewUrl: 'https://preview.mysite.com'
timeZone: America/Los_Angeles
createdOn: '2024-10-15T20:24:38.134Z'
lastUpdated: '2024-10-15T20:24:38.326Z'
lastPublished: '2024-11-15T20:24:38.326Z'
parentFolderId: 670ece123598db72d9648be1
customDomains: []
locales: null
dataCollectionEnabled: true
dataCollectionType: always
'400':
description: Request body was incorrectly formatted.
x-logErrorCode: 400
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: bad_request
message: 'Bad Request: Request is malformed'
externalReference: null
details: []
'401':
description: Provided access token is invalid or does not have access to requested resource
x-logErrorCode: 401
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
'403':
description: Forbidden request
content:
application/json:
schema:
oneOf:
- description: 'Provided access token is valid, but is missing the required scopes.'
x-logErrorCode: 403
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: missing_scopes
message: 'OAuthForbidden: You are missing the following scopes - components:write'
externalReference: null
details: []
- description: Error response for non-enterprise plan workspaces.
x-logErrorCode: 403
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: not_enterprise_plan_workspace
message: This workspace is not associated with an Enterprise plan
externalReference: null
details: []
'404':
description: Requested resource not found
x-logErrorCode: 404
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: resource_not_found
message: 'Requested resource not found: The site cannot be found'
externalReference: null
details: []
'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.
x-logErrorCode: 429
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
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: too_many_requests
message: Too many requests
externalReference: null
details: []
'500':
description: We had a problem with our server. Try again later.
content:
application/json:
x-logErrorCode: 500
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: internal_error
message: An Internal Error occurred
externalReference: null
details: []
'/workspaces/{workspace_id_or_slug}/audit_logs':
get:
x-fern-sdk-group-name:
- workspaces
- audit_logs
x-fern-sdk-method-name: get-workspace-audit_logs
security:
- OAuth2:
- 'workspace_activity:read'
operationId: get-workspace-audit-logs
summary: Get Workspace Audit Logs
description: |
Get audit logs for a workspace.
This endpoint requires an Enterprise workspace and a workspace token with the `workspace_activity:read` scope. Create a workspace token from your workspace dashboard integrations page to use this endpoint.
Required scope | `workspace_activity:read`
tags:
- Workspce Audit Logs
parameters:
- name: workspace_id_or_slug
in: path
description: Unique identifier or slug for a Workspace
example: hitchhikers-workspace
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: integer
- 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: integer
- name: sortOrder
in: query
allowEmptyValue: true
description: Sorts the results by asc or desc
required: false
schema:
type: string
enum:
- asc
- desc
- name: eventType
in: query
required: false
allowEmptyValue: true
description: The event type to filter by
schema:
type: string
enum:
- user_access
- custom_role
- workspace_membership
- site_membership
- workspace_invitation
- workspace_setting
example: user_access
- name: from
in: query
required: false
allowEmptyValue: true
description: The start date to filter by
schema:
type: string
format: date-time
example: '2025-06-22T16:00:31Z'
- name: to
in: query
required: false
allowEmptyValue: true
description: The end date to filter by
schema:
type: string
format: date-time
example: '2025-07-22T16:00:31Z'
responses:
'200':
description: A list of workspace audit logs
content:
application/json:
schema:
type: object
properties:
items:
type: array
items:
type: object
properties:
timestamp:
type: string
format: date-time
actor:
type: object
properties:
id:
type: string
email:
type: string
workspace:
type: object
properties:
id:
type: string
slug:
type: string
oneOf:
- type: object
title: User Access
properties:
eventType:
type: string
enum:
- user_access
eventSubType:
type: string
enum:
- login
- logout
payload:
x-fern-type-name: User access
title: User access
type: object
properties:
method:
type: string
enum:
- dashboard
- sso
- api
- google
location:
type: string
description: The geolocation based on the logged IP address
ipAddress:
type: string
description: The captured IP address of the user
- type: object
title: Custom Role
properties:
eventType:
type: string
enum:
- custom_role
eventSubType:
type: string
enum:
- role_created
- role_updated
- role_deleted
payload:
x-fern-type-name: Custom role
title: Custom role
type: object
properties:
roleName:
type: string
description: The name of the custom role
previousRoleName:
type: string
description: The previous name of the custom role
- type: object
title: Workspace Membership
properties:
eventType:
type: string
enum:
- workspace_membership
eventSubType:
type: string
enum:
- user_added
- user_removed
- user_role_updated
payload:
x-fern-type-name: Workspace membership
title: Workspace membership
type: object
properties:
targetUser:
type: object
properties:
id:
type: string
email:
type: string
method:
type: string
enum:
- sso
- dashboard
- admin
- access_request
userType:
type: string
enum:
- member
- guest
- reviewer
- client
roleName:
type: string
description: The name of the role that was assigned to the user
previousRoleName:
type: string
description: The previous role that the user had
- type: object
title: Site Membership
properties:
eventType:
type: string
enum:
- site_membership
eventSubType:
type: string
enum:
- user_added
- user_removed
- user_role_updated
- user_granular_access_updated
payload:
x-fern-type-name: Site membership
title: Site membership
type: object
properties:
site:
type: object
properties:
id:
type: string
slug:
type: string
targetUser:
type: object
properties:
id:
type: string
email:
type: string
method:
type: string
enum:
- sso
- invite
- scim
- dashboard
- admin
- access_request
userType:
type: string
enum:
- member
- guest
- reviewer
- client
roleName:
type: string
description: The name of the role that was assigned to the user
previousRoleName:
type: string
description: The previous role that the user had
granularAccess:
type: object
properties:
id:
type: string
name:
type: string
type:
type: string
enum:
- cms
restricted:
type: boolean
- type: object
title: Workspace Invitation
properties:
eventType:
type: string
enum:
- workspace_invitation
eventSubType:
type: string
enum:
- invite_sent
- invite_accepted
- invite_updated
- invite_canceled
- invite_declined
- access_request_accepted
payload:
x-fern-type-name: Workspace invitation
title: Workspace invitation
type: object
properties:
targetUser:
type: object
properties:
id:
type: string
email:
type: string
method:
type: string
enum:
- sso
- dashboard
- admin
userType:
type: string
enum:
- member
- guest
- reviewer
- client
roleName:
type: string
description: The name of the role that was assigned to the user
previousRoleName:
type: string
description: The previous role that the user had
targetUsers:
type: array
items:
type: object
properties:
id:
type: string
example: 580e63e98c9a982ac9b8b741
email:
type: string
example: zaphod.beeblebrox@heartofgold.ship
- type: object
title: Setting Change
properties:
eventType:
type: string
enum:
- workspace_setting
eventSubType:
type: string
enum:
- setting_updated
payload:
x-fern-type-name: Setting change
title: Setting change
type: object
properties:
setting:
type: string
enum:
- ai_toggle
previousValue:
type: string
example: 'false'
value:
type: string
example: 'true'
method:
type: string
enum:
- dashboard
- admin
pagination:
description: Pagination object
type: object
required:
- limit
- offset
- total
properties:
limit:
type: integer
description: The limit used for pagination
example: 100
readOnly: true
offset:
type: integer
description: The offset used for pagination
example: 0
readOnly: true
total:
type: integer
description: The total number of records
example: 100
readOnly: true
example:
items:
- timestamp: '2025-04-29T20:30:06.622Z'
eventType: user_access
eventSubType: login
actor:
id: 6661ccb359b561c69f29d554
email: someone@email.com
workspace:
id: 6621ccb459b561c69f29d57c
slug: hitchhikers-workspace
payload:
ipAddress: 54.165.18.93
location: Ashburn US
method: dashboard
- timestamp: '2025-04-30T20:30:06.622Z'
eventSubType: user_added
eventType: workspace_membership
actor:
id: 60492e55bbddce079561cd7a
email: someone@webflow.com
workspace:
id: 6621ccb459b561c69f29d57c
slug: hitchhikers-workspace
payload:
targetUser:
id: 60492e55bbddce079561cd7a
email: someone@webflow.com
method: sso
roleName: member
userType: member
- timestamp: '2025-04-30T00:33:31.793Z'
eventType: site_membership
eventSubType: user_added
actor:
id: 671fe00d185fc8c1ad409d37
email: someone@webflow.com
workspace:
id: 6621ccb459b561c69f29d57c
slug: hitchhikers-workspace
payload:
method: dashboard
roleName: Edit - Cannot publish
site:
id: 67dc519889286123da057175
slug: hitchhikers-site
targetUser:
id: 672946bf5d384ea895bb95e2
email: someone@webflow.com
userType: member
granularAccess:
id: 67dc519889286123da057175
name: Blogs
type: cms
restricted: false
pagination:
total: 3
limit: 10
offset: 0
'401':
description: Provided access token is invalid or does not have access to requested resource
x-logErrorCode: 401
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
'403':
description: Forbidden
x-logErrorCode: 403
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: forbidden
message: User is not authorized to perform this action
externalReference: null
details: []
'404':
description: Requested resource not found
x-logErrorCode: 404
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: resource_not_found
message: 'Requested resource not found: The site cannot be found'
externalReference: null
details: []
'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.
x-logErrorCode: 429
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
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: too_many_requests
message: Too many requests
externalReference: null
details: []
'500':
description: We had a problem with our server. Try again later.
content:
application/json:
x-logErrorCode: 500
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: internal_error
message: An Internal Error occurred
externalReference: null
details: []
/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: America/Los_Angeles
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:
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
dataCollectionEnabled: true
dataCollectionType: always
required:
- id
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://dev-assets.website-files.com/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
url:
type: string
example: test-api-domain.com
description: The registered Domain name
lastPublished:
type: string
format: date-time
example: '2022-12-07T16:51:37.571Z'
readOnly: true
nullable: true
description: The date the custom domain was last published to
example:
id: 589a331aa51e760df7ccb89d
url: test-api-domain.com
lastPublished: '2022-12-07T16:51:37.571Z'
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.
dataCollectionEnabled:
type: boolean
description: Indicates if data collection is enabled for the site.
example: false
dataCollectionType:
type: string
enum:
- always
- optOut
- disabled
description: The type of data collection enabled for the site.
example: always
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://dev-assets.website-files.com/42e63e98c9a982ac9b8b741/197910121200.png'
timeZone: America/Los_Angeles
parentFolderId: 1as2d3f4g5h6j7k8l9z0x1c2v3b4n5m6
customDomains:
- id: 589a331aa51e760df7ccb89e
url: heartofgold.galaxy
lastPublished: '2022-12-07T16:51:37.571Z'
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
dataCollectionEnabled: true
dataCollectionType: always
- 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://dev-assets.website-files.com/42e63e98c9a982ac9b8b742/198110121200.png'
timeZone: America/Los_Angeles
parentFolderId: null
customDomains:
- id: 589a331aa51e760df7ccb89f
url: marvin.blog
lastPublished: '2022-12-07T16:51:37.571Z'
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
dataCollectionEnabled: true
dataCollectionType: always
- 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://dev-assets.website-files.com/42e63e98c9a982ac9b8b743/198210121200.png'
timeZone: America/Los_Angeles
parentFolderId: null
customDomains:
- id: 589a331aa51e760df7ccb8a0
url: vogonpoetry.galaxy
lastPublished: '2022-12-07T16:51:37.571Z'
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
dataCollectionEnabled: true
dataCollectionType: always
'401':
description: Provided access token is invalid or does not have access to requested resource
x-logErrorCode: 401
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
'404':
description: Requested resource not found
x-logErrorCode: 404
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: resource_not_found
message: 'Requested resource not found: The site cannot be found'
externalReference: null
details: []
'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.
x-logErrorCode: 429
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
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: too_many_requests
message: Too many requests
externalReference: null
details: []
4XX:
description: Request body was incorrectly formatted.
x-logErrorCode: 400
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: bad_request
message: 'Bad Request: Request is malformed'
externalReference: null
details: []
5XX:
description: We had a problem with our server. Try again later.
content:
application/json:
x-logErrorCode: 500
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: internal_error
message: An Internal Error occurred
externalReference: null
details: []
'/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 details of a 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:
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: America/Los_Angeles
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:
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
dataCollectionEnabled: true
dataCollectionType: always
required:
- id
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://dev-assets.website-files.com/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
url:
type: string
example: test-api-domain.com
description: The registered Domain name
lastPublished:
type: string
format: date-time
example: '2022-12-07T16:51:37.571Z'
readOnly: true
nullable: true
description: The date the custom domain was last published to
example:
id: 589a331aa51e760df7ccb89d
url: test-api-domain.com
lastPublished: '2022-12-07T16:51:37.571Z'
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.
dataCollectionEnabled:
type: boolean
description: Indicates if data collection is enabled for the site.
example: false
dataCollectionType:
type: string
enum:
- always
- optOut
- disabled
description: The type of data collection enabled for the site.
example: always
examples:
SiteWithLocales:
value:
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: America/Los_Angeles
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:
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
dataCollectionEnabled: true
dataCollectionType: always
'400':
description: Request body was incorrectly formatted.
x-logErrorCode: 400
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: bad_request
message: 'Bad Request: Request is malformed'
externalReference: null
details: []
'401':
description: Provided access token is invalid or does not have access to requested resource
x-logErrorCode: 401
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
'404':
description: Requested resource not found
x-logErrorCode: 404
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: resource_not_found
message: 'Requested resource not found: The site cannot be found'
externalReference: null
details: []
'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.
x-logErrorCode: 429
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
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: too_many_requests
message: Too many requests
externalReference: null
details: []
'500':
description: We had a problem with our server. Try again later.
content:
application/json:
x-logErrorCode: 500
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: internal_error
message: An Internal Error occurred
externalReference: null
details: []
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: America/Los_Angeles
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:
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
dataCollectionEnabled: true
dataCollectionType: always
required:
- id
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://dev-assets.website-files.com/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
url:
type: string
example: test-api-domain.com
description: The registered Domain name
lastPublished:
type: string
format: date-time
example: '2022-12-07T16:51:37.571Z'
readOnly: true
nullable: true
description: The date the custom domain was last published to
example:
id: 589a331aa51e760df7ccb89d
url: test-api-domain.com
lastPublished: '2022-12-07T16:51:37.571Z'
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.
dataCollectionEnabled:
type: boolean
description: Indicates if data collection is enabled for the site.
example: false
dataCollectionType:
type: string
enum:
- always
- optOut
- disabled
description: The type of data collection enabled for the site.
example: always
'400':
description: Request body was incorrectly formatted.
x-logErrorCode: 400
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: bad_request
message: 'Bad Request: Request is malformed'
externalReference: null
details: []
'401':
description: Provided access token is invalid or does not have access to requested resource
x-logErrorCode: 401
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
'403':
description: Forbidden request
content:
application/json:
schema:
oneOf:
- description: 'Provided access token is valid, but is missing the required scopes.'
x-logErrorCode: 403
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: missing_scopes
message: 'OAuthForbidden: You are missing the following scopes - components:write'
externalReference: null
details: []
- description: Error response for non-enterprise plan sites.
x-logErrorCode: 403
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: not_enterprise_plan_site
message: This site is not associated with an Enterprise plan
externalReference: null
details: []
'404':
description: Requested resource not found
x-logErrorCode: 404
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: resource_not_found
message: 'Requested resource not found: The site cannot be found'
externalReference: null
details: []
'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.
x-logErrorCode: 429
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
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: too_many_requests
message: Too many requests
externalReference: null
details: []
'500':
description: We had a problem with our server. Try again later.
content:
application/json:
x-logErrorCode: 500
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: internal_error
message: An Internal Error occurred
externalReference: null
details: []
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.
x-logErrorCode: 400
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: bad_request
message: 'Bad Request: Request is malformed'
externalReference: null
details: []
'401':
description: Provided access token is invalid or does not have access to requested resource
x-logErrorCode: 401
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
'403':
description: Forbidden request
content:
application/json:
schema:
oneOf:
- description: 'Provided access token is valid, but is missing the required scopes.'
x-logErrorCode: 403
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: missing_scopes
message: 'OAuthForbidden: You are missing the following scopes - components:write'
externalReference: null
details: []
- description: Error response for non-enterprise plan sites.
x-logErrorCode: 403
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: not_enterprise_plan_site
message: This site is not associated with an Enterprise plan
externalReference: null
details: []
'404':
description: Requested resource not found
x-logErrorCode: 404
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: resource_not_found
message: 'Requested resource not found: The site cannot be found'
externalReference: null
details: []
'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.
x-logErrorCode: 429
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
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: too_many_requests
message: Too many requests
externalReference: null
details: []
'500':
description: We had a problem with our server. Try again later.
content:
application/json:
x-logErrorCode: 500
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: internal_error
message: An Internal Error occurred
externalReference: null
details: []
'/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
url:
type: string
example: test-api-domain.com
description: The registered Domain name
lastPublished:
type: string
format: date-time
example: '2022-12-07T16:51:37.571Z'
readOnly: true
nullable: true
description: The date the custom domain was last published to
example:
id: 589a331aa51e760df7ccb89d
url: test-api-domain.com
lastPublished: '2022-12-07T16:51:37.571Z'
example:
customDomains:
- id: 589a331aa51e760df7ccb89d
url: hitchhikersguide.galaxy
lastPublished: '2022-12-07T16:51:37.571Z'
- id: 589a331aa51e760df7ccb89e
url: heartofgold.spaceship
lastPublished: '2022-12-07T16:51:37.571Z'
'401':
description: Provided access token is invalid or does not have access to requested resource
x-logErrorCode: 401
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
'403':
description: Forbidden
x-logErrorCode: 403
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: forbidden
message: User is not authorized to perform this action
externalReference: null
details: []
'404':
description: Requested resource not found
x-logErrorCode: 404
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: resource_not_found
message: 'Requested resource not found: The site cannot be found'
externalReference: null
details: []
'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.
x-logErrorCode: 429
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
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: too_many_requests
message: Too many requests
externalReference: null
details: []
'500':
description: We had a problem with our server. Try again later.
content:
application/json:
x-logErrorCode: 500
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: internal_error
message: An Internal Error occurred
externalReference: null
details: []
'/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: |
Publishes a site or an individual page to one or more domains.
If multiple individual pages are published to staging, publishing from staging to production publishes all staged changes.
To publish to a specific custom domain, use the domain IDs from the [Get Custom Domains](/data/reference/sites/get-custom-domain) endpoint.
You must include at least one of the `customDomains` or `publishToWebflowSubdomain` properties in the request body.
To publish an individual page instead of the entire site, provide the ID of the page in the `pageId` parameter.
This endpoint has a specific rate limit of one successful publish queue per minute.
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
pageId:
description: The ID of the page to publish
type: string
example: 64abc123def4567890abcde1
examples:
DomainIDs:
value:
customDomains:
- 660c6449dd97ebc7346ac629
- 660c6449dd97ebc7346ac62f
publishToWebflowSubdomain: 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
url:
type: string
example: test-api-domain.com
description: The registered Domain name
lastPublished:
type: string
format: date-time
example: '2022-12-07T16:51:37.571Z'
readOnly: true
nullable: true
description: The date the custom domain was last published to
example:
id: 589a331aa51e760df7ccb89d
url: test-api-domain.com
lastPublished: '2022-12-07T16:51:37.571Z'
publishToWebflowSubdomain:
description: Flag for publishing to webflow.io subdomain
type: boolean
default: false
publishScope:
description: Whether the site or an individual page was published
type: string
enum:
- site
- page
'400':
description: Bad Request
content:
application/json:
schema:
oneOf:
- description: Requested an invalid Domain. Please send a valid custom domain URI.
x-logErrorCode: 400
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: invalid_domain
message: Please send a valid custom domain ID
externalReference: null
details: []
- description: You must pass at least one domain ID to the publish endpoint.
x-logErrorCode: 400
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: no_domains
message: No domain IDs provided
externalReference: null
details: []
'401':
description: Provided access token is invalid or does not have access to requested resource
x-logErrorCode: 401
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
'403':
description: Forbidden
x-logErrorCode: 403
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: forbidden
message: User is not authorized to perform this action
externalReference: null
details: []
'404':
description: Requested resource not found
x-logErrorCode: 404
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: resource_not_found
message: 'Requested resource not found: The site cannot be found'
externalReference: null
details: []
'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.
x-logErrorCode: 429
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
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: too_many_requests
message: Too many requests
externalReference: null
details: []
'/sites/{site_id}/redirects':
get:
x-fern-sdk-group-name:
- sites
- redirects
x-fern-sdk-method-name: list
security:
- OAuth2:
- 'sites:read'
operationId: get-redirects
summary: Get 301 redirects
description: |
Fetch a list of all 301 redirect rules configured for a specific site.
Use this endpoint to review, audit, or manage the redirection rules that control how traffic is rerouted on your site.
This endpoint requires an Enterprise workspace.
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
description: Site redirects response
properties:
redirects:
type: array
description: List of redirects for a given site
items:
type: object
description: 'A single redirection rule, specifying a source URL and a destination URL.'
properties:
id:
type: string
description: The ID of the specific redirect rule
example: 66c4cb9a20cac35ed19500e6
readOnly: true
fromUrl:
type: string
description: The source URL path that will be redirected.
example: /mostly-harmless
toUrl:
type: string
description: The target URL path where the user or client will be redirected.
example: /earth
example:
id: 42e1a2b7aa1a13f768a0042a
fromUrl: /mostly-harmless
toUrl: /earth
pagination:
description: Pagination object
type: object
required:
- limit
- offset
- total
properties:
limit:
type: integer
description: The limit used for pagination
example: 100
readOnly: true
offset:
type: integer
description: The offset used for pagination
example: 0
readOnly: true
total:
type: integer
description: The total number of records
example: 100
readOnly: true
example:
redirects:
- id: 42e1a2b7aa1a13f768a0042a
fromUrl: /mostly-harmless
toUrl: /earth
- id: 6x9e7f8d9a4b1c2d3e4f5678
fromUrl: /babel-fish
toUrl: /translate
pagination:
limit: 100
offset: 0
total: 2
'400':
description: Request body was incorrectly formatted.
x-logErrorCode: 400
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: bad_request
message: 'Bad Request: Request is malformed'
externalReference: null
details: []
'401':
description: Provided access token is invalid or does not have access to requested resource
x-logErrorCode: 401
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
'404':
description: Requested resource not found
x-logErrorCode: 404
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: resource_not_found
message: 'Requested resource not found: The site cannot be found'
externalReference: null
details: []
'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.
x-logErrorCode: 429
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
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: too_many_requests
message: Too many requests
externalReference: null
details: []
'500':
description: We had a problem with our server. Try again later.
content:
application/json:
x-logErrorCode: 500
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: internal_error
message: An Internal Error occurred
externalReference: null
details: []
post:
x-fern-sdk-group-name:
- sites
- redirects
x-fern-sdk-method-name: create
security:
- OAuth2:
- 'sites:write'
operationId: create-redirect
summary: Create a 301 redirect
description: |
Add a new 301 redirection rule to a site.
This endpoint allows you to define a source path (`fromUrl`) and its corresponding destination path (`toUrl`), which will dictate how traffic is rerouted on your site. This is useful for managing site changes, restructuring URLs, or handling outdated links.
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:
type: object
description: 'A single redirection rule, specifying a source URL and a destination URL.'
properties:
id:
type: string
description: The ID of the specific redirect rule
example: 66c4cb9a20cac35ed19500e6
readOnly: true
fromUrl:
type: string
description: The source URL path that will be redirected.
example: /mostly-harmless
toUrl:
type: string
description: The target URL path where the user or client will be redirected.
example: /earth
example:
id: 42e1a2b7aa1a13f768a0042a
fromUrl: /mostly-harmless
toUrl: /earth
responses:
'200':
description: Request was successful
content:
application/json:
schema:
type: object
description: 'A single redirection rule, specifying a source URL and a destination URL.'
properties:
id:
type: string
description: The ID of the specific redirect rule
example: 66c4cb9a20cac35ed19500e6
readOnly: true
fromUrl:
type: string
description: The source URL path that will be redirected.
example: /mostly-harmless
toUrl:
type: string
description: The target URL path where the user or client will be redirected.
example: /earth
example:
id: 42e1a2b7aa1a13f768a0042a
fromUrl: /mostly-harmless
toUrl: /earth
'400':
description: Request body was incorrectly formatted.
x-logErrorCode: 400
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: bad_request
message: 'Bad Request: Request is malformed'
externalReference: null
details: []
'401':
description: Provided access token is invalid or does not have access to requested resource
x-logErrorCode: 401
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
'404':
description: Requested resource not found
x-logErrorCode: 404
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: resource_not_found
message: 'Requested resource not found: The site cannot be found'
externalReference: null
details: []
'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.
x-logErrorCode: 429
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
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: too_many_requests
message: Too many requests
externalReference: null
details: []
'500':
description: We had a problem with our server. Try again later.
content:
application/json:
x-logErrorCode: 500
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: internal_error
message: An Internal Error occurred
externalReference: null
details: []
'/sites/{site_id}/redirects/{redirect_id}':
patch:
x-fern-sdk-group-name:
- sites
- redirects
x-fern-sdk-method-name: update
security:
- OAuth2:
- 'sites:write'
operationId: update-redirect
summary: Update 301 redirect
description: |
Update a 301 redirection rule from 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
- name: redirect_id
in: path
description: Unique identifier site redirect
example: 66c4cb9a20cac35ed19500e6
required: true
schema:
type: string
format: objectid
default: null
requestBody:
content:
application/json:
schema:
type: object
description: 'A single redirection rule, specifying a source URL and a destination URL.'
properties:
id:
type: string
description: The ID of the specific redirect rule
example: 66c4cb9a20cac35ed19500e6
readOnly: true
fromUrl:
type: string
description: The source URL path that will be redirected.
example: /mostly-harmless
toUrl:
type: string
description: The target URL path where the user or client will be redirected.
example: /earth
example:
id: 42e1a2b7aa1a13f768a0042a
fromUrl: /mostly-harmless
toUrl: /earth
responses:
'200':
description: Request was successful
content:
application/json:
schema:
type: object
description: 'A single redirection rule, specifying a source URL and a destination URL.'
properties:
id:
type: string
description: The ID of the specific redirect rule
example: 66c4cb9a20cac35ed19500e6
readOnly: true
fromUrl:
type: string
description: The source URL path that will be redirected.
example: /mostly-harmless
toUrl:
type: string
description: The target URL path where the user or client will be redirected.
example: /earth
example:
id: 42e1a2b7aa1a13f768a0042a
fromUrl: /mostly-harmless
toUrl: /earth
'400':
description: Request body was incorrectly formatted.
x-logErrorCode: 400
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: bad_request
message: 'Bad Request: Request is malformed'
externalReference: null
details: []
'401':
description: Provided access token is invalid or does not have access to requested resource
x-logErrorCode: 401
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
'404':
description: Requested resource not found
x-logErrorCode: 404
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: resource_not_found
message: 'Requested resource not found: The site cannot be found'
externalReference: null
details: []
'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.
x-logErrorCode: 429
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
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: too_many_requests
message: Too many requests
externalReference: null
details: []
'500':
description: We had a problem with our server. Try again later.
content:
application/json:
x-logErrorCode: 500
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: internal_error
message: An Internal Error occurred
externalReference: null
details: []
delete:
x-fern-sdk-group-name:
- sites
- redirects
x-fern-sdk-method-name: delete
security:
- OAuth2:
- 'sites:write'
operationId: delete-redirects
summary: Delete 301 redirects
description: |
Remove a 301 redirection rule from a site.
This is useful for cleaning up outdated or unnecessary redirects, ensuring that your site's routing behavior remains efficient and up-to-date.
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
- name: redirect_id
in: path
description: Unique identifier site redirect
example: 66c4cb9a20cac35ed19500e6
required: true
schema:
type: string
format: objectid
default: null
responses:
'200':
description: Request was successful
content:
application/json:
schema:
type: object
description: Site redirects response
properties:
redirects:
type: array
description: List of redirects for a given site
items:
type: object
description: 'A single redirection rule, specifying a source URL and a destination URL.'
properties:
id:
type: string
description: The ID of the specific redirect rule
example: 66c4cb9a20cac35ed19500e6
readOnly: true
fromUrl:
type: string
description: The source URL path that will be redirected.
example: /mostly-harmless
toUrl:
type: string
description: The target URL path where the user or client will be redirected.
example: /earth
example:
id: 42e1a2b7aa1a13f768a0042a
fromUrl: /mostly-harmless
toUrl: /earth
pagination:
description: Pagination object
type: object
required:
- limit
- offset
- total
properties:
limit:
type: integer
description: The limit used for pagination
example: 100
readOnly: true
offset:
type: integer
description: The offset used for pagination
example: 0
readOnly: true
total:
type: integer
description: The total number of records
example: 100
readOnly: true
example:
redirects:
- id: 42e1a2b7aa1a13f768a0042a
fromUrl: /mostly-harmless
toUrl: /earth
- id: 6x9e7f8d9a4b1c2d3e4f5678
fromUrl: /babel-fish
toUrl: /translate
pagination:
limit: 100
offset: 0
total: 2
'400':
description: Request body was incorrectly formatted.
x-logErrorCode: 400
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: bad_request
message: 'Bad Request: Request is malformed'
externalReference: null
details: []
'401':
description: Provided access token is invalid or does not have access to requested resource
x-logErrorCode: 401
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
'404':
description: Requested resource not found
x-logErrorCode: 404
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: resource_not_found
message: 'Requested resource not found: The site cannot be found'
externalReference: null
details: []
'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.
x-logErrorCode: 429
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
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: too_many_requests
message: Too many requests
externalReference: null
details: []
'500':
description: We had a problem with our server. Try again later.
content:
application/json:
x-logErrorCode: 500
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: internal_error
message: An Internal Error occurred
externalReference: null
details: []
'/sites/{site_id}/plan':
get:
x-fern-sdk-group-name:
- sites
- plans
x-fern-sdk-method-name: get-site-plan
security:
- OAuth2:
- 'sites:read'
operationId: get-site-plan
summary: Get Site Plan
description: |
Get site plan details for the specified Site.
This endpoint requires an Enterprise workspace.
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: hosting-business-v4
name: Business Hosting
pricingDetails: 'https://webflow.com/pricing'
type: object
properties:
id:
description: ID of the hosting plan.
type: string
enum:
- hosting-basic-v3
- hosting-cms-v3
- hosting-business-v3
- hosting-ecommerce-standard-v2
- hosting-ecommerce-plus-v2
- hosting-ecommerce-advanced-v2
- hosting-basic-v4
- hosting-cms-v4
- hosting-business-v4
- hosting-ecommerce-standard-v3
- hosting-ecommerce-plus-v3
- hosting-ecommerce-advanced-v3
name:
description: Name of the hosting plan.
type: string
enum:
- Basic Hosting
- CMS Hosting
- Business Hosting
- ECommerce Standard Hosting
- ECommerce Plus Hosting
- ECommerce Advanced Hosting
pricingInfo:
description: URL for more information about Webflow hosting plan pricing.
type: string
example: 'https://webflow.com/pricing'
'400':
description: Request body was incorrectly formatted.
x-logErrorCode: 400
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: bad_request
message: 'Bad Request: Request is malformed'
externalReference: null
details: []
'401':
description: Provided access token is invalid or does not have access to requested resource
x-logErrorCode: 401
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
'404':
description: Requested resource not found
x-logErrorCode: 404
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: resource_not_found
message: 'Requested resource not found: The site cannot be found'
externalReference: null
details: []
'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.
x-logErrorCode: 429
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
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: too_many_requests
message: Too many requests
externalReference: null
details: []
'500':
description: We had a problem with our server. Try again later.
content:
application/json:
x-logErrorCode: 500
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: internal_error
message: An Internal Error occurred
externalReference: null
details: []
'/sites/{site_id}/robots_txt':
get:
x-fern-sdk-group-name:
- sites
- robots-txt
x-fern-sdk-method-name: get
security:
- OAuth2:
- 'site_config:read'
operationId: get-robots-txt
summary: Get robots.txt
description: |
Retrieve the robots.txt configuration for various user agents.
This endpoint requires an Enterprise workspace.
Required scope: `site_config: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
description: The robots.txt file for a given site
properties:
rules:
type: array
description: List of rules for user agents.
items:
type: object
properties:
userAgent:
type: string
description: The user agent the rules apply to.
example: googlebot
allows:
type: array
description: List of paths allowed for this user agent.
items:
type: string
description: Allowed path for the user agent.
example: /public
disallows:
type: array
description: List of paths disallowed for this user agent.
items:
type: string
description: Disallowed path for the user agent.
example: /checkout
required:
- userAgent
sitemap:
type: string
description: URL to the sitemap.
example: 'https://heartofgold.ship/sitemap.xml'
example:
rules:
- userAgent: googlebot
allows: []
disallows:
- /vogon-poetry
- /total-perspective-vortex
sitemap: 'https://heartofgold.ship/sitemap.xml'
'400':
description: Request body was incorrectly formatted.
x-logErrorCode: 400
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: bad_request
message: 'Bad Request: Request is malformed'
externalReference: null
details: []
'401':
description: Provided access token is invalid or does not have access to requested resource
x-logErrorCode: 401
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
'404':
description: Requested resource not found
x-logErrorCode: 404
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: resource_not_found
message: 'Requested resource not found: The site cannot be found'
externalReference: null
details: []
'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.
x-logErrorCode: 429
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
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: too_many_requests
message: Too many requests
externalReference: null
details: []
'500':
description: We had a problem with our server. Try again later.
content:
application/json:
x-logErrorCode: 500
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: internal_error
message: An Internal Error occurred
externalReference: null
details: []
put:
x-fern-sdk-group-name:
- sites
- robots-txt
x-fern-sdk-method-name: put
security:
- OAuth2:
- 'site_config:write'
operationId: replace-robots-txt
summary: Replace robots.txt
description: |
Replace the `robots.txt` configuration for various user agents.
This endpoint requires an Enterprise workspace.
Required scope | `site_config: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
description: The robots.txt file for a given site
properties:
rules:
type: array
description: List of rules for user agents.
items:
type: object
properties:
userAgent:
type: string
description: The user agent the rules apply to.
example: googlebot
allows:
type: array
description: List of paths allowed for this user agent.
items:
type: string
description: Allowed path for the user agent.
example: /public
disallows:
type: array
description: List of paths disallowed for this user agent.
items:
type: string
description: Disallowed path for the user agent.
example: /checkout
required:
- userAgent
sitemap:
type: string
description: URL to the sitemap.
example: 'https://heartofgold.ship/sitemap.xml'
example:
rules:
- userAgent: googlebot
allows: []
disallows:
- /vogon-poetry
- /total-perspective-vortex
sitemap: 'https://heartofgold.ship/sitemap.xml'
responses:
'200':
description: Request was successful
content:
application/json:
schema:
type: object
description: The robots.txt file for a given site
properties:
rules:
type: array
description: List of rules for user agents.
items:
type: object
properties:
userAgent:
type: string
description: The user agent the rules apply to.
example: googlebot
allows:
type: array
description: List of paths allowed for this user agent.
items:
type: string
description: Allowed path for the user agent.
example: /public
disallows:
type: array
description: List of paths disallowed for this user agent.
items:
type: string
description: Disallowed path for the user agent.
example: /checkout
required:
- userAgent
sitemap:
type: string
description: URL to the sitemap.
example: 'https://heartofgold.ship/sitemap.xml'
example:
rules:
- userAgent: googlebot
allows: []
disallows:
- /vogon-poetry
- /total-perspective-vortex
sitemap: 'https://heartofgold.ship/sitemap.xml'
'400':
description: Request body was incorrectly formatted.
x-logErrorCode: 400
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: bad_request
message: 'Bad Request: Request is malformed'
externalReference: null
details: []
'401':
description: Provided access token is invalid or does not have access to requested resource
x-logErrorCode: 401
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
'404':
description: Requested resource not found
x-logErrorCode: 404
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: resource_not_found
message: 'Requested resource not found: The site cannot be found'
externalReference: null
details: []
'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.
x-logErrorCode: 429
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
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: too_many_requests
message: Too many requests
externalReference: null
details: []
'500':
description: We had a problem with our server. Try again later.
content:
application/json:
x-logErrorCode: 500
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: internal_error
message: An Internal Error occurred
externalReference: null
details: []
patch:
x-fern-sdk-group-name:
- sites
- robots-txt
x-fern-sdk-method-name: patch
security:
- OAuth2:
- 'site_config:write'
operationId: update-robots-txt
summary: Update robots.txt
description: |
Update the `robots.txt` configuration for various user agents.
This endpoint requires an Enterprise workspace.
Required scope | `site_config: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
description: The robots.txt file for a given site
properties:
rules:
type: array
description: List of rules for user agents.
items:
type: object
properties:
userAgent:
type: string
description: The user agent the rules apply to.
example: googlebot
allows:
type: array
description: List of paths allowed for this user agent.
items:
type: string
description: Allowed path for the user agent.
example: /public
disallows:
type: array
description: List of paths disallowed for this user agent.
items:
type: string
description: Disallowed path for the user agent.
example: /checkout
required:
- userAgent
sitemap:
type: string
description: URL to the sitemap.
example: 'https://heartofgold.ship/sitemap.xml'
example:
rules:
- userAgent: googlebot
allows: []
disallows:
- /vogon-poetry
- /total-perspective-vortex
sitemap: 'https://heartofgold.ship/sitemap.xml'
responses:
'200':
description: Request was successful
content:
application/json:
schema:
type: object
description: The robots.txt file for a given site
properties:
rules:
type: array
description: List of rules for user agents.
items:
type: object
properties:
userAgent:
type: string
description: The user agent the rules apply to.
example: googlebot
allows:
type: array
description: List of paths allowed for this user agent.
items:
type: string
description: Allowed path for the user agent.
example: /public
disallows:
type: array
description: List of paths disallowed for this user agent.
items:
type: string
description: Disallowed path for the user agent.
example: /checkout
required:
- userAgent
sitemap:
type: string
description: URL to the sitemap.
example: 'https://heartofgold.ship/sitemap.xml'
example:
rules:
- userAgent: googlebot
allows: []
disallows:
- /vogon-poetry
- /total-perspective-vortex
sitemap: 'https://heartofgold.ship/sitemap.xml'
'400':
description: Request body was incorrectly formatted.
x-logErrorCode: 400
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: bad_request
message: 'Bad Request: Request is malformed'
externalReference: null
details: []
'401':
description: Provided access token is invalid or does not have access to requested resource
x-logErrorCode: 401
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
'404':
description: Requested resource not found
x-logErrorCode: 404
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: resource_not_found
message: 'Requested resource not found: The site cannot be found'
externalReference: null
details: []
'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.
x-logErrorCode: 429
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
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: too_many_requests
message: Too many requests
externalReference: null
details: []
'500':
description: We had a problem with our server. Try again later.
content:
application/json:
x-logErrorCode: 500
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: internal_error
message: An Internal Error occurred
externalReference: null
details: []
delete:
x-fern-sdk-group-name:
- sites
- robots-txt
x-fern-sdk-method-name: delete
security:
- OAuth2:
- 'site_config:write'
operationId: delete-robots-txt
summary: Delete robots.txt
description: |
Remove specific rules for a user-agent in your `robots.txt` file. To delete all rules for a user-agent, provide an empty rule set. This will remove the user-agent's entry entirely, leaving it subject to your site's default crawling behavior.
**Note:** Deleting a user-agent with no rules will make the user-agent's access unrestricted unless other directives apply.
This endpoint requires an Enterprise workspace.
Required scope: `site_config: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
description: The robots.txt file for a given site
properties:
rules:
type: array
description: List of rules for user agents.
items:
type: object
properties:
userAgent:
type: string
description: The user agent the rules apply to.
example: googlebot
allows:
type: array
description: List of paths allowed for this user agent.
items:
type: string
description: Allowed path for the user agent.
example: /public
disallows:
type: array
description: List of paths disallowed for this user agent.
items:
type: string
description: Disallowed path for the user agent.
example: /checkout
required:
- userAgent
sitemap:
type: string
description: URL to the sitemap.
example: 'https://heartofgold.ship/sitemap.xml'
example:
rules:
- userAgent: googlebot
allows: []
disallows:
- /vogon-poetry
- /total-perspective-vortex
sitemap: 'https://heartofgold.ship/sitemap.xml'
example:
rules:
- userAgent: '*'
allows: []
disallows:
- /bubbles
responses:
'200':
description: Request was successful
content:
application/json:
schema:
type: object
description: The robots.txt file for a given site
properties:
rules:
type: array
description: List of rules for user agents.
items:
type: object
properties:
userAgent:
type: string
description: The user agent the rules apply to.
example: googlebot
allows:
type: array
description: List of paths allowed for this user agent.
items:
type: string
description: Allowed path for the user agent.
example: /public
disallows:
type: array
description: List of paths disallowed for this user agent.
items:
type: string
description: Disallowed path for the user agent.
example: /checkout
required:
- userAgent
sitemap:
type: string
description: URL to the sitemap.
example: 'https://heartofgold.ship/sitemap.xml'
example:
rules:
- userAgent: googlebot
allows: []
disallows:
- /vogon-poetry
- /total-perspective-vortex
sitemap: 'https://heartofgold.ship/sitemap.xml'
'400':
description: Request body was incorrectly formatted.
x-logErrorCode: 400
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: bad_request
message: 'Bad Request: Request is malformed'
externalReference: null
details: []
'401':
description: Provided access token is invalid or does not have access to requested resource
x-logErrorCode: 401
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
'404':
description: Requested resource not found
x-logErrorCode: 404
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: resource_not_found
message: 'Requested resource not found: The site cannot be found'
externalReference: null
details: []
'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.
x-logErrorCode: 429
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
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: too_many_requests
message: Too many requests
externalReference: null
details: []
'500':
description: We had a problem with our server. Try again later.
content:
application/json:
x-logErrorCode: 500
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: internal_error
message: An Internal Error occurred
externalReference: null
details: []
'/sites/{site_id}/well_known':
put:
x-fern-sdk-group-name:
- sites
- well-known
x-fern-sdk-method-name: put
security:
- OAuth2:
- 'site_config:write'
operationId: set-well-known
summary: Set a well-known file
description: |
Upload a supported well-known file to a site.
The current restrictions on well-known files are as follows:
- Each file must be smaller than 100kb
- Less than 30 total files
- Have one of the following file extensions (or no extension): `.txt`, `.json`, `.noext`
`.noext` is a special file extension that removes other extensions. For example, `apple-app-site-association.noext.txt` will be uploaded as `apple-app-site-association`. Use this extension for tools that have trouble uploading extensionless files.
This endpoint requires an Enterprise workspace.
Required scope: `site_config:write`
tags:
- Sites
- Site Administration
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:
- fileName
- fileData
properties:
fileName:
type: string
description: The name of the file
examples:
example1:
summary: Apple App Site Association
value: apple-app-site-association.txt
example2:
summary: Apple Developer Merchant ID Domain Association
value: apple-developer-merchantid-domain-association.txt
fileData:
type: string
description: The contents of the file
examples:
example1:
summary: Apple App Site Association File Example
value: |
{
"applinks": {
"apps": [],
"details": [
{
"appID": "ABCDE12345.com.example.app",
"paths": [ "/*", "/some/path/*" ]
}
]
}
}
example2:
summary: Apple Developer Merchant ID Domain Association File Example
value: |
{
"merchantId": "merchant.com.example",
"merchantName": "Example Inc.",
"domainAssociation": "web"
}
contentType:
type: string
default: application/json
description: The content type of the file. Defaults to application/json
enum:
- application/json
- text/plain
example: application/json
examples:
appleAppSiteAssociation:
summary: Apple App Site Association
value:
fileName: apple-app-site-association.txt
fileData: |
{
"applinks": {
"apps": [],
"details": [
{
"appID": "ABCDE12345.com.example.app",
"paths": [ "/*", "/some/path/*" ]
}
]
}
}
contentType: application/json
appleDeveloperMerchantIdDomainAssociation:
summary: Apple Developer Merchant ID Domain Association
value:
fileName: apple-developer-merchantid-domain-association.txt
fileData: |
{
"merchantId": "merchant.com.example",
"merchantName": "Example Inc.",
"domainAssociation": "web"
}
contentType: text/plain
responses:
'201':
description: File uploaded successfully
'400':
description: Request body was incorrectly formatted.
x-logErrorCode: 400
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: bad_request
message: 'Bad Request: Request is malformed'
externalReference: null
details: []
'401':
description: Provided access token is invalid or does not have access to requested resource
x-logErrorCode: 401
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
'404':
description: Requested resource not found
x-logErrorCode: 404
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: resource_not_found
message: 'Requested resource not found: The site cannot be found'
externalReference: null
details: []
'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.
x-logErrorCode: 429
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
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: too_many_requests
message: Too many requests
externalReference: null
details: []
'500':
description: We had a problem with our server. Try again later.
content:
application/json:
x-logErrorCode: 500
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: internal_error
message: An Internal Error occurred
externalReference: null
details: []
delete:
x-fern-sdk-group-name:
- sites
- well-known
x-fern-sdk-method-name: delete
security:
- OAuth2:
- 'site_config:write'
operationId: delete-well-known
summary: Delete a well-known file
description: |
Delete existing well-known files from a site.
This endpoint requires an Enterprise workspace.
Required scope: `site_config:write`
tags:
- Sites
- Site Administration
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:
fileNames:
type: array
description: A list of file names to delete
items:
type: string
example:
- apple-app-site-association
responses:
'204':
description: File deleted successfully
'400':
description: Request body was incorrectly formatted.
x-logErrorCode: 400
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: bad_request
message: 'Bad Request: Request is malformed'
externalReference: null
details: []
'401':
description: Provided access token is invalid or does not have access to requested resource
x-logErrorCode: 401
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
'404':
description: Requested resource not found
x-logErrorCode: 404
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: resource_not_found
message: 'Requested resource not found: The site cannot be found'
externalReference: null
details: []
'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.
x-logErrorCode: 429
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
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: too_many_requests
message: Too many requests
externalReference: null
details: []
'500':
description: We had a problem with our server. Try again later.
content:
application/json:
x-logErrorCode: 500
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: internal_error
message: An Internal Error occurred
externalReference: null
details: []
'/sites/{site_id}/integrations/google_tags':
get:
x-fern-sdk-group-name:
- sites
- google-tag
x-fern-sdk-method-name: list
security:
- OAuth2:
- 'sites:read'
operationId: list-google-tags
summary: List Google Tags
description: |
List all Google Tag IDs configured for a site, sorted by order.
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
description: A list of Google Tags configured for a site.
required:
- googleTagIds
properties:
googleTagIds:
type: array
description: 'List of Google Tags configured for a site, sorted by order.'
items:
type: object
description: A Google Tag associated with a site.
required:
- tagId
- displayName
properties:
order:
type: integer
description: Display order of the tag. Optional on input; always present on output. Auto-assigned for new tags and renormalized after deletion.
example: 1
displayName:
type: string
description: A human-readable label for the tag.
example: Main Analytics Tag
tagId:
type: string
description: 'The Google Tag ID. Accepts G-, GT-, AW-, and DC- prefixes. Rejects UA- prefixes.'
pattern: '^(?![Uu][Aa]-)[a-zA-Z]{1,3}-[a-zA-Z0-9]{3,}$'
example: G-XXXXXXXXXX
examples:
GoogleTagIds:
value:
googleTagIds:
- order: 0
displayName: Main Analytics Tag
tagId: G-1234567890
'400':
description: Request body was incorrectly formatted.
x-logErrorCode: 400
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: bad_request
message: 'Bad Request: Request is malformed'
externalReference: null
details: []
'401':
description: Provided access token is invalid or does not have access to requested resource
x-logErrorCode: 401
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
'404':
description: Requested resource not found
x-logErrorCode: 404
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: resource_not_found
message: 'Requested resource not found: The site cannot be found'
externalReference: null
details: []
'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.
x-logErrorCode: 429
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
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: too_many_requests
message: Too many requests
externalReference: null
details: []
'500':
description: We had a problem with our server. Try again later.
content:
application/json:
x-logErrorCode: 500
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: internal_error
message: An Internal Error occurred
externalReference: null
details: []
patch:
x-fern-sdk-group-name:
- sites
- google-tag
x-fern-sdk-method-name: upsert
security:
- OAuth2:
- 'sites:write'
operationId: upsert-google-tags
summary: Update Google Tag
description: |
Add or update Google Tag IDs for a site. Existing tags not referenced in the request are preserved. A site may have a maximum of 25 tags total.
`order` is optional on input — it is auto-assigned for new tags and returned on all tags in the response.
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:
required: true
content:
application/json:
schema:
type: object
description: A list of Google Tags configured for a site.
required:
- googleTagIds
properties:
googleTagIds:
type: array
description: 'List of Google Tags configured for a site, sorted by order.'
items:
type: object
description: A Google Tag associated with a site.
required:
- tagId
- displayName
properties:
order:
type: integer
description: Display order of the tag. Optional on input; always present on output. Auto-assigned for new tags and renormalized after deletion.
example: 1
displayName:
type: string
description: A human-readable label for the tag.
example: Main Analytics Tag
tagId:
type: string
description: 'The Google Tag ID. Accepts G-, GT-, AW-, and DC- prefixes. Rejects UA- prefixes.'
pattern: '^(?![Uu][Aa]-)[a-zA-Z]{1,3}-[a-zA-Z0-9]{3,}$'
example: G-XXXXXXXXXX
examples:
GoogleTagIds:
value:
googleTagIds:
- order: 0
displayName: Main Analytics Tag
tagId: G-1234567890
responses:
'200':
description: Request was successful
content:
application/json:
schema:
type: object
description: A list of Google Tags configured for a site.
required:
- googleTagIds
properties:
googleTagIds:
type: array
description: 'List of Google Tags configured for a site, sorted by order.'
items:
type: object
description: A Google Tag associated with a site.
required:
- tagId
- displayName
properties:
order:
type: integer
description: Display order of the tag. Optional on input; always present on output. Auto-assigned for new tags and renormalized after deletion.
example: 1
displayName:
type: string
description: A human-readable label for the tag.
example: Main Analytics Tag
tagId:
type: string
description: 'The Google Tag ID. Accepts G-, GT-, AW-, and DC- prefixes. Rejects UA- prefixes.'
pattern: '^(?![Uu][Aa]-)[a-zA-Z]{1,3}-[a-zA-Z0-9]{3,}$'
example: G-XXXXXXXXXX
examples:
GoogleTagIds:
value:
googleTagIds:
- order: 0
displayName: Main Analytics Tag
tagId: G-1234567890
'400':
description: Request body was incorrectly formatted.
x-logErrorCode: 400
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: bad_request
message: 'Bad Request: Request is malformed'
externalReference: null
details: []
'401':
description: Provided access token is invalid or does not have access to requested resource
x-logErrorCode: 401
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
'404':
description: Requested resource not found
x-logErrorCode: 404
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: resource_not_found
message: 'Requested resource not found: The site cannot be found'
externalReference: null
details: []
'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.
x-logErrorCode: 429
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
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: too_many_requests
message: Too many requests
externalReference: null
details: []
'500':
description: We had a problem with our server. Try again later.
content:
application/json:
x-logErrorCode: 500
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: internal_error
message: An Internal Error occurred
externalReference: null
details: []
delete:
x-fern-sdk-group-name:
- sites
- google-tag
x-fern-sdk-method-name: deleteAll
security:
- OAuth2:
- 'sites:write'
operationId: delete-google-tags
summary: Delete Google Tags
description: |
Delete all Google Tag IDs from a site.
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.
x-logErrorCode: 400
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: bad_request
message: 'Bad Request: Request is malformed'
externalReference: null
details: []
'401':
description: Provided access token is invalid or does not have access to requested resource
x-logErrorCode: 401
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
'404':
description: Requested resource not found
x-logErrorCode: 404
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: resource_not_found
message: 'Requested resource not found: The site cannot be found'
externalReference: null
details: []
'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.
x-logErrorCode: 429
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
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: too_many_requests
message: Too many requests
externalReference: null
details: []
'500':
description: We had a problem with our server. Try again later.
content:
application/json:
x-logErrorCode: 500
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: internal_error
message: An Internal Error occurred
externalReference: null
details: []
'/sites/{site_id}/integrations/google_tags/{tag_id}':
delete:
x-fern-sdk-group-name:
- sites
- google-tag
x-fern-sdk-method-name: delete
security:
- OAuth2:
- 'sites:write'
operationId: delete-google-tag
summary: Delete Google Tag
description: |
Delete a single Google Tag ID from a site. The `order` values of the remaining tags are renormalized after deletion.
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
- name: tag_id
in: path
description: The Google Tag ID (e.g. G-XXXXXXXXXX)
example: G-XXXXXXXXXX
required: true
schema:
type: string
default: null
responses:
'200':
description: Request was successful
content:
application/json:
schema:
type: object
description: A list of Google Tags configured for a site.
required:
- googleTagIds
properties:
googleTagIds:
type: array
description: 'List of Google Tags configured for a site, sorted by order.'
items:
type: object
description: A Google Tag associated with a site.
required:
- tagId
- displayName
properties:
order:
type: integer
description: Display order of the tag. Optional on input; always present on output. Auto-assigned for new tags and renormalized after deletion.
example: 1
displayName:
type: string
description: A human-readable label for the tag.
example: Main Analytics Tag
tagId:
type: string
description: 'The Google Tag ID. Accepts G-, GT-, AW-, and DC- prefixes. Rejects UA- prefixes.'
pattern: '^(?![Uu][Aa]-)[a-zA-Z]{1,3}-[a-zA-Z0-9]{3,}$'
example: G-XXXXXXXXXX
examples:
GoogleTagIds:
value:
googleTagIds:
- order: 0
displayName: Main Analytics Tag
tagId: G-1234567890
'400':
description: Request body was incorrectly formatted.
x-logErrorCode: 400
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: bad_request
message: 'Bad Request: Request is malformed'
externalReference: null
details: []
'401':
description: Provided access token is invalid or does not have access to requested resource
x-logErrorCode: 401
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
'404':
description: Requested resource not found
x-logErrorCode: 404
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: resource_not_found
message: 'Requested resource not found: The site cannot be found'
externalReference: null
details: []
'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.
x-logErrorCode: 429
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
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: too_many_requests
message: Too many requests
externalReference: null
details: []
'500':
description: We had a problem with our server. Try again later.
content:
application/json:
x-logErrorCode: 500
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: internal_error
message: An Internal Error occurred
externalReference: null
details: []
'/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.
This endpoint requires an Enterprise workspace.
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: integer
- 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: integer
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
enum:
- styles_modified
- site_published
- ix2_modified_on_page
- page_dom_modified
- cms_item
- backup_created
- page_custom_code_modified
- symbols_modified
- variable_modified
- variables_modified
- cms_collection
- page_settings_modified
- page_settings_custom_code_modified
- ix2_modified_on_component
- ix2_modified_on_class
- site_custom_code_modified
- page_duplicated
- secondary_locale_page_content_modified
- page_renamed
- page_created
- page_deleted
- site_unpublished
- backup_restored
- locale_added
- branch_created
- locale_display_name_updated
- locale_subdirectory_updated
- branch_merged
- locale_tag_updated
- branch_deleted
- locale_enabled
- locale_removed
- locale_disabled
- library_shared
- library_unshared
- library_installed
- library_uninstalled
- library_update_shared
- library_update_accepted
- branch_review_created
- branch_review_approved
- branch_review_canceled
resourceOperation:
type: string
enum:
- CREATED
- MODIFIED
- PUBLISHED
- UNPUBLISHED
- DELETED
- GROUP_REORDERED
- GROUP_CREATED
- GROUP_DELETED
- REORDERED
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
source:
type: string
nullable: true
enum:
- WEBFLOW_AI
- WEBFLOW_MCP
- DESIGNER
- SYSTEM
description: 'The system that originated the event. `WEBFLOW_AI` for Webflow AI features, `WEBFLOW_MCP` for an external MCP server or Bridge App, `DESIGNER` for human writes from the Designer, and `SYSTEM` for automated Webflow processes such as backups or migrations. `null` for legacy events recorded before attribution was available.'
actorType:
type: string
nullable: true
enum:
- user
- agent
- workflow
- rule
description: 'The type of actor responsible for the event. `user` for a human who directly triggered or accepted the action, `agent` for a fully autonomous AI agent, `workflow` for a user-created workflow that ran autonomously, and `rule` for an autonomous rule that fired on a trigger. `null` for legacy events.'
actorId:
type: string
nullable: true
description: Unique identifier of the actor that originated the event. `null` when not available.
actorName:
type: string
nullable: true
description: Display name of the actor that originated the event. `null` when not available.
pagination:
description: Pagination object
type: object
required:
- limit
- offset
- total
properties:
limit:
type: integer
description: The limit used for pagination
example: 100
readOnly: true
offset:
type: integer
description: The offset used for pagination
example: 0
readOnly: true
total:
type: integer
description: The total number of records
example: 100
readOnly: true
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
source: DESIGNER
actorType: user
actorId: null
actorName: null
- id: 6a2b59c5e2f5e75d3b7e6588
createdOn: '2026-06-12T00:58:45.429Z'
lastUpdated: '2026-06-12T00:58:56.186Z'
event: page_dom_modified
user:
id: 6509cd56e90eec668b009712
displayName: John Doe
resourceOperation: MODIFIED
resourceId: null
resourceName: Home
newValue: null
previousValue: null
payload:
branchId: null
branchName: null
pageTitle: Home
pageId: 6785866e9dc60263a82cd380
count: 2
source: WEBFLOW_AI
actorType: user
actorId: null
actorName: null
pagination:
total: 2
offset: 0
limit: 25
'403':
description: Forbidden request
content:
application/json:
schema:
oneOf:
- description: 'Provided access token is valid, but is missing the required scopes.'
x-logErrorCode: 403
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: missing_scopes
message: 'OAuthForbidden: You are missing the following scopes - components:write'
externalReference: null
details: []
- description: Error response for non-enterprise plan sites.
x-logErrorCode: 403
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: not_enterprise_plan_site
message: This site is not associated with an Enterprise plan
externalReference: null
details: []
'404':
description: Requested resource not found
x-logErrorCode: 404
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: resource_not_found
message: 'Requested resource not found: The site cannot be found'
externalReference: null
details: []
'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.
x-logErrorCode: 429
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
content:
application/json:
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: too_many_requests
message: Too many requests
externalReference: null
details: []
'500':
description: We had a problem with our server. Try again later.
content:
application/json:
x-logErrorCode: 500
schema:
type: object
example:
code: not_authorized
message: Request not authorized
externalReference: null
details: []
properties:
code:
type: string
description: Error code
example: not_authorized
enum:
- analyze_filter_conflict
- analyze_input_validation
- analyze_unsupported_filter
- bad_request
- before_historical_floor
- collection_not_found
- conflict
- duplicate_collection
- duplicate_user_email
- ecommerce_not_enabled
- forbidden
- forms_require_republish
- incompatible_webhook_filter
- internal_error
- invalid_auth_version
- invalid_credentials
- invalid_domain
- invalid_time_range
- invalid_user_email
- item_not_found
- missing_scopes
- no_domains
- not_authorized
- not_enterprise_plan_site
- not_enterprise_plan_workspace
- order_not_found
- resource_not_found
- service_unavailable
- time_range_too_wide
- too_many_requests
- unsupported_version
- unsupported_webhook_trigger_type
- user_limit_reached
- user_not_found
- users_not_enabled
- validation_error
message:
type: string
description: Error message
example: Request not authorized
externalReference:
type: string
description: Link to more information
example: ''
details:
type: array
description: Array of errors
items:
- type: string
example: Invalid email address
description: Error message
- type: object
example:
field: email
message: Invalid email address
description: Error message
example: []
example:
code: internal_error
message: An Internal Error occurred
externalReference: null
details: []
'/sites/{site_id}/analyze/reports/traffic':
get:
x-fern-sdk-group-name:
- analyze
- reports
x-fern-sdk-method-name: traffic
security:
- OAuth2:
- 'sites:read'
operationId: get-analyze-traffic-report
summary: Get Traffic Report
description: |
Returns a daily time series of a single metric — sessions, users, or pageviews — over a time window.
Filter the report with top-level query parameters (`country`, `deviceType`, `pagePath`, etc.) or via the `filter` parameter for multi-value and negation matching.
This endpoint requires a workspace with the Analyze add-on.
Each access token can have one Analyze request in flight at a time, across all Analyze endpoints. Additional concurrent requests return `429 Too Many Requests`; wait for your in-flight request to finish, or for the `Retry-After` interval, then retry.
Required scope | `sites:read`
tags:
- Analyze
- Sites
parameters:
- name: site_id
in: path
description: Unique identifier for a Site
example: 580e63e98c9a982ac9b8b741
required: true
schema:
type: string
format: objectid
default: null
- name: startTime
in: query
required: true
description: 'Inclusive start of the reporting window. Must be a UTC timestamp in ISO 8601 / RFC 3339 format ending in `Z` (for example, `2026-04-01T00:00:00Z`); numeric offsets such as `-04:00` or `+00:00` are not accepted. Must be on or after `2025-04-09T00:00:00Z`.'
schema:
type: string
format: date-time
example: '2026-04-01T00:00:00Z'
- name: endTime
in: query
required: true
description: 'Exclusive end of the reporting window. Must be a UTC timestamp in ISO 8601 / RFC 3339 format ending in `Z` (for example, `2026-04-08T00:00:00Z`); numeric offsets such as `-04:00` or `+00:00` are not accepted. Must be greater than `startTime` and within 100 days of it.'
schema:
type: string
format: date-time
example: '2026-04-08T00:00:00Z'
- name: metricScope
in: query
required: true
description: The unit each `count` data point is measured in.
schema:
type: string
description: |
The unit each `count` data point is measured in.
- `session`: number of sessions.
- `user`: number of unique users.
- `pageview`: number of pageviews.
enum:
- session
- user
- pageview
example: session
example: session
- name: bucketTimeZone
in: query
required: true
description: IANA time zone used to align daily bucket boundaries.
schema:
type: string
description: |
Valid IANA time zone used to align time bucket boundaries. Use canonical names such as `UTC` or `America/New_York`. Bucket timestamps are returned as UTC instants for local bucket starts in this time zone; for example, `America/New_York` local midnight on April 1, 2026 is returned as `2026-04-01T04:00:00.000Z`.
example: America/New_York
example: UTC
- name: deviceType
in: query
required: false
description: Restrict the report to a single device type.
schema:
type: string
enum:
- desktop
- mobile
- tablet
example: desktop
- name: country
in: query
required: false
description: 'Restrict the report to a single country. ISO 3166-1 alpha-2 (two letters, normalized to uppercase).'
schema:
type: string
minLength: 2
maxLength: 2
example: US
- name: pagePath
in: query
required: false
description: Restrict the report to a single page path.
schema:
type: string
example: /towels
- name: trafficSource
in: query
required: false
description: 'Restrict the report to a single traffic source code (for example, `SO` for Organic Search).'
schema:
type: string
example: SO
- name: referrer
in: query
required: false
description: Restrict the report to a single referrer domain.
schema:
type: string
example: google.com
- name: browser
in: query
required: false
description: Restrict the report to a single browser.
schema:
type: string
example: Chrome
- name: utmCampaign
in: query
required: false
description: Restrict the report to a single `utm_campaign` value.
schema:
type: string
example: dont-panic-2026
- name: utmMedium
in: query
required: false
description: Restrict the report to a single `utm_medium` value.
schema:
type: string
example: email
- name: utmSource
in: query
required: false
description: Restrict the report to a single `utm_source` value.
schema:
type: string
example: hitchhikers-guide
- name: filter
in: query
required: false
style: deepObject
explode: true
description: |
Filter the report by dimension. Use bracket notation. Scalars take a single value (`filter[country][eq]=US`, `filter[country][ne]=US`). Arrays use indexed brackets (`filter[country][in][0]=US&filter[country][in][1]=CA`, `filter[country][nin][0]=US&filter[country][nin][1]=CA`).
Each dimension entry takes at least one of `eq`, `in`, `ne`, or `nin`. Filter a given dimension in one place — either a top-level query parameter or a `filter` entry. See the `TrafficFilter` schema for the full list of supported dimensions.
schema:
type: object
description: |
Filter the traffic report by dimension. Each property is an optional set of `AnalyzeFilterOperators` (`eq`, `in`, `ne`, `nin`) applied to the named dimension. Filter a given dimension in one place — either inside `filter` or as a top-level query parameter.
additionalProperties: false
properties:
audienceIds:
type: object
description: 'Operators for filtering a single dimension. Specify at least one of `eq`, `in`, `ne`, or `nin`.'
minProperties: 1
additionalProperties: false
properties:
eq:
type: string
description: Match values exactly equal to the provided value.
example: US
in:
type: array
minItems: 1
description: 'Match values in the provided list. Use indexed bracket notation — `filter[][in][0]=value1&filter[][in][1]=value2`. Comma-separated values (for example, `filter[][in]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
ne:
type: string
description: Exclude values exactly equal to the provided value.
example: US
nin:
type: array
minItems: 1
description: 'Exclude values in the provided list. Use indexed bracket notation — `filter[][nin][0]=value1&filter[][nin][1]=value2`. Comma-separated values (for example, `filter[][nin]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
browser:
type: object
description: 'Operators for filtering a single dimension. Specify at least one of `eq`, `in`, `ne`, or `nin`.'
minProperties: 1
additionalProperties: false
properties:
eq:
type: string
description: Match values exactly equal to the provided value.
example: US
in:
type: array
minItems: 1
description: 'Match values in the provided list. Use indexed bracket notation — `filter[][in][0]=value1&filter[][in][1]=value2`. Comma-separated values (for example, `filter[][in]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
ne:
type: string
description: Exclude values exactly equal to the provided value.
example: US
nin:
type: array
minItems: 1
description: 'Exclude values in the provided list. Use indexed bracket notation — `filter[][nin][0]=value1&filter[][nin][1]=value2`. Comma-separated values (for example, `filter[][nin]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
collectionId:
type: object
description: 'Operators for filtering a single dimension. Specify at least one of `eq`, `in`, `ne`, or `nin`.'
minProperties: 1
additionalProperties: false
properties:
eq:
type: string
description: Match values exactly equal to the provided value.
example: US
in:
type: array
minItems: 1
description: 'Match values in the provided list. Use indexed bracket notation — `filter[][in][0]=value1&filter[][in][1]=value2`. Comma-separated values (for example, `filter[][in]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
ne:
type: string
description: Exclude values exactly equal to the provided value.
example: US
nin:
type: array
minItems: 1
description: 'Exclude values in the provided list. Use indexed bracket notation — `filter[][nin][0]=value1&filter[][nin][1]=value2`. Comma-separated values (for example, `filter[][nin]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
country:
type: object
description: 'Operators for filtering a single dimension. Specify at least one of `eq`, `in`, `ne`, or `nin`.'
minProperties: 1
additionalProperties: false
properties:
eq:
type: string
description: Match values exactly equal to the provided value.
example: US
in:
type: array
minItems: 1
description: 'Match values in the provided list. Use indexed bracket notation — `filter[][in][0]=value1&filter[][in][1]=value2`. Comma-separated values (for example, `filter[][in]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
ne:
type: string
description: Exclude values exactly equal to the provided value.
example: US
nin:
type: array
minItems: 1
description: 'Exclude values in the provided list. Use indexed bracket notation — `filter[][nin][0]=value1&filter[][nin][1]=value2`. Comma-separated values (for example, `filter[][nin]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
dayOfWeek:
type: object
description: 'Operators for filtering a single dimension. Specify at least one of `eq`, `in`, `ne`, or `nin`.'
minProperties: 1
additionalProperties: false
properties:
eq:
type: string
description: Match values exactly equal to the provided value.
example: US
in:
type: array
minItems: 1
description: 'Match values in the provided list. Use indexed bracket notation — `filter[][in][0]=value1&filter[][in][1]=value2`. Comma-separated values (for example, `filter[][in]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
ne:
type: string
description: Exclude values exactly equal to the provided value.
example: US
nin:
type: array
minItems: 1
description: 'Exclude values in the provided list. Use indexed bracket notation — `filter[][nin][0]=value1&filter[][nin][1]=value2`. Comma-separated values (for example, `filter[][nin]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
deviceBrand:
type: object
description: 'Operators for filtering a single dimension. Specify at least one of `eq`, `in`, `ne`, or `nin`.'
minProperties: 1
additionalProperties: false
properties:
eq:
type: string
description: Match values exactly equal to the provided value.
example: US
in:
type: array
minItems: 1
description: 'Match values in the provided list. Use indexed bracket notation — `filter[][in][0]=value1&filter[][in][1]=value2`. Comma-separated values (for example, `filter[][in]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
ne:
type: string
description: Exclude values exactly equal to the provided value.
example: US
nin:
type: array
minItems: 1
description: 'Exclude values in the provided list. Use indexed bracket notation — `filter[][nin][0]=value1&filter[][nin][1]=value2`. Comma-separated values (for example, `filter[][nin]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
deviceType:
type: object
description: 'Operators for filtering a single dimension. Specify at least one of `eq`, `in`, `ne`, or `nin`.'
minProperties: 1
additionalProperties: false
properties:
eq:
type: string
description: Match values exactly equal to the provided value.
example: US
in:
type: array
minItems: 1
description: 'Match values in the provided list. Use indexed bracket notation — `filter[][in][0]=value1&filter[][in][1]=value2`. Comma-separated values (for example, `filter[][in]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
ne:
type: string
description: Exclude values exactly equal to the provided value.
example: US
nin:
type: array
minItems: 1
description: 'Exclude values in the provided list. Use indexed bracket notation — `filter[][nin][0]=value1&filter[][nin][1]=value2`. Comma-separated values (for example, `filter[][nin]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
domain:
type: object
description: 'Operators for filtering a single dimension. Specify at least one of `eq`, `in`, `ne`, or `nin`.'
minProperties: 1
additionalProperties: false
properties:
eq:
type: string
description: Match values exactly equal to the provided value.
example: US
in:
type: array
minItems: 1
description: 'Match values in the provided list. Use indexed bracket notation — `filter[][in][0]=value1&filter[][in][1]=value2`. Comma-separated values (for example, `filter[][in]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
ne:
type: string
description: Exclude values exactly equal to the provided value.
example: US
nin:
type: array
minItems: 1
description: 'Exclude values in the provided list. Use indexed bracket notation — `filter[][nin][0]=value1&filter[][nin][1]=value2`. Comma-separated values (for example, `filter[][nin]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
itemSlug:
type: object
description: 'Operators for filtering a single dimension. Specify at least one of `eq`, `in`, `ne`, or `nin`.'
minProperties: 1
additionalProperties: false
properties:
eq:
type: string
description: Match values exactly equal to the provided value.
example: US
in:
type: array
minItems: 1
description: 'Match values in the provided list. Use indexed bracket notation — `filter[][in][0]=value1&filter[][in][1]=value2`. Comma-separated values (for example, `filter[][in]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
ne:
type: string
description: Exclude values exactly equal to the provided value.
example: US
nin:
type: array
minItems: 1
description: 'Exclude values in the provided list. Use indexed bracket notation — `filter[][nin][0]=value1&filter[][nin][1]=value2`. Comma-separated values (for example, `filter[][nin]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
language:
type: object
description: 'Operators for filtering a single dimension. Specify at least one of `eq`, `in`, `ne`, or `nin`.'
minProperties: 1
additionalProperties: false
properties:
eq:
type: string
description: Match values exactly equal to the provided value.
example: US
in:
type: array
minItems: 1
description: 'Match values in the provided list. Use indexed bracket notation — `filter[][in][0]=value1&filter[][in][1]=value2`. Comma-separated values (for example, `filter[][in]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
ne:
type: string
description: Exclude values exactly equal to the provided value.
example: US
nin:
type: array
minItems: 1
description: 'Exclude values in the provided list. Use indexed bracket notation — `filter[][nin][0]=value1&filter[][nin][1]=value2`. Comma-separated values (for example, `filter[][nin]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
locale:
type: object
description: 'Operators for filtering a single dimension. Specify at least one of `eq`, `in`, `ne`, or `nin`.'
minProperties: 1
additionalProperties: false
properties:
eq:
type: string
description: Match values exactly equal to the provided value.
example: US
in:
type: array
minItems: 1
description: 'Match values in the provided list. Use indexed bracket notation — `filter[][in][0]=value1&filter[][in][1]=value2`. Comma-separated values (for example, `filter[][in]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
ne:
type: string
description: Exclude values exactly equal to the provided value.
example: US
nin:
type: array
minItems: 1
description: 'Exclude values in the provided list. Use indexed bracket notation — `filter[][nin][0]=value1&filter[][nin][1]=value2`. Comma-separated values (for example, `filter[][nin]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
nextCollectionId:
type: object
description: 'Operators for filtering a single dimension. Specify at least one of `eq`, `in`, `ne`, or `nin`.'
minProperties: 1
additionalProperties: false
properties:
eq:
type: string
description: Match values exactly equal to the provided value.
example: US
in:
type: array
minItems: 1
description: 'Match values in the provided list. Use indexed bracket notation — `filter[][in][0]=value1&filter[][in][1]=value2`. Comma-separated values (for example, `filter[][in]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
ne:
type: string
description: Exclude values exactly equal to the provided value.
example: US
nin:
type: array
minItems: 1
description: 'Exclude values in the provided list. Use indexed bracket notation — `filter[][nin][0]=value1&filter[][nin][1]=value2`. Comma-separated values (for example, `filter[][nin]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
nextItemSlug:
type: object
description: 'Operators for filtering a single dimension. Specify at least one of `eq`, `in`, `ne`, or `nin`.'
minProperties: 1
additionalProperties: false
properties:
eq:
type: string
description: Match values exactly equal to the provided value.
example: US
in:
type: array
minItems: 1
description: 'Match values in the provided list. Use indexed bracket notation — `filter[][in][0]=value1&filter[][in][1]=value2`. Comma-separated values (for example, `filter[][in]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
ne:
type: string
description: Exclude values exactly equal to the provided value.
example: US
nin:
type: array
minItems: 1
description: 'Exclude values in the provided list. Use indexed bracket notation — `filter[][nin][0]=value1&filter[][nin][1]=value2`. Comma-separated values (for example, `filter[][nin]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
nextPageId:
type: object
description: 'Operators for filtering a single dimension. Specify at least one of `eq`, `in`, `ne`, or `nin`.'
minProperties: 1
additionalProperties: false
properties:
eq:
type: string
description: Match values exactly equal to the provided value.
example: US
in:
type: array
minItems: 1
description: 'Match values in the provided list. Use indexed bracket notation — `filter[][in][0]=value1&filter[][in][1]=value2`. Comma-separated values (for example, `filter[][in]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
ne:
type: string
description: Exclude values exactly equal to the provided value.
example: US
nin:
type: array
minItems: 1
description: 'Exclude values in the provided list. Use indexed bracket notation — `filter[][nin][0]=value1&filter[][nin][1]=value2`. Comma-separated values (for example, `filter[][nin]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
os:
type: object
description: 'Operators for filtering a single dimension. Specify at least one of `eq`, `in`, `ne`, or `nin`.'
minProperties: 1
additionalProperties: false
properties:
eq:
type: string
description: Match values exactly equal to the provided value.
example: US
in:
type: array
minItems: 1
description: 'Match values in the provided list. Use indexed bracket notation — `filter[][in][0]=value1&filter[][in][1]=value2`. Comma-separated values (for example, `filter[][in]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
ne:
type: string
description: Exclude values exactly equal to the provided value.
example: US
nin:
type: array
minItems: 1
description: 'Exclude values in the provided list. Use indexed bracket notation — `filter[][nin][0]=value1&filter[][nin][1]=value2`. Comma-separated values (for example, `filter[][nin]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
pageId:
type: object
description: 'Operators for filtering a single dimension. Specify at least one of `eq`, `in`, `ne`, or `nin`.'
minProperties: 1
additionalProperties: false
properties:
eq:
type: string
description: Match values exactly equal to the provided value.
example: US
in:
type: array
minItems: 1
description: 'Match values in the provided list. Use indexed bracket notation — `filter[][in][0]=value1&filter[][in][1]=value2`. Comma-separated values (for example, `filter[][in]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
ne:
type: string
description: Exclude values exactly equal to the provided value.
example: US
nin:
type: array
minItems: 1
description: 'Exclude values in the provided list. Use indexed bracket notation — `filter[][nin][0]=value1&filter[][nin][1]=value2`. Comma-separated values (for example, `filter[][nin]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
pagePath:
type: object
description: 'Operators for filtering a single dimension. Specify at least one of `eq`, `in`, `ne`, or `nin`.'
minProperties: 1
additionalProperties: false
properties:
eq:
type: string
description: Match values exactly equal to the provided value.
example: US
in:
type: array
minItems: 1
description: 'Match values in the provided list. Use indexed bracket notation — `filter[][in][0]=value1&filter[][in][1]=value2`. Comma-separated values (for example, `filter[][in]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
ne:
type: string
description: Exclude values exactly equal to the provided value.
example: US
nin:
type: array
minItems: 1
description: 'Exclude values in the provided list. Use indexed bracket notation — `filter[][nin][0]=value1&filter[][nin][1]=value2`. Comma-separated values (for example, `filter[][nin]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
previousCollectionId:
type: object
description: 'Operators for filtering a single dimension. Specify at least one of `eq`, `in`, `ne`, or `nin`.'
minProperties: 1
additionalProperties: false
properties:
eq:
type: string
description: Match values exactly equal to the provided value.
example: US
in:
type: array
minItems: 1
description: 'Match values in the provided list. Use indexed bracket notation — `filter[][in][0]=value1&filter[][in][1]=value2`. Comma-separated values (for example, `filter[][in]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
ne:
type: string
description: Exclude values exactly equal to the provided value.
example: US
nin:
type: array
minItems: 1
description: 'Exclude values in the provided list. Use indexed bracket notation — `filter[][nin][0]=value1&filter[][nin][1]=value2`. Comma-separated values (for example, `filter[][nin]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
previousItemSlug:
type: object
description: 'Operators for filtering a single dimension. Specify at least one of `eq`, `in`, `ne`, or `nin`.'
minProperties: 1
additionalProperties: false
properties:
eq:
type: string
description: Match values exactly equal to the provided value.
example: US
in:
type: array
minItems: 1
description: 'Match values in the provided list. Use indexed bracket notation — `filter[][in][0]=value1&filter[][in][1]=value2`. Comma-separated values (for example, `filter[][in]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
ne:
type: string
description: Exclude values exactly equal to the provided value.
example: US
nin:
type: array
minItems: 1
description: 'Exclude values in the provided list. Use indexed bracket notation — `filter[][nin][0]=value1&filter[][nin][1]=value2`. Comma-separated values (for example, `filter[][nin]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
previousPageId:
type: object
description: 'Operators for filtering a single dimension. Specify at least one of `eq`, `in`, `ne`, or `nin`.'
minProperties: 1
additionalProperties: false
properties:
eq:
type: string
description: Match values exactly equal to the provided value.
example: US
in:
type: array
minItems: 1
description: 'Match values in the provided list. Use indexed bracket notation — `filter[][in][0]=value1&filter[][in][1]=value2`. Comma-separated values (for example, `filter[][in]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
ne:
type: string
description: Exclude values exactly equal to the provided value.
example: US
nin:
type: array
minItems: 1
description: 'Exclude values in the provided list. Use indexed bracket notation — `filter[][nin][0]=value1&filter[][nin][1]=value2`. Comma-separated values (for example, `filter[][nin]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
referrer:
type: object
description: 'Operators for filtering a single dimension. Specify at least one of `eq`, `in`, `ne`, or `nin`.'
minProperties: 1
additionalProperties: false
properties:
eq:
type: string
description: Match values exactly equal to the provided value.
example: US
in:
type: array
minItems: 1
description: 'Match values in the provided list. Use indexed bracket notation — `filter[][in][0]=value1&filter[][in][1]=value2`. Comma-separated values (for example, `filter[][in]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
ne:
type: string
description: Exclude values exactly equal to the provided value.
example: US
nin:
type: array
minItems: 1
description: 'Exclude values in the provided list. Use indexed bracket notation — `filter[][nin][0]=value1&filter[][nin][1]=value2`. Comma-separated values (for example, `filter[][nin]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
region:
type: object
description: 'Operators for filtering a single dimension. Specify at least one of `eq`, `in`, `ne`, or `nin`.'
minProperties: 1
additionalProperties: false
properties:
eq:
type: string
description: Match values exactly equal to the provided value.
example: US
in:
type: array
minItems: 1
description: 'Match values in the provided list. Use indexed bracket notation — `filter[][in][0]=value1&filter[][in][1]=value2`. Comma-separated values (for example, `filter[][in]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
ne:
type: string
description: Exclude values exactly equal to the provided value.
example: US
nin:
type: array
minItems: 1
description: 'Exclude values in the provided list. Use indexed bracket notation — `filter[][nin][0]=value1&filter[][nin][1]=value2`. Comma-separated values (for example, `filter[][nin]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
timeOfDay:
type: object
description: 'Operators for filtering a single dimension. Specify at least one of `eq`, `in`, `ne`, or `nin`.'
minProperties: 1
additionalProperties: false
properties:
eq:
type: string
description: Match values exactly equal to the provided value.
example: US
in:
type: array
minItems: 1
description: 'Match values in the provided list. Use indexed bracket notation — `filter[][in][0]=value1&filter[][in][1]=value2`. Comma-separated values (for example, `filter[][in]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
ne:
type: string
description: Exclude values exactly equal to the provided value.
example: US
nin:
type: array
minItems: 1
description: 'Exclude values in the provided list. Use indexed bracket notation — `filter[][nin][0]=value1&filter[][nin][1]=value2`. Comma-separated values (for example, `filter[][nin]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
timezone:
type: object
description: 'Operators for filtering a single dimension. Specify at least one of `eq`, `in`, `ne`, or `nin`.'
minProperties: 1
additionalProperties: false
properties:
eq:
type: string
description: Match values exactly equal to the provided value.
example: US
in:
type: array
minItems: 1
description: 'Match values in the provided list. Use indexed bracket notation — `filter[][in][0]=value1&filter[][in][1]=value2`. Comma-separated values (for example, `filter[][in]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
ne:
type: string
description: Exclude values exactly equal to the provided value.
example: US
nin:
type: array
minItems: 1
description: 'Exclude values in the provided list. Use indexed bracket notation — `filter[][nin][0]=value1&filter[][nin][1]=value2`. Comma-separated values (for example, `filter[][nin]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
trafficSource:
type: object
description: 'Operators for filtering a single dimension. Specify at least one of `eq`, `in`, `ne`, or `nin`.'
minProperties: 1
additionalProperties: false
properties:
eq:
type: string
description: Match values exactly equal to the provided value.
example: US
in:
type: array
minItems: 1
description: 'Match values in the provided list. Use indexed bracket notation — `filter[][in][0]=value1&filter[][in][1]=value2`. Comma-separated values (for example, `filter[][in]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
ne:
type: string
description: Exclude values exactly equal to the provided value.
example: US
nin:
type: array
minItems: 1
description: 'Exclude values in the provided list. Use indexed bracket notation — `filter[][nin][0]=value1&filter[][nin][1]=value2`. Comma-separated values (for example, `filter[][nin]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
utmCampaign:
type: object
description: 'Operators for filtering a single dimension. Specify at least one of `eq`, `in`, `ne`, or `nin`.'
minProperties: 1
additionalProperties: false
properties:
eq:
type: string
description: Match values exactly equal to the provided value.
example: US
in:
type: array
minItems: 1
description: 'Match values in the provided list. Use indexed bracket notation — `filter[][in][0]=value1&filter[][in][1]=value2`. Comma-separated values (for example, `filter[][in]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
ne:
type: string
description: Exclude values exactly equal to the provided value.
example: US
nin:
type: array
minItems: 1
description: 'Exclude values in the provided list. Use indexed bracket notation — `filter[][nin][0]=value1&filter[][nin][1]=value2`. Comma-separated values (for example, `filter[][nin]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
utmContent:
type: object
description: 'Operators for filtering a single dimension. Specify at least one of `eq`, `in`, `ne`, or `nin`.'
minProperties: 1
additionalProperties: false
properties:
eq:
type: string
description: Match values exactly equal to the provided value.
example: US
in:
type: array
minItems: 1
description: 'Match values in the provided list. Use indexed bracket notation — `filter[][in][0]=value1&filter[][in][1]=value2`. Comma-separated values (for example, `filter[][in]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
ne:
type: string
description: Exclude values exactly equal to the provided value.
example: US
nin:
type: array
minItems: 1
description: 'Exclude values in the provided list. Use indexed bracket notation — `filter[][nin][0]=value1&filter[][nin][1]=value2`. Comma-separated values (for example, `filter[][nin]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
utmMedium:
type: object
description: 'Operators for filtering a single dimension. Specify at least one of `eq`, `in`, `ne`, or `nin`.'
minProperties: 1
additionalProperties: false
properties:
eq:
type: string
description: Match values exactly equal to the provided value.
example: US
in:
type: array
minItems: 1
description: 'Match values in the provided list. Use indexed bracket notation — `filter[][in][0]=value1&filter[][in][1]=value2`. Comma-separated values (for example, `filter[][in]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
ne:
type: string
description: Exclude values exactly equal to the provided value.
example: US
nin:
type: array
minItems: 1
description: 'Exclude values in the provided list. Use indexed bracket notation — `filter[][nin][0]=value1&filter[][nin][1]=value2`. Comma-separated values (for example, `filter[][nin]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
utmSource:
type: object
description: 'Operators for filtering a single dimension. Specify at least one of `eq`, `in`, `ne`, or `nin`.'
minProperties: 1
additionalProperties: false
properties:
eq:
type: string
description: Match values exactly equal to the provided value.
example: US
in:
type: array
minItems: 1
description: 'Match values in the provided list. Use indexed bracket notation — `filter[][in][0]=value1&filter[][in][1]=value2`. Comma-separated values (for example, `filter[][in]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
ne:
type: string
description: Exclude values exactly equal to the provided value.
example: US
nin:
type: array
minItems: 1
description: 'Exclude values in the provided list. Use indexed bracket notation — `filter[][nin][0]=value1&filter[][nin][1]=value2`. Comma-separated values (for example, `filter[][nin]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
utmTerm:
type: object
description: 'Operators for filtering a single dimension. Specify at least one of `eq`, `in`, `ne`, or `nin`.'
minProperties: 1
additionalProperties: false
properties:
eq:
type: string
description: Match values exactly equal to the provided value.
example: US
in:
type: array
minItems: 1
description: 'Match values in the provided list. Use indexed bracket notation — `filter[][in][0]=value1&filter[][in][1]=value2`. Comma-separated values (for example, `filter[][in]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
ne:
type: string
description: Exclude values exactly equal to the provided value.
example: US
nin:
type: array
minItems: 1
description: 'Exclude values in the provided list. Use indexed bracket notation — `filter[][nin][0]=value1&filter[][nin][1]=value2`. Comma-separated values (for example, `filter[][nin]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
visitStatus:
type: object
description: 'Operators for filtering a single dimension. Specify at least one of `eq`, `in`, `ne`, or `nin`.'
minProperties: 1
additionalProperties: false
properties:
eq:
type: string
description: Match values exactly equal to the provided value.
example: US
in:
type: array
minItems: 1
description: 'Match values in the provided list. Use indexed bracket notation — `filter[][in][0]=value1&filter[][in][1]=value2`. Comma-separated values (for example, `filter[][in]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
ne:
type: string
description: Exclude values exactly equal to the provided value.
example: US
nin:
type: array
minItems: 1
description: 'Exclude values in the provided list. Use indexed bracket notation — `filter[][nin][0]=value1&filter[][nin][1]=value2`. Comma-separated values (for example, `filter[][nin]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
example:
country:
eq: US
deviceType:
in:
- desktop
- tablet
responses:
'200':
description: Time-series traffic report for the requested window and filters.
content:
application/json:
schema:
type: object
description: Response payload for the traffic report.
required:
- report
- window
- metricScope
- bucketing
- data
properties:
report:
type: string
enum:
- traffic
description: Discriminator identifying the report type.
example: traffic
window:
type: object
description: A reporting time window. `endTime` must be greater than `startTime`.
required:
- startTime
- endTime
properties:
startTime:
type: string
format: date-time
description: 'Inclusive start of the reporting window, in ISO 8601 / RFC 3339 format.'
example: '2026-04-01T00:00:00Z'
endTime:
type: string
format: date-time
description: 'Exclusive end of the reporting window, in ISO 8601 / RFC 3339 format.'
example: '2026-04-08T00:00:00Z'
metricScope:
type: string
description: |
The unit each `count` data point is measured in.
- `session`: number of sessions.
- `user`: number of unique users.
- `pageview`: number of pageviews.
enum:
- session
- user
- pageview
example: session
bucketing:
type: object
additionalProperties: false
description: Daily bucketing applied to a response.
required:
- granularityPeriod
- bucketTimeZone
properties:
granularityPeriod:
type: string
enum:
- day
description: Bucket size used for this response.
example: day
bucketTimeZone:
type: string
description: |
Valid IANA time zone used to align time bucket boundaries. Use canonical names such as `UTC` or `America/New_York`. Bucket timestamps are returned as UTC instants for local bucket starts in this time zone; for example, `America/New_York` local midnight on April 1, 2026 is returned as `2026-04-01T04:00:00.000Z`.
example: America/New_York
data:
type: array
description: Time-ordered series of data points covering the requested window.
items:
type: object
description: |
A single daily bucket in a traffic time series. Buckets are aligned to local day boundaries in the response's `bucketing.bucketTimeZone`; the `timestamp` is the UTC instant for that local bucket start.
required:
- timestamp
- count
properties:
timestamp:
type: string
format: date-time
description: 'Start of the daily bucket, in ISO 8601 / RFC 3339 format.'
example: '2026-04-01T00:00:00Z'
count:
type: integer
minimum: 0
description: 'Non-negative count for this day, in units of the request''s `metricScope`.'
example: 1234
filter:
type: object
description: |
Filter the traffic report by dimension. Each property is an optional set of `AnalyzeFilterOperators` (`eq`, `in`, `ne`, `nin`) applied to the named dimension. Filter a given dimension in one place — either inside `filter` or as a top-level query parameter.
additionalProperties: false
properties:
audienceIds:
type: object
description: 'Operators for filtering a single dimension. Specify at least one of `eq`, `in`, `ne`, or `nin`.'
minProperties: 1
additionalProperties: false
properties:
eq:
type: string
description: Match values exactly equal to the provided value.
example: US
in:
type: array
minItems: 1
description: 'Match values in the provided list. Use indexed bracket notation — `filter[][in][0]=value1&filter[][in][1]=value2`. Comma-separated values (for example, `filter[][in]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
ne:
type: string
description: Exclude values exactly equal to the provided value.
example: US
nin:
type: array
minItems: 1
description: 'Exclude values in the provided list. Use indexed bracket notation — `filter[][nin][0]=value1&filter[][nin][1]=value2`. Comma-separated values (for example, `filter[][nin]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
browser:
type: object
description: 'Operators for filtering a single dimension. Specify at least one of `eq`, `in`, `ne`, or `nin`.'
minProperties: 1
additionalProperties: false
properties:
eq:
type: string
description: Match values exactly equal to the provided value.
example: US
in:
type: array
minItems: 1
description: 'Match values in the provided list. Use indexed bracket notation — `filter[][in][0]=value1&filter[][in][1]=value2`. Comma-separated values (for example, `filter[][in]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
ne:
type: string
description: Exclude values exactly equal to the provided value.
example: US
nin:
type: array
minItems: 1
description: 'Exclude values in the provided list. Use indexed bracket notation — `filter[][nin][0]=value1&filter[][nin][1]=value2`. Comma-separated values (for example, `filter[][nin]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
collectionId:
type: object
description: 'Operators for filtering a single dimension. Specify at least one of `eq`, `in`, `ne`, or `nin`.'
minProperties: 1
additionalProperties: false
properties:
eq:
type: string
description: Match values exactly equal to the provided value.
example: US
in:
type: array
minItems: 1
description: 'Match values in the provided list. Use indexed bracket notation — `filter[][in][0]=value1&filter[][in][1]=value2`. Comma-separated values (for example, `filter[][in]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
ne:
type: string
description: Exclude values exactly equal to the provided value.
example: US
nin:
type: array
minItems: 1
description: 'Exclude values in the provided list. Use indexed bracket notation — `filter[][nin][0]=value1&filter[][nin][1]=value2`. Comma-separated values (for example, `filter[][nin]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
country:
type: object
description: 'Operators for filtering a single dimension. Specify at least one of `eq`, `in`, `ne`, or `nin`.'
minProperties: 1
additionalProperties: false
properties:
eq:
type: string
description: Match values exactly equal to the provided value.
example: US
in:
type: array
minItems: 1
description: 'Match values in the provided list. Use indexed bracket notation — `filter[][in][0]=value1&filter[][in][1]=value2`. Comma-separated values (for example, `filter[][in]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
ne:
type: string
description: Exclude values exactly equal to the provided value.
example: US
nin:
type: array
minItems: 1
description: 'Exclude values in the provided list. Use indexed bracket notation — `filter[][nin][0]=value1&filter[][nin][1]=value2`. Comma-separated values (for example, `filter[][nin]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
dayOfWeek:
type: object
description: 'Operators for filtering a single dimension. Specify at least one of `eq`, `in`, `ne`, or `nin`.'
minProperties: 1
additionalProperties: false
properties:
eq:
type: string
description: Match values exactly equal to the provided value.
example: US
in:
type: array
minItems: 1
description: 'Match values in the provided list. Use indexed bracket notation — `filter[][in][0]=value1&filter[][in][1]=value2`. Comma-separated values (for example, `filter[][in]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
ne:
type: string
description: Exclude values exactly equal to the provided value.
example: US
nin:
type: array
minItems: 1
description: 'Exclude values in the provided list. Use indexed bracket notation — `filter[][nin][0]=value1&filter[][nin][1]=value2`. Comma-separated values (for example, `filter[][nin]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
deviceBrand:
type: object
description: 'Operators for filtering a single dimension. Specify at least one of `eq`, `in`, `ne`, or `nin`.'
minProperties: 1
additionalProperties: false
properties:
eq:
type: string
description: Match values exactly equal to the provided value.
example: US
in:
type: array
minItems: 1
description: 'Match values in the provided list. Use indexed bracket notation — `filter[][in][0]=value1&filter[][in][1]=value2`. Comma-separated values (for example, `filter[][in]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
ne:
type: string
description: Exclude values exactly equal to the provided value.
example: US
nin:
type: array
minItems: 1
description: 'Exclude values in the provided list. Use indexed bracket notation — `filter[][nin][0]=value1&filter[][nin][1]=value2`. Comma-separated values (for example, `filter[][nin]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
deviceType:
type: object
description: 'Operators for filtering a single dimension. Specify at least one of `eq`, `in`, `ne`, or `nin`.'
minProperties: 1
additionalProperties: false
properties:
eq:
type: string
description: Match values exactly equal to the provided value.
example: US
in:
type: array
minItems: 1
description: 'Match values in the provided list. Use indexed bracket notation — `filter[][in][0]=value1&filter[][in][1]=value2`. Comma-separated values (for example, `filter[][in]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
ne:
type: string
description: Exclude values exactly equal to the provided value.
example: US
nin:
type: array
minItems: 1
description: 'Exclude values in the provided list. Use indexed bracket notation — `filter[][nin][0]=value1&filter[][nin][1]=value2`. Comma-separated values (for example, `filter[][nin]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
domain:
type: object
description: 'Operators for filtering a single dimension. Specify at least one of `eq`, `in`, `ne`, or `nin`.'
minProperties: 1
additionalProperties: false
properties:
eq:
type: string
description: Match values exactly equal to the provided value.
example: US
in:
type: array
minItems: 1
description: 'Match values in the provided list. Use indexed bracket notation — `filter[][in][0]=value1&filter[][in][1]=value2`. Comma-separated values (for example, `filter[][in]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
ne:
type: string
description: Exclude values exactly equal to the provided value.
example: US
nin:
type: array
minItems: 1
description: 'Exclude values in the provided list. Use indexed bracket notation — `filter[][nin][0]=value1&filter[][nin][1]=value2`. Comma-separated values (for example, `filter[][nin]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
itemSlug:
type: object
description: 'Operators for filtering a single dimension. Specify at least one of `eq`, `in`, `ne`, or `nin`.'
minProperties: 1
additionalProperties: false
properties:
eq:
type: string
description: Match values exactly equal to the provided value.
example: US
in:
type: array
minItems: 1
description: 'Match values in the provided list. Use indexed bracket notation — `filter[][in][0]=value1&filter[][in][1]=value2`. Comma-separated values (for example, `filter[][in]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
ne:
type: string
description: Exclude values exactly equal to the provided value.
example: US
nin:
type: array
minItems: 1
description: 'Exclude values in the provided list. Use indexed bracket notation — `filter[][nin][0]=value1&filter[][nin][1]=value2`. Comma-separated values (for example, `filter[][nin]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
language:
type: object
description: 'Operators for filtering a single dimension. Specify at least one of `eq`, `in`, `ne`, or `nin`.'
minProperties: 1
additionalProperties: false
properties:
eq:
type: string
description: Match values exactly equal to the provided value.
example: US
in:
type: array
minItems: 1
description: 'Match values in the provided list. Use indexed bracket notation — `filter[][in][0]=value1&filter[][in][1]=value2`. Comma-separated values (for example, `filter[][in]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
ne:
type: string
description: Exclude values exactly equal to the provided value.
example: US
nin:
type: array
minItems: 1
description: 'Exclude values in the provided list. Use indexed bracket notation — `filter[][nin][0]=value1&filter[][nin][1]=value2`. Comma-separated values (for example, `filter[][nin]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
locale:
type: object
description: 'Operators for filtering a single dimension. Specify at least one of `eq`, `in`, `ne`, or `nin`.'
minProperties: 1
additionalProperties: false
properties:
eq:
type: string
description: Match values exactly equal to the provided value.
example: US
in:
type: array
minItems: 1
description: 'Match values in the provided list. Use indexed bracket notation — `filter[][in][0]=value1&filter[][in][1]=value2`. Comma-separated values (for example, `filter[][in]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
ne:
type: string
description: Exclude values exactly equal to the provided value.
example: US
nin:
type: array
minItems: 1
description: 'Exclude values in the provided list. Use indexed bracket notation — `filter[][nin][0]=value1&filter[][nin][1]=value2`. Comma-separated values (for example, `filter[][nin]=value1,value2`) are not supported.'
items:
type: string
example:
- US
- CA
nextCollectionId:
type: object
description: 'Operators for filtering a single dimension. Specify at least one of `eq`, `in`, `ne`, or `nin`.'
minProperties: 1
additionalProperties: false
properties:
eq:
type: string
description: Match values exactly equal to the provided value.
example: US
in:
type: array
minItems: 1
description: 'Match values in the provided list. Use indexed bracket notation — `filter[][in][0]=value1&filter[][in][1]=value2`. Comma-separated values (for example, `filter[