Skip to content
Staircase

Site

The documentation platform, run as a product: ontology-driven navigation, per-product pages, content management and glossary enforcement.

Site generated developer documentation from the ontology rather than from hand-written navigation. Families, categories and products produced the sidebar; each product carried an overview and a quickstart; component ordering was configuration.

Content came from a managed store, and terminology was checked against a glossary at authoring time, so the same term meant the same thing across products.

How it works

Navigation generated from the ontology cannot drift from it. A product added to the catalogue appeared; one removed disappeared. A hand-maintained sidebar fails silently and keeps looking correct.

Operations

Advertisement[new]

POST /advertisers

Register Advertiser

registerAdvertiser

This endpoint registers the Advertiser.

Redirect URL

redirect_url is used to redirect the user to specified location upon interaction with the advertiser's ad.

Advertiser Language

Here user has to specify earlier registered language with predefined rule sets that allow translation of advertising data to Staircase lexicon. Please refer to Language documentation.

Request
application/json
{
  "advertiser_id": "e0e44570-6666-0001-000a-000a00aa0a0a",
  "advertiser_name": "cordless_media",
  "redirect_url": "https://staircase.co/",
  "advertiser_language": "cordless-media-language"
}
Request bodyapplication/json
4 fields
FieldTypeDescription
advertiser_idrequiredstringAdvertiser Name
advertiser_namerequiredstringAdvertiser Name
redirect_urlrequiredstring (uri)URL to which user is redirected upon interaction with ad
advertiser_languagerequiredstringLanguage of the Advertisers that has registered rule sets allowing translation to Staircase lexicon
Response 201application/json
1 fields

Advertiser Registered

FieldTypeDescription
advertiser_idstringAdvertiser ID
Response 400application/json
1 fields

Bad Request

FieldTypeDescription
errorobjectError.
messagestringError message.
Response 404application/json
1 fields

Publishing not found.

FieldTypeDescription
errorobjectError.
messagestringError message.
Response 422application/json
1 fields

Bad request.

FieldTypeDescription
errorobjectError.
messagestringError message.
Other responses

403

GET /advertisers

List Advertisers

listAdvertisers

Retrieves and lists all registered Advertisers.

Parameters
1
ParameterTypeExampleDescription
next_token string query eNolzLEKwkAQRdFfeZnGRvwAWxtBbOwsh2TcXYxvZJ2NBPHfNVpduMV5yf4gW8k2d5i9rSbDxRsHKGH6CKvfpoRCRDYctV4t7qP2hsH7djOGRnHKWk4LtHOmqtHG3+1w/ptPJ+iRC9NG3h89BijN Used for pagination purposes
Response 200application/json
1 fields

Advertisers Retrieved

FieldTypeDescription
advertisersarrayArray of Advertisers
Response 400application/json
1 fields

Bad Request

FieldTypeDescription
errorobjectError.
messagestringError message.
Response 404application/json
1 fields

Publishing not found.

FieldTypeDescription
errorobjectError.
messagestringError message.
Response 422application/json
1 fields

Bad request.

FieldTypeDescription
errorobjectError.
messagestringError message.
Other responses

403

DELETE /advertisers/{advertiser_id}

Delete Advertiser

deleteAdvertiser

Deletes Advertiser referenced by advertiser_id.

Parameters
1
ParameterTypeExampleDescription
advertiser_id required string path advertiser_id Advertiser ID referencing a registered advertiser
Response 400application/json
1 fields

Bad Request

FieldTypeDescription
errorobjectError.
messagestringError message.
Response 404application/json
1 fields

Publishing not found.

FieldTypeDescription
errorobjectError.
messagestringError message.
Response 422application/json
1 fields

Bad request.

FieldTypeDescription
errorobjectError.
messagestringError message.
Other responses

204403

GET /advertisers/{advertiser_id}/advertising_data

Redirect From Advertiser

persistAdvertisingData

This endpoint accepts advertising data and persists it in the Staircase Persistence product. A Transaction with a specific label is created, to which a Collection containing the advertising data is being attached.

Input Data

The advertising data is accepted through the query parameters of this endpoint.

Data Formatting

The provided advertising data is updated to contain the Advertiser information that can be queried on later.

Open Endpoint

This endpoint does not require x-api-key header.

Parameters
1
ParameterTypeExampleDescription
advertiser_id required string path advertiser_id Advertiser ID referencing a registered advertiser
Response 400application/json
1 fields

Bad Request

FieldTypeDescription
errorobjectError.
messagestringError message.
Response 404application/json
1 fields

Publishing not found.

FieldTypeDescription
errorobjectError.
messagestringError message.
Response 422application/json
1 fields

Bad request.

FieldTypeDescription
errorobjectError.
messagestringError message.
Other responses

302403

POST /advertisers/{advertiser_id}/advertising_data/transactions/{transaction_id}

Persist Advertiser Data[new]

persistAdvertisingDataDirect

Persist Advertiser Data

This endpoint accepts advertising data and persists it in the Staircase Persistence product.

A Transaction with a specific label is provided by the user. An additional Collection, containing the advertising data is being attached.

Input Data

The advertising data is accepted through the payload in the body of the request. Request body is required to be a valid JSON object, and must be present.

Data Formatting

The provided advertising data is updated to contain the Advertiser information that can be queried on later.

Request
application/json
{
  "campaign_identifier": "campaign_identifier",
  "keyword_match_type": "exact"
}
Parameters
2
ParameterTypeExampleDescription
advertiser_id required string path advertiser_id Advertiser ID referencing a registered advertiser
transaction_id required string path transaction_id Transaction ID
Response 202application/json
1 fields

Advertising data has been persisted

FieldTypeDescription
transaction_idrequiredstringTransaction IDExample 01H7B8YQYCWRGNHXF8GY5CSZNM
Response 400application/json
1 fields

Bad Request

FieldTypeDescription
errorobjectError.
messagestringError message.
Response 404application/json
1 fields

Publishing not found.

FieldTypeDescription
errorobjectError.
messagestringError message.
Response 422application/json
1 fields

Bad request.

FieldTypeDescription
errorobjectError.
messagestringError message.
Other responses

403

Traffic Control[new]

POST /configurations

Create Traffic Configuration[new]

createTrafficConfiguration

Create Traffic Configuration

This endpoint creates a traffic split configuration by exposing interface for user to define weighted distribution of users hitting the configuration among different sites.

Since traffic statistics is collected, an initial revision of the configuration is created and attached to it. Any following updates to the configuration will create a new revision and point such to it to logically separate the incoming traffic statistics based on the ratios in the current revision.

Warning

Sum of ratios given for each url should make up to 1.

Request
application/json
{
  "sites_settings": [
    {
      "url": "https://google.com",
      "ratio": 0.8
    },
    {
      "url": "https://bing.com",
      "ratio": 0.2
    }
  ]
}
Response
application/json

A 422 status code occurs when a request is well-formed, however, due to semantic errors it is unable to be processed.

{
  "error": {
    "message": "Unprocessable entity.",
    "reason": "Domain name could not be validated."
  }
}
Request bodyapplication/json
1 fields
FieldTypeDescription
sites_settingsrequiredobject[]Array of sites with their settings.
urlrequiredstring (uri)Url of site to which redirection will occur.
ratiorequirednumber (float)Ratio weight of the provided url with respect to other sites.
Response 201application/json
1 fields

Success

FieldTypeDescription
traffic_configuration_idstringIdenfitier of the configuration created.
Other responses

422

GET /configurations

List Traffic Configurations[new]

listTrafficConfigurations

List Traffic Configurations

Lists all created traffic configurations.

Response
application/json

A 422 status code occurs when a request is well-formed, however, due to semantic errors it is unable to be processed.

{
  "error": {
    "message": "Unprocessable entity.",
    "reason": "Domain name could not be validated."
  }
}
Parameters
2
ParameterTypeExampleDescription
next_token string query eNolzLEKwkAQRdFfeZnGRvwAWxtBbOwsh2TcXYxvZJ2NBPHfNVpduMV5yf4gW8k2d5i9rSbDxRsHKGH6CKvfpoRCRDYctV4t7qP2hsH7djOGRnHKWk4LtHOmqtHG3+1w/ptPJ+iRC9NG3h89BijN The response can include a limited number of results along with a `next_token` value. You can use this `next_token` value in a subsequent API request to retrieve the next batch of items. `next_token` is located under the `page` object in the response.
limit integer query 10 Items limit
Response 200application/json
2 fields

Success

FieldTypeDescription
pagerequiredobjectPage information. Contains basic information of the current page returned.
countrequiredintegerCount of items that were retrieved for this page.Example 1
next_tokenrequiredstringIf this field exists in the page information collection, it means you can continue querying for other items, using this token in the query parameters of the following request.Example eNolzLEKwkAQRdFfeZnGRvwAWxtBbOwsh2TcXYxvZJ2NBPHfNVpduMV5yf4gW8k2d5i9rSbDxRsHKGH6CKvfpoRCRDYctV4t7qP2hsH7djOGRnHKWk4LtHOmqtHG3+1w/ptPJ+iRC9NG3h89BijN
traffic_configurationsarrayConfigurations list
Other responses

422

GET /configurations/{traffic_configuration_id}

Retrieve Traffic Configuration[new]

retrieveTrafficConfiguration

Retrieve Traffic Configuration

Retrieve traffic configuration with the latest revision information. User can specify a different revision of the same configuration to be displayed via query parameters.

Response
application/json

A 422 status code occurs when a request is well-formed, however, due to semantic errors it is unable to be processed.

{
  "error": {
    "message": "Unprocessable entity.",
    "reason": "Domain name could not be validated."
  }
}
Parameters
2
ParameterTypeExampleDescription
traffic_configuration_id required string path 15a820a6-cac9-4b-a7b1-d364b26d7f69 Traffic Configuration ID
revision_id string query 15a820a6-cac9-4b-a7b1-d364b26d7f69 Revision ID of the configuration to display
Response 200application/json
4 fields

Success

FieldTypeDescription
traffic_configuration_idstring (uuid)Configuration ID
revision_idstringRevision ID
sites_settingsobject[]Array of sites with their settings.
urlrequiredstring (uri)Url of site to which redirection will occur.
ratiorequirednumber (float)Ratio weight of the provided url with respect to other sites.
traffic_statsobject[]Array of sites with their statistics.
urlrequiredstring (uri)Site url
hitsrequiredintegerNumber of redirects to this site
Other responses

422

PUT /configurations/{traffic_configuration_id}

Update Traffic Configuration[new]

updateTrafficConfiguration

Update Traffic Configuration

Updates provided traffic configuration with new site settings. Creates a separate revision and points the configuration to it.

Request
application/json
{
  "sites_settings": [
    {
      "url": "https://google.com",
      "ratio": 0.8
    },
    {
      "url": "https://bing.com",
      "ratio": 0.2
    }
  ]
}
Response
application/json

A 422 status code occurs when a request is well-formed, however, due to semantic errors it is unable to be processed.

{
  "error": {
    "message": "Unprocessable entity.",
    "reason": "Domain name could not be validated."
  }
}
Parameters
1
ParameterTypeExampleDescription
traffic_configuration_id required string path 15a820a6-cac9-4b-a7b1-d364b26d7f69 Traffic Configuration ID
Request bodyapplication/json
1 fields
FieldTypeDescription
sites_settingsrequiredobject[]Array of sites with their settings.
urlrequiredstring (uri)Url of site to which redirection will occur.
ratiorequirednumber (float)Ratio weight of the provided url with respect to other sites.
Other responses

204422

GET /configurations/{traffic_configuration_id}/revisions

Retrieve Configuration Revisions[new]

retrieveConfigurationRevisions

Retrieve Configuration Revisions

Retrieves all revisions information for the provided traffic configuration.

Response
application/json

A 422 status code occurs when a request is well-formed, however, due to semantic errors it is unable to be processed.

{
  "error": {
    "message": "Unprocessable entity.",
    "reason": "Domain name could not be validated."
  }
}
Parameters
3
ParameterTypeExampleDescription
traffic_configuration_id required string path 15a820a6-cac9-4b-a7b1-d364b26d7f69 Traffic Configuration ID
next_token string query eNolzLEKwkAQRdFfeZnGRvwAWxtBbOwsh2TcXYxvZJ2NBPHfNVpduMV5yf4gW8k2d5i9rSbDxRsHKGH6CKvfpoRCRDYctV4t7qP2hsH7djOGRnHKWk4LtHOmqtHG3+1w/ptPJ+iRC9NG3h89BijN The response can include a limited number of results along with a `next_token` value. You can use this `next_token` value in a subsequent API request to retrieve the next batch of items. `next_token` is located under the `page` object in the response.
limit integer query 10 Items limit
Response 200application/json
2 fields

Success

FieldTypeDescription
pagerequiredobjectPage information. Contains basic information of the current page returned.
countrequiredintegerCount of items that were retrieved for this page.Example 1
next_tokenrequiredstringIf this field exists in the page information collection, it means you can continue querying for other items, using this token in the query parameters of the following request.Example eNolzLEKwkAQRdFfeZnGRvwAWxtBbOwsh2TcXYxvZJ2NBPHfNVpduMV5yf4gW8k2d5i9rSbDxRsHKGH6CKvfpoRCRDYctV4t7qP2hsH7djOGRnHKWk4LtHOmqtHG3+1w/ptPJ+iRC9NG3h89BijN
revisionsrequiredarrayRevisions list
Other responses

422

GET /configurations/{traffic_configuration_id}/url

Split Traffic[new]

splitTraffic

Split Traffic

This endpoint redirects the user to one of the urls defined in the traffic configuration provided in path with the choice being made based on the ratios provided. The latest revision of the configuration is used to determine configuration parameters.

Query Parameters

Query parameters passed to this endpoint are preserved and appended to the url selected from the configuration.

Notes on Implementation

Target url is selected using weighted random selection algorithm, which tends to get more accurate in user distribution with the increasing sample size.

Response
application/json

A 422 status code occurs when a request is well-formed, however, due to semantic errors it is unable to be processed.

{
  "error": {
    "message": "Unprocessable entity.",
    "reason": "Domain name could not be validated."
  }
}
Parameters
1
ParameterTypeExampleDescription
traffic_configuration_id required string path 15a820a6-cac9-4b-a7b1-d364b26d7f69 Traffic Configuration ID
Other responses

302422

Documentation

POST /documentation

Publish product definition

publishDocumentation

Publish an API definition to an environment. API definitions describe service inputs, outputs, error codes and example request / responses.

Documentation can be published from source artifact which passed Assessment or using bundle from Marketplace. Also, direct URL to swagger file can be used for publishing. In this case swagger file URL should return content with 200 response.

Request
application/json
{
  "artifact_url": "https://code-manager-dev-root.s3.amazonaws.com/service-builder-api/2f867413-2f16-4c73-86ec-3086c0d4a33c/source.zip"
}
Response
text/html

Bad Request

<html>\r\n<head><title>400 Bad Request</title></head>\r\n<body>\r\n<center><h1>400 Bad Request</h1></center>\r\n</body>\r\n</html>\r\n
Parameters
1
ParameterTypeExampleDescription
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx API key of Environment.
Response 201application/json
1 fields

Success response.

FieldTypeDescription
publish_idstringPublish ID corresponding to the publish process.Example e0f01bac-8a0b-4a61-9e0a-180f28106f7f
Response 400application/json
1 fields

Bad Request

FieldTypeDescription
errorrequiredstringError message.
Response 401application/json
1 fields

Not Authorized

FieldTypeDescription
errorrequiredstringError message.
Response 422application/json
1 fields

Bad request.

FieldTypeDescription
errorstringError message.
Response 500application/json
1 fields

Server error

FieldTypeDescription
errorrequiredstringError message.
Response 502application/json
1 fields

Server error

FieldTypeDescription
errorstringError message.
Other responses

403

POST /ontology

Publish products ontology

publishOntology

Publish products ontology. It will be used to show ordered product families, categories, and products in the navigation bar. When ontology contains not published product, then it will not be shown in the navigation bar. When ontology does not have a product, it will be shown at the end of the list.

Request
application/json
{
  "DevOps": {
    "Ship": [
      "Build",
      "Deploy"
    ],
    "Distribute": [
      "Marketplace",
      "Environment",
      "Documentation"
    ]
  }
}
Response
application/json

Success response

{
  "DevOps": {
    "Ship": [
      "Build",
      "Deploy"
    ],
    "Distribute": [
      "Marketplace",
      "Environment",
      "Documentation"
    ]
  }
}
Parameters
1
ParameterTypeExampleDescription
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx API key of Environment.
Response 400application/json
1 fields

Bad Request

FieldTypeDescription
errorrequiredstringError message.
Response 401application/json
1 fields

Not Authorized

FieldTypeDescription
errorrequiredstringError message.
Response 422application/json
1 fields

Bad request.

FieldTypeDescription
errorstringError message.
Response 500application/json
1 fields

Server error

FieldTypeDescription
errorrequiredstringError message.
Response 502application/json
1 fields

Server error

FieldTypeDescription
errorstringError message.
Other responses

200403

GET /documentation/{publish_id}

Retrieve publish status

getPublishStatus

Retrieve the status of a given publish_id. Status is SUCCEEDED, FAILED or IN PROGRESS.

Response
text/html

Bad Request

<html>\r\n<head><title>400 Bad Request</title></head>\r\n<body>\r\n<center><h1>400 Bad Request</h1></center>\r\n</body>\r\n</html>\r\n
Parameters
2
ParameterTypeExampleDescription
publish_id required string path 45cc7cea-4626-40b2-b237-01799d037cg2 Publish id of returned by the publish documentation endpoint.
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx API key of Environment.
Response 200application/json
2 fields

Success response

FieldTypeDescription
statusstringStatus of the publish process.FAILEDFAULTIN_PROGRESSIN_REVIEWREJECTEDSTOPPEDSUCCEEDEDTIMED_OUTExample IN_PROGRESS
status_msgstringMessage with details about the publish process status.Example The bundle review process is starting.
Response 400application/json
1 fields

Bad Request

FieldTypeDescription
errorrequiredstringError message.
Response 401application/json
1 fields

Not Authorized

FieldTypeDescription
errorrequiredstringError message.
Response 404application/json
1 fields

Publishing not found.

FieldTypeDescription
messagestringMessage which contains information about requested entity
Response 422application/json
1 fields

Bad request.

FieldTypeDescription
errorstringError message.
Response 500application/json
1 fields

Server error

FieldTypeDescription
errorrequiredstringError message.
Response 502application/json
1 fields

Server error

FieldTypeDescription
errorstringError message.
Other responses

403

GET /ontology

Retrieve products ontology

getOntology

Retrieve products ontology.

Response
application/json

Success response

{
  "DevOps": {
    "Ship": [
      "Build",
      "Deploy"
    ],
    "Distribute": [
      "Marketplace",
      "Environment",
      "Documentation"
    ]
  }
}
Parameters
1
ParameterTypeExampleDescription
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx API key of Environment.
Response 400application/json
1 fields

Bad Request

FieldTypeDescription
errorrequiredstringError message.
Response 401application/json
1 fields

Not Authorized

FieldTypeDescription
errorrequiredstringError message.
Response 422application/json
1 fields

Bad request.

FieldTypeDescription
errorstringError message.
Response 500application/json
1 fields

Server error

FieldTypeDescription
errorrequiredstringError message.
Response 502application/json
1 fields

Server error

FieldTypeDescription
errorstringError message.
Other responses

200403

GET /content/{product_name}/try-it-data/{openapi_path}

Get Try It data

getTryItData

Retrieve the data for try it functionality. Also, it contains examples of request body.

Response
text/html

Bad Request

<html>\r\n<head><title>400 Bad Request</title></head>\r\n<body>\r\n<center><h1>400 Bad Request</h1></center>\r\n</body>\r\n</html>\r\n
Parameters
2
ParameterTypeExampleDescription
product_name required string path Documentation Product name which was specified as 'x-product-name' in product swagger file.
openapi_path required string path publishDocumentation Path which was specified as 'operationId' in api method definition in product swagger file.
Response 200application/json
5 fields

Success response

FieldTypeDescription
methodstringAPI method type.DELETEGETPATCHPOSTPUT
pathstringAPI method path.Example /transactions/{transaction_id}/collections
urlstringURL of service.Example https://documentation-test.staircaseapi.com/employment
body_examplesobject[]Body payload examples.
namestringExample name.Example FullExample
valueobjectExample value.
parametersobjectParameters definition.
headerobject[]Header parameters.
namestringParameter name.Example x-api-key
descriptionstringParameter description.Example Environment api key.
typestringParameter type.Example string
examplestringParameter example.Example 3d54e011-9a17-4357-bf7a-10a854e4ae15
defaultstringParameter default value.
requiredbooleanIs parameter required.Example true
pathobject[]Query parameters.
namestringParameter name.Example transaction_id
descriptionstringParameter description.Example Employment transaction id.
typestringParameter type.Example string
examplestringParameter example.Example 189ec86a-2b8d-41ed-bb0e-91b4a7fc0efc
defaultstringParameter default value.
requiredbooleanIs parameter required.Example true
queryobject[]Path parameters.
namestringParameter name.Example returnResult
descriptionstringParameter description.Example Is need to return result in response.
typestringParameter type.Example boolean
examplestringParameter example.Example true
defaultstringParameter default value.Example false
requiredbooleanIs parameter required.Example false
Response 400application/json
1 fields

Bad Request

FieldTypeDescription
errorrequiredstringError message.
Response 404application/json
1 fields

Publishing not found.

FieldTypeDescription
messagestringMessage which contains information about requested entity
Response 500application/json
1 fields

Server error

FieldTypeDescription
errorrequiredstringError message.
Response 502application/json
1 fields

Server error

FieldTypeDescription
errorstringError message.
Other responses

403

GET /content/sidebar

Get sidebar

getSideBar

Retrieve the sidebar data.

Response 200application/json
1 fields

Success response.

FieldTypeDescription
products_side_barobjectList of products for sidebar.
Response 502application/json
1 fields

Server error

FieldTypeDescription
errorstringError message.
Other responses

403

GET /content/products

List all products

getProducts

Retrieve the list of published products.

Response
application/json

Success response.

[
  "Build",
  "Deploy",
  "Test"
]
Response 200application/json
1 fields

Success response.

FieldTypeDescription
products_publishedstring[]List of published products.
Response 500application/json
1 fields

Server error

FieldTypeDescription
errorrequiredstringError message.
Response 502application/json
1 fields

Server error

FieldTypeDescription
errorstringError message.
Other responses

403

GET /content/{product_name}/guides

Get How To guide

getGuides

Get How To guide.

Response
application/json

Success response

[
  {
    "name": "How to build a service",
    "md_url": "https://content.template.staircaseapi.com/Employment/4c026275-00be-472a-a6a6-83a27970762a/public/How to build a service.md",
    "html_url": "https://content.template.staircaseapi.com/Employment/4c026275-00be-472a-a6a6-83a27970762a/public/How to build a service.html",
    "pdf_url": "https://content.template.staircaseapi.com/Employment/4c026275-00be-472a-a6a6-83a27970762a/public/How to build a service.pdf"
  }
]
Parameters
1
ParameterTypeExampleDescription
product_name required string path Documentation Product name which was specified as 'x-product-name' in product swagger file.
Response 200application/json
4 fields

Success response

FieldTypeDescription
namestringTitle.Example How to build a service
md_urlstringURL to guide in MD format.Example https://content.template.staircaseapi.com/Employment/4c026275-00be-472a-a6a6-83a27970762a/public/How to build a service.md
html_urlstringURL to guide in HTML format.Example https://content.template.staircaseapi.com/Employment/4c026275-00be-472a-a6a6-83a27970762a/public/How to build a service.html
pdf_urlstringURL to guide in PDF format.Example https://content.template.staircaseapi.com/Employment/4c026275-00be-472a-a6a6-83a27970762a/public/How to build a service.pdf
Response 400application/json
1 fields

Bad Request

FieldTypeDescription
errorrequiredstringError message.
Response 404application/json
1 fields

Publishing not found.

FieldTypeDescription
messagestringMessage which contains information about requested entity
Response 502application/json
1 fields

Server error

FieldTypeDescription
errorstringError message.
Other responses

403

GET /content/{product_name}/static

Get static files

getStatic

Get product static files.

Response
application/json

Success response

{
  "static_files": {
    "Employment.svg": "https://content.template.staircaseapi.com/Employment/4c026275-00be-472a-a6a6-83a27970762a/public/Employment.svg",
    "Preview_Blue.svg": "https://content.template.staircaseapi.com/Employment/4c026275-00be-472a-a6a6-83a27970762a/public/Preview_Blue.svg"
  }
}
Parameters
1
ParameterTypeExampleDescription
product_name required string path Documentation Product name which was specified as 'x-product-name' in product swagger file.
Response 200application/json
1 fields

Success response

FieldTypeDescription
static_filesobjectList of static files.
Response 400application/json
1 fields

Bad Request

FieldTypeDescription
errorrequiredstringError message.
Response 404application/json
1 fields

Publishing not found.

FieldTypeDescription
messagestringMessage which contains information about requested entity
Response 500application/json
1 fields

Server error

FieldTypeDescription
errorrequiredstringError message.
Response 502application/json
1 fields

Server error

FieldTypeDescription
errorstringError message.
Other responses

403

GET /content/{product_name}/overview

Get overview

getOverview

Get product overview HTML content.

Response
application/json

Success response

{
  "overview": "<!DOCTYPE html>\n<p><html lang=\"en\">\n<head>\n</head></p></html></p>"
}
Parameters
1
ParameterTypeExampleDescription
product_name required string path Documentation Product name which was specified as 'x-product-name' in product swagger file.
Response 200application/json
1 fields

Success response

FieldTypeDescription
overviewstringHTML content of overview page.Example <!DOCTYPE html> <p><html lang="en"> <head> </head></p></html></p>
Response 400application/json
1 fields

Bad Request

FieldTypeDescription
errorrequiredstringError message.
Response 404application/json
1 fields

Publishing not found.

FieldTypeDescription
messagestringMessage which contains information about requested entity
Response 500application/json
1 fields

Server error

FieldTypeDescription
errorrequiredstringError message.
Response 502application/json
1 fields

Server error

FieldTypeDescription
errorstringError message.
Other responses

403

GET /content/{product_name}/overview_embedded

Get overview embedded

getOverviewEmbedded

Get product overview embedded HTML content.

Response
application/json

Success response

{
  "overview_embedded": "<!DOCTYPE html>\n<p><html lang=\"en\">\n<head>\n</head></p></html></p>"
}
Parameters
1
ParameterTypeExampleDescription
product_name required string path Documentation Product name which was specified as 'x-product-name' in product swagger file.
Response 200application/json
1 fields

Success response

FieldTypeDescription
overview_embeddedstringHTML content of embedded overview page.Example <!DOCTYPE html> <p><html lang="en"> <head> </head></p></html></p>
Response 400application/json
1 fields

Bad Request

FieldTypeDescription
errorrequiredstringError message.
Response 404application/json
1 fields

Publishing not found.

FieldTypeDescription
messagestringMessage which contains information about requested entity
Response 500application/json
1 fields

Server error

FieldTypeDescription
errorrequiredstringError message.
Response 502application/json
1 fields

Server error

FieldTypeDescription
errorstringError message.
Other responses

403

DELETE /content/{product_name}/openapi

Delete Open API definition

deleteOpenApi

Delete Open API definition.

Response
text/html

Bad Request

<html>\r\n<head><title>400 Bad Request</title></head>\r\n<body>\r\n<center><h1>400 Bad Request</h1></center>\r\n</body>\r\n</html>\r\n
Parameters
2
ParameterTypeExampleDescription
product_name required string path Builder Product name which was specified as 'x-product-name' in product swagger file.
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx API key of Environment.
Response 400application/json
1 fields

Bad Request

FieldTypeDescription
errorrequiredstringError message.
Response 404application/json
1 fields

Publishing not found.

FieldTypeDescription
messagestringMessage which contains information about requested entity
Response 500application/json
1 fields

Server error

FieldTypeDescription
errorrequiredstringError message.
Response 502application/json
1 fields

Server error

FieldTypeDescription
errorstringError message.
Other responses

204403

GET /content/{product_name}/openapi

Get Open API definition

getOpenApi

Get Open API definition.

Response
application/json

Success response

{
  "openapi_fields": {
    "openapi": "3.0.1",
    "x-explorer-enabled": true,
    "info": {
      "title": "Build",
      "x-product-category": "Ship",
      "x-product-family": "DevOps",
      "x-product-name": "Build",
      "version": "1.0.0"
    },
    "servers": [
      {
        "url": "https://documentation.staircaseapi.com/infra-builder"
      }
    ],
    "security": [
      {
        "ApiKeyAuth": []
      }
    ],
    "paths": {
      "/builds": {
        "post": {
          "x-product-component": "Product",
          "x-product-endpoint": "Build Product",
          "x-product-sequence": 1,
          "summary": "Create/Run service builder for services.",
          "description": "Build a deployable artifact for a product. The artifact must be provided via a URL. A callback will be sent to the URL specified in property.",
          "requestBody": {
            "description": "Run Specification",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Service Build Schema",
                  "properties": {
                    "bundle_id": {
                      "type": "string",
                      "format": "uuid",
                      "description": "Usually a hash of the commit but can be any UUID."
                    },
                    "source_url": {
                      "type": "string",
                      "description": "URL to source code.",
                      "format": "uri"
                    },
                    "callback_url": {
                      "type": "string",
                      "format": "uri",
                      "default": "null",
                      "description": "Callback URL where are you waiting for build status"
                    }
                  },
                  "required": [
                    "source_url"
                  ],
                  "example": {
                    "source_url": "https://code-manager-dev-root.s3.amazonaws.com/service-builder-api/2f867413-2f16-4c73-86ec-3086c0d4a33c/source.zip"
                  }
                },
                "example": {
                  "source_url": "https://code-manager-dev-root.s3.amazonaws.com/service-builder-api/2f867413-2f16-4c73-86ec-3086c0d4a33c/source.zip"
                }
              }
            }
          },
          "responses": {
            "201": {
              "description": "Build created",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "build_id": {
                        "type": "string",
                        "format": "uuid",
                        "description": "Unique build_id which can be used for tracking build status. Usually it is a UUID."
                      }
                    },
                    "example": {
                      "build_id": "13bd5b51-1a41-4510-9baa-d7f7e24c89a3"
                    }
                  },
                  "example": {
                    "build_id": "13bd5b51-1a41-4510-9baa-d7f7e24c89a3"
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}
Parameters
1
ParameterTypeExampleDescription
product_name required string path Documentation Product name which was specified as 'x-product-name' in product swagger file.
Response 200application/json
1 fields

Success response

FieldTypeDescription
openapi_fieldsobjectOpen API definition.
Response 400application/json
1 fields

Bad Request

FieldTypeDescription
errorrequiredstringError message.
Response 404application/json
1 fields

Publishing not found.

FieldTypeDescription
messagestringMessage which contains information about requested entity
Response 500application/json
1 fields

Server error

FieldTypeDescription
errorrequiredstringError message.
Response 502application/json
1 fields

Server error

FieldTypeDescription
errorstringError message.
Other responses

403

GET /content/{product_name}/openapi/paths

Get all Open API paths

getOpenApiPaths

Get all Open API path definitions.

Response
application/json

Success response

{
  "openapi_paths": {
    "method": "get",
    "service_name": "Build",
    "base_path": "infra-builder",
    "env_domain": "template.staircaseapi.com",
    "path": "/builds/{build_id}",
    "sidebar_path": "/docs/DevOps/Ship/Build/get-build-status",
    "operation_id": null,
    "description": "**Retrieve Service Build Status**",
    "summary": "Get build status",
    "request_body": null,
    "responses": [
      {
        "response_code": "200",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "build_id": {
                  "type": "string",
                  "description": "Unique build id which was returned when build was started",
                  "format": "uuid"
                },
                "status": {
                  "type": "string",
                  "description": "Build status (IN_PROGRESS, FAILED, SUCCEEDED)"
                },
                "artifacts_url": {
                  "type": "string",
                  "format": "url",
                  "description": "Artifact URL if build was successfully completed"
                },
                "logs": {
                  "type": "array",
                  "description": "Build Logs which can be used for build problem investigation",
                  "items": {
                    "type": "string"
                  }
                },
                "metadata": {
                  "type": "object",
                  "description": "Metadata generated by build"
                }
              }
            },
            "example": {
              "build_id": "7ac245b7-2f93-4850-8e86-abfdfd3b0a76",
              "status": "SUCCEEDED",
              "metadata": {
                "service-assessor": {
                  "id": "devops-code-assessor:e5dcb19e-b025-4255-a42f-7f501456703c",
                  "timestamp": 1623399920.05132,
                  "version": "1.0.0",
                  "issuer": "https://build.staircaseapi.com/code-assessor",
                  "status": "SUCCEEDED"
                },
                "service-code": {
                  "id": "0da65dfd-9753-4bb4-8853-06e608979e73",
                  "timestamp": 1623399796.747468,
                  "version": "1.1",
                  "status": "SUCCEEDED",
                  "commit_hash": "c366156be0d8a39ce9a7bf85a5f5d5fc1a59ba4c",
                  "issuer": "https://build.staircaseapi.com/code"
                },
                "service-builder": {
                  "id": "7ac245b7-2f93-4850-8e86-abfdfd3b0a76",
                  "timestamp": 1623400025.2152104,
                  "version": "1.1",
                  "status": "SUCCEEDED",
                  "bundle_type": "SERVICE",
                  "issuer": "https://build.staircaseapi.com/infra-builder"
                }
              },
              "artifacts_url": "https://builder-api-dev-codebuilddevbucket-kkwqngshvjap.s3.amazonaws.com/build-main/build/7ac245b7-2f93-4850-8e86-abfdfd3b0a76/build.zip",
              "logs": []
            }
          }
        },
        "description": "200 response"
      }
    ],
    "parameters": [
      {
        "in": "path",
        "children": [
          {
            "name": "build_id",
            "description": "Unique build id which was returned when build was started",
            "type": "string",
            "required": true,
            "example": "",
            "default": ""
          }
        ]
      }
    ]
  }
}
Parameters
1
ParameterTypeExampleDescription
product_name required string path Documentation Product name which was specified as 'x-product-name' in product swagger file.
Response 200application/json
1 fields

Success response

FieldTypeDescription
openapi_pathsobjectOpen API paths definition.
Response 400application/json
1 fields

Bad Request

FieldTypeDescription
errorrequiredstringError message.
Response 404application/json
1 fields

Publishing not found.

FieldTypeDescription
messagestringMessage which contains information about requested entity
Response 500application/json
1 fields

Server error

FieldTypeDescription
errorrequiredstringError message.
Response 502application/json
1 fields

Server error

FieldTypeDescription
errorstringError message.
Other responses

403

GET /content/{product_name}/openapi/paths/{path}

Get Open API paths

getOpenApiPath

Get Open API path definitions.

Response
application/json

Success response

{
  "openapi_paths": {
    "method": "get",
    "service_name": "Build",
    "base_path": "infra-builder",
    "env_domain": "template.staircaseapi.com",
    "path": "/builds/{build_id}",
    "sidebar_path": "/docs/DevOps/Ship/Build/get-build-status",
    "operation_id": null,
    "description": "**Retrieve Service Build Status**",
    "summary": "Get build status",
    "request_body": null,
    "responses": [
      {
        "response_code": "200",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "build_id": {
                  "type": "string",
                  "description": "Unique build id which was returned when build was started",
                  "format": "uuid"
                },
                "status": {
                  "type": "string",
                  "description": "Build status (IN_PROGRESS, FAILED, SUCCEEDED)"
                },
                "artifacts_url": {
                  "type": "string",
                  "format": "url",
                  "description": "Artifact URL if build was successfully completed"
                },
                "logs": {
                  "type": "array",
                  "description": "Build Logs which can be used for build problem investigation",
                  "items": {
                    "type": "string"
                  }
                },
                "metadata": {
                  "type": "object",
                  "description": "Metadata generated by build"
                }
              }
            },
            "example": {
              "build_id": "7ac245b7-2f93-4850-8e86-abfdfd3b0a76",
              "status": "SUCCEEDED",
              "metadata": {
                "service-assessor": {
                  "id": "devops-code-assessor:e5dcb19e-b025-4255-a42f-7f501456703c",
                  "timestamp": 1623399920.05132,
                  "version": "1.0.0",
                  "issuer": "https://build.staircaseapi.com/code-assessor",
                  "status": "SUCCEEDED"
                },
                "service-code": {
                  "id": "0da65dfd-9753-4bb4-8853-06e608979e73",
                  "timestamp": 1623399796.747468,
                  "version": "1.1",
                  "status": "SUCCEEDED",
                  "commit_hash": "c366156be0d8a39ce9a7bf85a5f5d5fc1a59ba4c",
                  "issuer": "https://build.staircaseapi.com/code"
                },
                "service-builder": {
                  "id": "7ac245b7-2f93-4850-8e86-abfdfd3b0a76",
                  "timestamp": 1623400025.2152104,
                  "version": "1.1",
                  "status": "SUCCEEDED",
                  "bundle_type": "SERVICE",
                  "issuer": "https://build.staircaseapi.com/infra-builder"
                }
              },
              "artifacts_url": "https://builder-api-dev-codebuilddevbucket-kkwqngshvjap.s3.amazonaws.com/build-main/build/7ac245b7-2f93-4850-8e86-abfdfd3b0a76/build.zip",
              "logs": []
            }
          }
        },
        "description": "200 response"
      }
    ],
    "parameters": [
      {
        "in": "path",
        "children": [
          {
            "name": "build_id",
            "description": "Unique build id which was returned when build was started",
            "type": "string",
            "required": true,
            "example": "",
            "default": ""
          }
        ]
      }
    ]
  }
}
Parameters
2
ParameterTypeExampleDescription
product_name required string path Documentation Product name which was specified as 'x-product-name' in product swagger file.
path required string path publishDocumentation Path which was specified as 'operationId' in api method definition in product swagger file.
Response 200application/json
1 fields

Success response

FieldTypeDescription
openapi_pathsobjectOpen API paths definition.
Response 400application/json
1 fields

Bad Request

FieldTypeDescription
errorrequiredstringError message.
Response 404application/json
1 fields

Publishing not found.

FieldTypeDescription
messagestringMessage which contains information about requested entity
Response 500application/json
1 fields

Server error

FieldTypeDescription
errorrequiredstringError message.
Response 502application/json
1 fields

Server error

FieldTypeDescription
errorstringError message.
Other responses

403

GET /content/paths

List all Open API paths

getContentPaths

Get all Open API path definitions.

Response
application/json

Success response

{
  "products_paths": {
    "/builds": {
      "post": {
        "x-product-component": "Product",
        "x-product-endpoint": "Build Product",
        "x-product-sequence": 1,
        "tags": [
          "Build"
        ],
        "summary": "Create/Run service builder for services.",
        "description": "Build a deployable artifact for a product. The artifact must be provided via a URL. A callback will be sent to the URL specified in property.",
        "requestBody": {
          "description": "Run Specification",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "title": "Service Build Schema",
                "properties": {
                  "bundle_id": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Usually a hash of the commit but can be any UUID."
                  },
                  "source_url": {
                    "type": "string",
                    "description": "URL to source code.",
                    "format": "uri"
                  },
                  "callback_url": {
                    "type": "string",
                    "format": "uri",
                    "default": "null",
                    "description": "Callback URL where are you waiting for build status"
                  }
                },
                "required": [
                  "source_url"
                ],
                "example": {
                  "source_url": "https://code-manager-dev-root.s3.amazonaws.com/service-builder-api/2f867413-2f16-4c73-86ec-3086c0d4a33c/source.zip"
                }
              },
              "example": {
                "source_url": "https://code-manager-dev-root.s3.amazonaws.com/service-builder-api/2f867413-2f16-4c73-86ec-3086c0d4a33c/source.zip"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Build created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "build_id": {
                      "type": "string",
                      "format": "uuid",
                      "description": "Unique build_id which can be used for tracking build status. Usually it is a UUID."
                    }
                  },
                  "example": {
                    "build_id": "13bd5b51-1a41-4510-9baa-d7f7e24c89a3"
                  }
                },
                "example": {
                  "build_id": "13bd5b51-1a41-4510-9baa-d7f7e24c89a3"
                }
              }
            }
          }
        }
      }
    },
    "/builds/{build_id}": {
      "get": {
        "x-product-component": "Product",
        "x-product-endpoint": "Retrieve Product Build Status",
        "x-product-sequence": 2,
        "tags": [
          "Build"
        ],
        "summary": "Get build status",
        "description": "**Retrieve Service Build Status**\n",
        "parameters": [
          {
            "name": "build_id",
            "description": "Unique build id which was returned when build was started",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200 response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "build_id": {
                      "type": "string",
                      "description": "Unique build id which was returned when build was started",
                      "format": "uuid"
                    },
                    "status": {
                      "type": "string",
                      "description": "Build status (IN_PROGRESS, FAILED, SUCCEEDED)"
                    },
                    "artifacts_url": {
                      "type": "string",
                      "format": "url",
                      "description": "Artifact URL if build was successfully completed"
                    },
                    "logs": {
                      "type": "array",
                      "description": "Build Logs which can be used for build problem investigation",
                      "items": {
                        "type": "string"
                      }
                    },
                    "metadata": {
                      "type": "object",
                      "description": "Metadata generated by build"
                    }
                  }
                },
                "example": {
                  "build_id": "7ac245b7-2f93-4850-8e86-abfdfd3b0a76",
                  "status": "SUCCEEDED",
                  "metadata": {
                    "service-assessor": {
                      "id": "devops-code-assessor:e5dcb19e-b025-4255-a42f-7f501456703c",
                      "timestamp": 1623399920.05132,
                      "version": "1.0.0",
                      "issuer": "https://build.staircaseapi.com/code-assessor",
                      "status": "SUCCEEDED"
                    },
                    "service-code": {
                      "id": "0da65dfd-9753-4bb4-8853-06e608979e73",
                      "timestamp": 1623399796.747468,
                      "version": "1.1",
                      "status": "SUCCEEDED",
                      "commit_hash": "c366156be0d8a39ce9a7bf85a5f5d5fc1a59ba4c",
                      "issuer": "https://build.staircaseapi.com/code"
                    },
                    "service-builder": {
                      "id": "7ac245b7-2f93-4850-8e86-abfdfd3b0a76",
                      "timestamp": 1623400025.2152104,
                      "version": "1.1",
                      "status": "SUCCEEDED",
                      "bundle_type": "SERVICE",
                      "issuer": "https://build.staircaseapi.com/infra-builder"
                    }
                  },
                  "artifacts_url": "https://builder-api-dev-codebuilddevbucket-kkwqngshvjap.s3.amazonaws.com/build-main/build/7ac245b7-2f93-4850-8e86-abfdfd3b0a76/build.zip"
                }
              }
            }
          }
        }
      }
    }
  }
}
Response 200application/json
1 fields

Success response

FieldTypeDescription
products_pathsobjectOpen all API paths definitions.
Response 500application/json
1 fields

Server error

FieldTypeDescription
errorrequiredstringError message.
Response 502application/json
1 fields

Server error

FieldTypeDescription
errorstringError message.
Other responses

403

GET /collection/{product_name}

Get Postman Collection

getPostmanCollection

Get Postman Collection.

Response
application/json

Success response

{
  "item": [
    {
      "id": "09b9a1ae-9fb4-4391-82b6-67fd6d244f01",
      "name": "builds",
      "item": [
        {
          "id": "888efd45-186c-4fb3-b1ed-573efd38340b",
          "name": "Retrieve Product Build Status",
          "request": {
            "name": "Retrieve Product Build Status",
            "description": {
              "content": "**Retrieve Service Build Status** retrieves metadata generated by the build.\n\n- Metadata is available only for builds that succeed (status==SUCCEEDED).\n- The *artifact_url* key in the response body contains the URL to the artifact that was built. This URL only supports the GET method and is valid for one hour. A new request to this endpoint will provide a new *artifact_url*.\n- The response to a GET request for artifact_url will contain headers describing the artifact metadata. Only header names that start with x-amz-meta-service- are considered service metadata.\n- Regardless of status response contains build execution logs\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "builds",
                ":build_id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<string>",
                  "key": "build_id",
                  "description": "(Required) Unique build id which was returned when build was started"
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "(Required) API Key",
                "key": "x-api-key",
                "value": "<string>"
              }
            ],
            "method": "GET",
            "auth": null
          },
          "response": [
            {
              "id": "872b2b15-1fcf-48d5-bebd-950b1e4baccb",
              "name": "200 response",
              "originalRequest": {
                "url": {
                  "path": [
                    "builds",
                    ":build_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "type": "any",
                      "key": "build_id"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": false,
                    "description": "(Required) API Key",
                    "key": "x-api-key",
                    "value": "<string>"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": []
        }
      ],
      "event": []
    }
  ]
}
Parameters
1
ParameterTypeExampleDescription
product_name required string path Documentation Product name which was specified as 'x-product-name' in product swagger file.
Response 200application/json
1 fields

Success response

FieldTypeDescription
itemobject[]List of postman items.
Response 400application/json
1 fields

Bad Request

FieldTypeDescription
errorrequiredstringError message.
Response 404application/json
1 fields

Publishing not found.

FieldTypeDescription
messagestringMessage which contains information about requested entity
Response 500application/json
1 fields

Server error

FieldTypeDescription
errorrequiredstringError message.
Response 502application/json
1 fields

Server error

FieldTypeDescription
errorstringError message.
Other responses

403

Setup[new]

PUT /integrations/datocms/credentials

Update DatoCMS Token[warning]

updateDatoCMStoken

Update DatoCMS Token

Update your DatoCMS connection

Every DatoCMS project comes with two API tokens by default: one is read-only, and the other gives full read-write permissions to the project.

! Note: Establishing connection Site requires only read-only token, but both variants acceptable.

You can find your DatoCMS Project's tokens at:

].admin.datocms.com/admin/access_tokens
Request
application/json
{
  "token": "<redacted>"
}
Response
application/json

Example response

{
  "message": "Created"
}
Request bodyapplication/json
1 fields
FieldTypeDescription
tokenstringDatoCMS token
Response 201application/json
1 fields

Example response

FieldTypeDescription
messagerequiredstringMessage
Response 400application/json
2 fields

Bad Request

FieldTypeDescription
errorstringError.
messagestringError message.
Response 401application/json
1 fields

Not Authorized

FieldTypeDescription
errorrequiredstringError message.
Response 422application/json
1 fields

Bad request.

FieldTypeDescription
errorstringError message.
Response 500application/json
1 fields

Server error

FieldTypeDescription
errorrequiredstringError message.
Response 502application/json
1 fields

Server error

FieldTypeDescription
errorstringError message.
Other responses

403

PUT /integrations/writercom/credentials

Set Writer.com Credentials[warning]

updateWriterComCredentials

Update Writer.com credentials

Update your Writer.com connection

Request
application/json
{
  "token": "<redacted>",
  "team_id": "23gdqae9013f7baf9f2025306e98283",
  "organization_id": "4saa3e9013f7baf9f20e256322283"
}
Response
application/json

Example response

{
  "message": "Created"
}
Request bodyapplication/json
3 fields
FieldTypeDescription
tokenstringWriter.com token
team_idstringWriter.com team_id
organization_idstringWriter.com organization_id
Response 201application/json
1 fields

Example response

FieldTypeDescription
messagerequiredstringMessage
Response 400application/json
2 fields

Bad Request

FieldTypeDescription
errorstringError.
messagestringError message.
Response 401application/json
1 fields

Not Authorized

FieldTypeDescription
errorrequiredstringError message.
Response 422application/json
1 fields

Bad request.

FieldTypeDescription
errorstringError message.
Response 500application/json
1 fields

Server error

FieldTypeDescription
errorrequiredstringError message.
Response 502application/json
1 fields

Server error

FieldTypeDescription
errorstringError message.
Other responses

403

Integration: DatoCMS[new]

GET /integrations/datocms/fields/{field_id}

Retrieve DatoCMS Field

retrieveDatoCMSField

Retrieve DatoCMS Field

! Note: You can find all possible DatoCMS field types here

! Required: You should set up your token first

Response
application/json

Success response

{
  "type": "field",
  "id": "124",
  "attributes": {
    "label": "Title",
    "field_type": "string",
    "localized": "true",
    "default_value": {
      "en": "A default value",
      "it": "Un valore di default"
    },
    "api_key": "title",
    "hint": "This field will be used as post title",
    "validators": {
      "required": {}
    },
    "appearance": {
      "editor": "single_line",
      "parameters": {
        "heading": false
      },
      "addons": [
        {
          "id": "1555",
          "field_extension": "lorem_ipsum",
          "parameters": {}
        }
      ]
    },
    "position": 1
  },
  "relationships": {
    "item_type": {
      "data": {
        "type": "item_type",
        "id": "53311"
      }
    },
    "fieldset": {
      "data": null
    }
  }
}
Parameters
1
ParameterTypeExampleDescription
field_id required string path 4934786 DatoCMS Field ID or Field api_key
Response 200application/json
4 fields

Success response

FieldTypeDescription
idrequiredstringDatoCMS field ID or api_key
typerequiredstringDatoCMS field type
relationshipsobjectDatoCMS field relationships
attributesobjectDatoCMS field attributes
Response 400application/json
2 fields

Bad Request

FieldTypeDescription
errorstringError.
messagestringError message.
Response 401application/json
1 fields

Not Authorized

FieldTypeDescription
errorrequiredstringError message.
Response 422application/json
1 fields

Bad request.

FieldTypeDescription
errorstringError message.
Response 500application/json
1 fields

Server error

FieldTypeDescription
errorrequiredstringError message.
Response 502application/json
1 fields

Server error

FieldTypeDescription
errorstringError message.
Other responses

403

GET /integrations/datocms/models

Retrieve DatoCMS Models

retrieveDatoCMSModels

Retrieve DatoCMS Models

Returns an array of DatoCMS model objects.

! Note: You can learn more about DatoCMS models here

! Required: You should set up your token first

Response
application/json

Success response

[
  {
    "type": "item_type",
    "id": "124",
    "attributes": {
      "name": "Blog post",
      "api_key": "post",
      "collection_appearance": "compact",
      "singleton": false,
      "all_locales_required": false,
      "sortable": true,
      "modular_block": false,
      "draft_mode_active": false,
      "tree": false,
      "ordering_direction": null,
      "ordering_meta": "created_at",
      "has_singleton_item": false,
      "hint": "Blog posts will be shown in our website under the Blog section"
    },
    "relationships": {
      "singleton_item": {
        "data": null
      },
      "fields": {
        "data": [
          {
            "type": "field",
            "id": "3535555"
          }
        ]
      },
      "fieldsets": {
        "data": [
          {
            "type": "fieldset",
            "id": "23555"
          }
        ]
      },
      "title_field": {
        "data": null
      },
      "image_preview_field": {
        "data": null
      },
      "excerpt_field": {
        "data": null
      },
      "ordering_field": {
        "data": null
      },
      "workflow": {
        "data": null
      }
    }
  }
]
Response 200application/json
4 fields

Success response

FieldTypeDescription
idrequiredstringDatoCMS model ID or api_key
typerequiredstringDatoCMS model type
relationshipsobjectDatoCMS model relationships
attributesobjectDatoCMS model attributes
Response 400application/json
2 fields

Bad Request

FieldTypeDescription
errorstringError.
messagestringError message.
Response 401application/json
1 fields

Not Authorized

FieldTypeDescription
errorrequiredstringError message.
Response 422application/json
1 fields

Bad request.

FieldTypeDescription
errorstringError message.
Response 500application/json
1 fields

Server error

FieldTypeDescription
errorrequiredstringError message.
Response 502application/json
1 fields

Server error

FieldTypeDescription
errorstringError message.
Other responses

403

GET /integrations/datocms/models/{model_id}

Retrieve DatoCMS Model

retrieveDatoCMSModel

Retrieve DatoCMS Model

Returns DatoCMS model object.

! Note: You can learn more about DatoCMS models here

! Required: You should set up your token first

Response
application/json

Success response

{
  "type": "item_type",
  "id": "124",
  "attributes": {
    "name": "Blog post",
    "api_key": "post",
    "collection_appearance": "compact",
    "singleton": false,
    "all_locales_required": false,
    "sortable": true,
    "modular_block": false,
    "draft_mode_active": false,
    "tree": false,
    "ordering_direction": null,
    "ordering_meta": "created_at",
    "has_singleton_item": false,
    "hint": "Blog posts will be shown in our website under the Blog section"
  },
  "relationships": {
    "singleton_item": {
      "data": null
    },
    "fields": {
      "data": [
        {
          "type": "field",
          "id": "3535555"
        }
      ]
    },
    "fieldsets": {
      "data": [
        {
          "type": "fieldset",
          "id": "23555"
        }
      ]
    },
    "title_field": {
      "data": null
    },
    "image_preview_field": {
      "data": null
    },
    "excerpt_field": {
      "data": null
    },
    "ordering_field": {
      "data": null
    },
    "workflow": {
      "data": null
    }
  }
}
Parameters
1
ParameterTypeExampleDescription
model_id required string path 1153125 DatoCMS Model ID or Model api_key
Response 200application/json
4 fields

Success response

FieldTypeDescription
idrequiredstringDatoCMS model ID or api_key
typerequiredstringDatoCMS model type
relationshipsobjectDatoCMS model relationships
attributesobjectDatoCMS model attributes
Response 400application/json
2 fields

Bad Request

FieldTypeDescription
errorstringError.
messagestringError message.
Response 401application/json
1 fields

Not Authorized

FieldTypeDescription
errorrequiredstringError message.
Response 422application/json
1 fields

Bad request.

FieldTypeDescription
errorstringError message.
Response 500application/json
1 fields

Server error

FieldTypeDescription
errorrequiredstringError message.
Response 502application/json
1 fields

Server error

FieldTypeDescription
errorstringError message.
Other responses

403

GET /integrations/datocms/models/{model_id}/fields

Retrieve DatoCMS Model Fields

retrieveDatoCMSModelFields

Retrieve DatoCMS Model Fields

Returns an array of DatoCMS field objects.

! Note: You can find all possible DatoCMS field types here

! Required: You should set up your token first

Response
application/json

Success response

[
  {
    "type": "field",
    "id": "124",
    "attributes": {
      "label": "Title",
      "field_type": "string",
      "localized": "true",
      "default_value": {
        "en": "A default value",
        "it": "Un valore di default"
      },
      "api_key": "title",
      "hint": "This field will be used as post title",
      "validators": {
        "required": {}
      },
      "appearance": {
        "editor": "single_line",
        "parameters": {
          "heading": false
        },
        "addons": [
          {
            "id": "1555",
            "field_extension": "lorem_ipsum",
            "parameters": {}
          }
        ]
      },
      "position": 1
    },
    "relationships": {
      "item_type": {
        "data": {
          "type": "item_type",
          "id": "53311"
        }
      },
      "fieldset": {
        "data": null
      }
    }
  }
]
Parameters
1
ParameterTypeExampleDescription
model_id required string path 1153125 DatoCMS Model ID or Model api_key
Response 200application/json
4 fields

Success response

FieldTypeDescription
idrequiredstringDatoCMS field ID or api_key
typerequiredstringDatoCMS field type
relationshipsobjectDatoCMS field relationships
attributesobjectDatoCMS field attributes
Response 400application/json
2 fields

Bad Request

FieldTypeDescription
errorstringError.
messagestringError message.
Response 401application/json
1 fields

Not Authorized

FieldTypeDescription
errorrequiredstringError message.
Response 422application/json
1 fields

Bad request.

FieldTypeDescription
errorstringError message.
Response 500application/json
1 fields

Server error

FieldTypeDescription
errorrequiredstringError message.
Response 502application/json
1 fields

Server error

FieldTypeDescription
errorstringError message.
Other responses

403

GET /integrations/datocms/page-details/{page_id}

Retrieve page details from DatoCMS

retrieveDatoCMSPageDetails

Retrieve page details from DatoCMS

! Required: You should set up your token first

Response
application/json

Success response

{
  "type": "field",
  "id": "124",
  "attributes": {
    "label": "Title",
    "field_type": "string",
    "localized": "true",
    "default_value": {
      "en": "A default value",
      "it": "Un valore di default"
    },
    "api_key": "title",
    "hint": "This field will be used as post title",
    "validators": {
      "required": {}
    },
    "appearance": {
      "editor": "single_line",
      "parameters": {
        "heading": false
      },
      "addons": [
        {
          "id": "1555",
          "field_extension": "lorem_ipsum",
          "parameters": {}
        }
      ]
    },
    "position": 1
  },
  "relationships": {
    "item_type": {
      "data": {
        "type": "item_type",
        "id": "53311"
      }
    },
    "fieldset": {
      "data": null
    }
  }
}
Parameters
1
ParameterTypeExampleDescription
page_id required path pricing-page Page ID
Response 200application/json
4 fields

Success response

FieldTypeDescription
idrequiredstringDatoCMS field ID or api_key
typerequiredstringDatoCMS field type
relationshipsobjectDatoCMS field relationships
attributesobjectDatoCMS field attributes
Response 400application/json
2 fields

Bad Request

FieldTypeDescription
errorstringError.
messagestringError message.
Response 401application/json
1 fields

Not Authorized

FieldTypeDescription
errorrequiredstringError message.
Response 422application/json
1 fields

Bad request.

FieldTypeDescription
errorstringError message.
Response 500application/json
1 fields

Server error

FieldTypeDescription
errorrequiredstringError message.
Response 502application/json
1 fields

Server error

FieldTypeDescription
errorstringError message.
Other responses

403

GET /integrations/datocms/records

Retrieve DatoCMS Records

retrieveDatoCMSRecords

Retrieve DatoCMS Records

Returns an array of DatoCMS record objects.

! Note: You can learn more about DatoCMS records here

! Required: You should set up your token first

Response
application/json

Success response

[
  {
    "type": "item",
    "id": "124",
    "attributes": {
      "title": "My first blog post!",
      "content": "Lorem ipsum dolor sit amet...",
      "category": "24"
    },
    "relationships": {
      "creator": {
        "data": [
          {
            "type": "account",
            "id": "3535555"
          }
        ]
      },
      "item_type": {
        "data": [
          {
            "type": "item_type",
            "id": "23555"
          }
        ]
      }
    },
    "meta": {
      "created_at": "2020-04-21T07:57:11.124Z",
      "updated_at": "2020-04-21T07:57:11.124Z",
      "published_at": "2020-04-21T07:57:11.124Z",
      "first_published_at": "2020-04-21T07:57:11.124Z",
      "publication_scheduled_at": "2020-04-21T07:57:11.124Z",
      "unpublishing_scheduled_at": "2020-04-21T07:57:11.124Z",
      "status": "draft",
      "is_current_version_valid": true,
      "is_published_version_valid": true,
      "current_version": "4234",
      "stage": ""
    }
  }
]
Parameters
10
ParameterTypeExampleDescription
nested string query true For Modular Content fields and Structured Text fields. If set, returns full payload for nested blocks instead of IDs
filter[ids] string query 124214,21421 Record (or block record) IDs to fetch, comma separated. If you use this filter, you must not use filter[type] or filter[fields]
filter[type] string query item Record (or block record) IDs to fetch, comma separated. If you use this filter, you must not use filter[type] or filter[fields]
filter[query] string query search query Textual query to match. You must not use filter[ids]. If locale is defined, search within that locale. Otherwise, environment's main locale will be used.
filter[fields] string query field Same as GraphQL API records filters. Use snake_case for fields names. If locale is defined, search within that locale. Otherwise, environment's main locale will be used.
locale string query en When filter[query] or field[fields] is defined, filter by this locale. Default: environment's main locale
order_by string query id_DESC Fields used to order results. You must specify also filter[type] with one element only to be able use this option. Format: <field_name>_<(ASC|DESC)>, where <field_name> can be either the API key of a model's field, or one of the following meta columns: id, _updated_at, _created_at, _status, _published_at, _first_published_at, _publication_scheduled_at, _unpublishing_scheduled_at, _is_valid, position (only for sortable models). You can pass multiple comma separated rules.
version string query current Whether you want the currently published versions (published, default) of your records, or the latest available (current)
page[offset] string query 10 Index of first record to fetch (defaults to 0)
page[limit] string query 50 Number of records to fetch (defaults to 30, maximum is 500)
Response 200application/json
5 fields

Success response

FieldTypeDescription
idrequiredstringDatoCMS record ID or api_key
typerequiredstringDatoCMS record type
relationshipsobjectDatoCMS record relationships
attributesobjectDatoCMS record attributes
metaobjectDatoCMS record metadata
Response 400application/json
2 fields

Bad Request

FieldTypeDescription
errorstringError.
messagestringError message.
Response 401application/json
1 fields

Not Authorized

FieldTypeDescription
errorrequiredstringError message.
Response 422application/json
1 fields

Bad request.

FieldTypeDescription
errorstringError message.
Response 500application/json
1 fields

Server error

FieldTypeDescription
errorrequiredstringError message.
Response 502application/json
1 fields

Server error

FieldTypeDescription
errorstringError message.
Other responses

403

GET /integrations/datocms/records/{record_id}

Retrieve DatoCMS Record

retrieveDatoCMSRecord

Retrieve DatoCMS Record

Returns DatoCMS record objects.

! Note: You can learn more about DatoCMS records here

! Required: You should set up your token first

Response
application/json

Success response

{
  "type": "item",
  "id": "124",
  "attributes": {
    "title": "My first blog post!",
    "content": "Lorem ipsum dolor sit amet...",
    "category": "24"
  },
  "relationships": {
    "creator": {
      "data": [
        {
          "type": "account",
          "id": "3535555"
        }
      ]
    },
    "item_type": {
      "data": [
        {
          "type": "item_type",
          "id": "23555"
        }
      ]
    }
  },
  "meta": {
    "created_at": "2020-04-21T07:57:11.124Z",
    "updated_at": "2020-04-21T07:57:11.124Z",
    "published_at": "2020-04-21T07:57:11.124Z",
    "first_published_at": "2020-04-21T07:57:11.124Z",
    "publication_scheduled_at": "2020-04-21T07:57:11.124Z",
    "unpublishing_scheduled_at": "2020-04-21T07:57:11.124Z",
    "status": "draft",
    "is_current_version_valid": true,
    "is_published_version_valid": true,
    "current_version": "4234",
    "stage": ""
  }
}
Parameters
3
ParameterTypeExampleDescription
record_id required string path 4934786 DatoCMS Record ID or Record api_key
nested string query true For Modular Content fields and Structured Text fields. If set, returns full payload for nested blocks instead of IDs
version string query current Whether you want the currently published versions (published, default) of your records, or the latest available (current)
Response 200application/json
5 fields

Success response

FieldTypeDescription
idrequiredstringDatoCMS record ID or api_key
typerequiredstringDatoCMS record type
relationshipsobjectDatoCMS record relationships
attributesobjectDatoCMS record attributes
metaobjectDatoCMS record metadata
Response 400application/json
2 fields

Bad Request

FieldTypeDescription
errorstringError.
messagestringError message.
Response 401application/json
1 fields

Not Authorized

FieldTypeDescription
errorrequiredstringError message.
Response 422application/json
1 fields

Bad request.

FieldTypeDescription
errorstringError message.
Response 500application/json
1 fields

Server error

FieldTypeDescription
errorrequiredstringError message.
Response 502application/json
1 fields

Server error

FieldTypeDescription
errorstringError message.
Other responses

403

GET /integrations/datocms/records/{record_id}/apply-glossary

Apply Writer.com glossary to DatoCMS Record

applyGlossaryToDatoCMSRecord

Apply Writer.com glossary to DatoCMS Record

It will apply Writer.com values to the record structure

Response
application/json

Success response

{
  "type": "item",
  "id": "124",
  "attributes": {
    "title": "My first blog post!",
    "content": "Lorem ipsum dolor sit amet...",
    "category": "24"
  },
  "relationships": {
    "creator": {
      "data": [
        {
          "type": "account",
          "id": "3535555"
        }
      ]
    },
    "item_type": {
      "data": [
        {
          "type": "item_type",
          "id": "23555"
        }
      ]
    }
  },
  "meta": {
    "created_at": "2020-04-21T07:57:11.124Z",
    "updated_at": "2020-04-21T07:57:11.124Z",
    "published_at": "2020-04-21T07:57:11.124Z",
    "first_published_at": "2020-04-21T07:57:11.124Z",
    "publication_scheduled_at": "2020-04-21T07:57:11.124Z",
    "unpublishing_scheduled_at": "2020-04-21T07:57:11.124Z",
    "status": "draft",
    "is_current_version_valid": true,
    "is_published_version_valid": true,
    "current_version": "4234",
    "stage": ""
  }
}
Parameters
1
ParameterTypeExampleDescription
record_id required string path 4934786 DatoCMS Record ID or Record api_key
Response 200application/json
5 fields

Success response

FieldTypeDescription
idrequiredstringDatoCMS record ID or api_key
typerequiredstringDatoCMS record type
relationshipsobjectDatoCMS record relationships
attributesobjectDatoCMS record attributes
metaobjectDatoCMS record metadata
Response 400application/json
2 fields

Bad Request

FieldTypeDescription
errorstringError.
messagestringError message.
Response 401application/json
1 fields

Not Authorized

FieldTypeDescription
errorrequiredstringError message.
Response 422application/json
1 fields

Bad request.

FieldTypeDescription
errorstringError message.
Response 500application/json
1 fields

Server error

FieldTypeDescription
errorrequiredstringError message.
Response 502application/json
1 fields

Server error

FieldTypeDescription
errorstringError message.
Other responses

403

GET /integrations/datocms/uploads

Retrieve DatoCMS Uploads

retrieveDatoCMSUploads

Retrieve DatoCMS Uploads

Returns an array of DatoCMS upload objects.

! Note: You can learn more about DatoCMS uploads here

! Required: You should set up your token first

Response
application/json

Success response

[
  {
    "type": "upload",
    "id": "124",
    "attributes": {
      "size": "444",
      "width": "30",
      "height": 30,
      "path": "/45/1496845848-digital-cats.jpg",
      "basename": "digital-cats",
      "filename": "digital-cats.jpg",
      "url": "https://www.datocms-assets.com/45/1496845848-digital-cats.jpg",
      "format": "Mark Smith",
      "author": "Mark Smith",
      "copyright": "2020 Staircase",
      "notes": "Nyan the cat",
      "md5": "873c296d0f2b7ee569f2d7ddaebc0d33",
      "duration": 62,
      "frame_rate": 30,
      "blurhash": "LEHV6nWB2yk8pyo0adR*.7kCMdnj",
      "mux_playback_id": "a1B2c3D4e5F6g7H8i9",
      "mux_mp4_highest_res": "high",
      "default_field_metadata": {
        "en": {
          "title": "this is the default title",
          "alt": "this is the default alternate text",
          "custom_data": {
            "foo": "bar"
          },
          "focal_point": {
            "x": "0.5,",
            "y": 0.5
          }
        }
      },
      "is_image": true,
      "created_at": "2020-04-21T07:57:11.124Z",
      "updated_at": "2020-04-21T07:57:11.124Z",
      "mime_type": "image/jpeg",
      "tags": [
        "cats"
      ],
      "smart_tags": [
        "staircase_cats"
      ],
      "exit_info": {
        "iso": 10000,
        "model": "ILCE-7",
        "flash_mode": 16,
        "focal_length": 35,
        "exposure_time": 0.0166667
      },
      "colors": [
        {
          "red": 206,
          "green": 203,
          "blue": 167,
          "alpha": 255
        },
        {
          "red": 158,
          "green": 163,
          "blue": 93,
          "alpha": 235
        }
      ]
    },
    "relationships": {
      "creator": {
        "data": {
          "type": "account",
          "id": "53311"
        }
      }
    }
  }
]
Parameters
7
ParameterTypeExampleDescription
filter[ids] string query 124214,21421 Record (or block record) IDs to fetch, comma separated. If you use this filter, you must not use filter[type] or filter[fields]
filter[query] string query search query Textual query to match. You must not use filter[ids]. If locale is defined, search within that locale. Otherwise, environment's main locale will be used.
filter[fields] string query field Same as GraphQL API records filters. Use snake_case for fields names. If locale is defined, search within that locale. Otherwise, environment's main locale will be used.
locale string query en When filter[query] or field[fields] is defined, filter by this locale. Default: environment's main locale
order_by string query id_DESC Fields used to order results. Format: <field_name>_<(ASC|DESC)>. You can pass multiple comma separated rules.
page[offset] string query 10 Index of first record to fetch (defaults to 0)
page[limit] string query 50 Number of records to fetch (defaults to 30, maximum is 500)
Response 200application/json
4 fields

Success response

FieldTypeDescription
idrequiredstringDatoCMS upload ID or api_key
typerequiredstringDatoCMS upload type
relationshipsobjectDatoCMS upload relationships
attributesobjectDatoCMS upload attributes
Response 400application/json
2 fields

Bad Request

FieldTypeDescription
errorstringError.
messagestringError message.
Response 401application/json
1 fields

Not Authorized

FieldTypeDescription
errorrequiredstringError message.
Response 422application/json
1 fields

Bad request.

FieldTypeDescription
errorstringError message.
Response 500application/json
1 fields

Server error

FieldTypeDescription
errorrequiredstringError message.
Response 502application/json
1 fields

Server error

FieldTypeDescription
errorstringError message.
Other responses

403

GET /integrations/datocms/uploads/{upload_id}

Retrieve DatoCMS Upload

retrieveDatoCMSUpload

Retrieve DatoCMS Upload

Returns DatoCMS upload object.

! Note: You can learn more about DatoCMS uploads here

! Required: You should set up your token first

Response
application/json

Success response

{
  "type": "upload",
  "id": "124",
  "attributes": {
    "size": "444",
    "width": "30",
    "height": 30,
    "path": "/45/1496845848-digital-cats.jpg",
    "basename": "digital-cats",
    "filename": "digital-cats.jpg",
    "url": "https://www.datocms-assets.com/45/1496845848-digital-cats.jpg",
    "format": "Mark Smith",
    "author": "Mark Smith",
    "copyright": "2020 Staircase",
    "notes": "Nyan the cat",
    "md5": "873c296d0f2b7ee569f2d7ddaebc0d33",
    "duration": 62,
    "frame_rate": 30,
    "blurhash": "LEHV6nWB2yk8pyo0adR*.7kCMdnj",
    "mux_playback_id": "a1B2c3D4e5F6g7H8i9",
    "mux_mp4_highest_res": "high",
    "default_field_metadata": {
      "en": {
        "title": "this is the default title",
        "alt": "this is the default alternate text",
        "custom_data": {
          "foo": "bar"
        },
        "focal_point": {
          "x": "0.5,",
          "y": 0.5
        }
      }
    },
    "is_image": true,
    "created_at": "2020-04-21T07:57:11.124Z",
    "updated_at": "2020-04-21T07:57:11.124Z",
    "mime_type": "image/jpeg",
    "tags": [
      "cats"
    ],
    "smart_tags": [
      "staircase_cats"
    ],
    "exit_info": {
      "iso": 10000,
      "model": "ILCE-7",
      "flash_mode": 16,
      "focal_length": 35,
      "exposure_time": 0.0166667
    },
    "colors": [
      {
        "red": 206,
        "green": 203,
        "blue": 167,
        "alpha": 255
      },
      {
        "red": 158,
        "green": 163,
        "blue": 93,
        "alpha": 235
      }
    ]
  },
  "relationships": {
    "creator": {
      "data": {
        "type": "account",
        "id": "53311"
      }
    }
  }
}
Parameters
1
ParameterTypeExampleDescription
upload_id required string path 4934786 DatoCMS Upload ID or Upload api_key
Response 200application/json
4 fields

Success response

FieldTypeDescription
idrequiredstringDatoCMS upload ID or api_key
typerequiredstringDatoCMS upload type
relationshipsobjectDatoCMS upload relationships
attributesobjectDatoCMS upload attributes
Response 400application/json
2 fields

Bad Request

FieldTypeDescription
errorstringError.
messagestringError message.
Response 401application/json
1 fields

Not Authorized

FieldTypeDescription
errorrequiredstringError message.
Response 422application/json
1 fields

Bad request.

FieldTypeDescription
errorstringError message.
Response 500application/json
1 fields

Server error

FieldTypeDescription
errorrequiredstringError message.
Response 502application/json
1 fields

Server error

FieldTypeDescription
errorstringError message.
Other responses

403

Integration: Writer.com[new]

GET /integrations/writercom/snippets

Retrieve Writer.com Snippets

retrieveWriterComSnippets

Retrieve Writer.com Snippets

Returns an array of Writer.com snippet objects.

! Required: You should set up your credentials first

Response
application/json

Success response

[
  {}
]
Parameters
7
ParameterTypeExampleDescription
shortcut string query string Shortcut
search string query search string Search
tags string[] query Tags
sortField string query type Sort Field
sortOrder string query asc Sort Order
offset integer query 5 Offset
limit integer query 20 Limit
Response 400application/json
2 fields

Bad Request

FieldTypeDescription
errorstringError.
messagestringError message.
Response 401application/json
1 fields

Not Authorized

FieldTypeDescription
errorrequiredstringError message.
Response 422application/json
1 fields

Bad request.

FieldTypeDescription
errorstringError message.
Response 500application/json
1 fields

Server error

FieldTypeDescription
errorrequiredstringError message.
Response 502application/json
1 fields

Server error

FieldTypeDescription
errorstringError message.
Other responses

200403

GET /integrations/writercom/terms

Retrieve Writer.com Terms

retrieveWriterComTerms

Retrieve Writer.com Terms

Returns an array of Writer.com terms objects.

! Required: You should set up your credentials first

Response
application/json

Success response

[
  {}
]
Parameters
8
ParameterTypeExampleDescription
type string query approved Type
term string query term Term
Part of speech string query type Part of speech
tags string[] query Tags
sortField string query type Sort Field
sortOrder string query asc Sort Order
offset integer query 5 Offset
limit integer query 20 Limit
Response 400application/json
2 fields

Bad Request

FieldTypeDescription
errorstringError.
messagestringError message.
Response 401application/json
1 fields

Not Authorized

FieldTypeDescription
errorrequiredstringError message.
Response 422application/json
1 fields

Bad request.

FieldTypeDescription
errorstringError message.
Response 500application/json
1 fields

Server error

FieldTypeDescription
errorrequiredstringError message.
Response 502application/json
1 fields

Server error

FieldTypeDescription
errorstringError message.
Other responses

200403

App Configurations[new]

PUT /ordered-flows

Register Configuration[updated]

registerAppConfiguration

Register Configuration

Part of Site product, component name: Site-App-Flows registered on marketplace.staircaseapi.com.

Update Or Add Flow

Enables you to glue the Console applications into a standalone application or a flow of applications.

Specification

The Site Flow Configuration is a flow specification designed to define the structure of a web application's layout. By using Site Flows, you can dynamically configure the layout of the application, including authentication settings, appearance of various layout elements, and the sequence of apps that appear in the main layout.

Show the rest

The flexibility provided by the endpoint allows developers to quickly update the application's appearance and functionality without needing to modify the underlying code.

Layout types
Configuration key Layout Element Description
authentication Authentication Defines whether authentication is enabled or disabled for the application.
left_sidebar Left Sidebar Represents the settings and appearance of the left sidebar in the layout.
right_sidebar Right Sidebar Represents the settings and appearance of the right sidebar in the layout.
header Header Represents the settings and appearance of the header in the layout.
hero Hero Represents the settings and appearance of the hero in the layout.
footer Footer Represents the settings and appearance of the footer in the layout.
main Main Represents the settings and appearance of the main layout, which can be either a sequence of apps or a standalone app.
favicon Favicon A symbol or graphic associated with a website. In a typical browser stands right before the tab title.
layout Layout Represents the settings and appearance of the layout.
Main Layout
Rendering

Main layout can be rendered in two different ways, and is defined via rendering_type field under main layout configuration.

Rendering Type Description
flow Allows defining an interactive set of app configurations called a flow.
list Allows having unordered list of app configurations. Except for the default (first) screen.
Window titling

The default title of the browser window must be defined in main layout configuration. However, it can be overwritten by optionally configured title of an individual app configurations.

Analytics

The analytics settings can be defined in the flow configuration along with layout configuration.

Analytics configuration resides under analytics key in the flow configuration.

List of partners which analytics can be enabled for a site:

Partner Configuration key Description Value Example
Google Analytics google_analytics_tag Google Analytics tag can be retrieved from Google Analytics. G-A1BCD2EF3H
Google Analytics google_analytics_server_url Google Analytics Server URL. Can be retrived from Google Analytics Server Side
Mouseflow mouseflow_project_identifier Mouseflow can be enabled by providing an identifier retrieved from the project. 0710f46a-9441-11ee-8acf-6ae56c4923a6
GA Tracking google_analytics_tracking_parameters Google Analytics tracking parameters can be enabled by providing a list of parameters. ["utm_campaign","guid"]
Facebook tracking facebook_pixel_id ID of Facebook tracing pixel ["utm_campaign","guid"]
Facebook tracking facebook_pixel_domain_verification facebook-domain-verification content for meta tag in head ["utm_campaign","guid"]
Site Advertisement advertiser_correlation_key Site Advertisement can be enabled by providing a correlation key. utm_source is the only allowed value. e0e44570-6666-0001-000a-000a00aa0a0a
**Google Tag Manager ** google_tag_manager_id Google Tag Manager ID can be retrieved from Google Tag Manager. GTM-XXXXXX
GA Tracking
{
 "analytics": {
 "google_analytics_tracking_parameters": ["utm_campaign", "guid"]
 }
}

When the user navigates to ``, Site will send a staircase_page_view event to Google Analytics with the following parameters:

{
 "utm_campaign": "email",
 "guid": "98903487222"
}
Site Advertisement
{
 "analytics": {
 "advertiser_correlation_key": "utm_source"
 }
}

Defines the query parameter to look up advertiser's information at. When user visit ``, Site will perform Persist Advertiser Data with utm_source's value as an advertiser_id. The data will be collected from query parameters and passed on for the further translation.

Consent

Cookie consent is automatically enabled for any site that has analytics enabled. It is fully managed by the Site product and does not require any additional configuration. However, it can be customized with the consent configuration under cookie_consent key.

Cookie Consent Configuration Example
{
 ...
 "analytics": {
 "google_analytics_tag": "G-9TJJ8RPE4H"
 },
 "cookie_consent": {
 "popup": {
 "title": "Got time for cookies?",
 "button_ok": "Sure"
 }
 }
}

Review the schema of cookie_consent for more customization options.

Error Pages

Error page Description
forbidden Access Denied: The user's IP address is not from the United States.

Error page content can include full HTML markup, including CSS and JavaScript. Avoid bloating the page with unnecessary resources, as it will affect the page load time.

Note: the Site product restricts access to visitors with IP addresses from the United States only. Traffic from IP addresses outside the U.S. is not permitted.

Example
{
 ...
 "layout_configuration": { ... },
 "analytics": { ... },
 "error_pages": {
 "forbidden": {
 "page_content": "<!DOCTYPE html><html lang=\"en\"><head><meta charset=\"UTF-8\"><meta name=\"viewport\" content=\"width=device-width,initial-scale=1\"><title>Access Restricted</title><style>body{font-family:Arial,sans-serif;background-color:#f4f4f4;text-align:center;padding:50px}.container{background-color:#fff;margin:auto;width:60%;padding:20px;box-shadow:0 4px 8px rgba(0,0,0,.1)}h1{color:#333}p{color:#666}a{color:#007bff;text-decoration:none}a:hover{text-decoration:underline}</style></head><body><div class=\"container\"><h1>Access Restricted</h1><p>Sorry, this content is not available in your region.</p><p>Your IP address has been identified as not originating from the United States. For compliance reasons, we cannot grant access to users outside this region.</p><p>If you believe you have received this message in error, please contact support atsupport@example.com.</p></div></body></html>"
 }
 }
}
(IMPORTANT) Custom Domains

When you change error_pages in the Site configuration, remember to sync the Site deployments.

  • Register Configuration with error_pages configuration.
  • Deploy Configuration to the distribution network.
  • Synchronize custom Site.

Open Graph Protocol

Site provides a way to define OGP tags inside the Site configuration. We follow for the most part with slight modifications. Namely:

  • og:type can only be set to website as is required.
  • og:description is a required parameter.
  • og:locale can only be set to en_US and is required
  • og:site_name is required for ANY website.

In the original OGP these fields are optional. For a configuration example navigate to a request payload example named "Open Graph Tags".

Best Practices for OGP Images
  • Aspect Ratio: The most widely recommended aspect ratio for OG images is 1.91:1. This ratio is optimal for platforms like Facebook, LinkedIn, and Twitter.
  • Dimensions:
  • Minimum Size: At minimum, your image should be 600 x 315 pixels (width x height). However, this is quite small and might not look great on high-resolution displays.
  • Optimal Size: A more commonly recommended size is 1200 x 630 pixels. This size tends to work well on most social networks and provides a good balance between file size and image quality.
  • Maximum Size: For some platforms like Facebook, the maximum image size can be up to 4096 x 4096 pixels, but such large images are rarely necessary and can increase page load times.
  • File Size: Keep an eye on the image file size. It's generally recommended to keep it under 300 KB to ensure fast loading times, as large images can slow down your page's performance.
  • File Type: Use JPEG for photographic images to save bandwidth, or PNG for images with text, logos, or simple graphics where clarity is important.

Path Mappings

Path mappings can be defined in the flow configuration along with layout configuration.

Path mappings allow you to define a set of rules that will be applied to the behavior of the Site when the certain URL path is provided. If the URL path matches the rule, the user will be redirected to the specified URL path. Request URL attributes such as query parameters will be preserved, but are not allowed to be defined in source path.

Note: Requests without Host header provided will not be eligible for a proper redirect response. As those requests will be considered malicious.

Path mappings configuration resides under path_mapping key in the flow configuration.

Examples

The redirect response example (the actual response may vary):

HTTP/2 302
server: CloudFront
date: Wed, 19 Jul 2023 04:21:00 GMT
content-length: 75
cache-control: public, max-age=86400, immutable
location: 

* Connection #0 to host staircase.co left intact
<!DOCTYPE html><html><body><p>You are being redirected...</p></body></html>

Take a closer look at Cache-Control. The maximum caching age value is set by the server and cannot be changed. The server will direct the viewer to cache the response for 24 hours.

Validation rules

For the URL path:

  • Must not contain leading or trailing slashes. E.g., /about-us/ must be corrected to about-us.
  • Must be already URL encoded. E.g., about us must be corrected to about%20us.
  • Must not contain anything other than alphanumeric characters, forward slash, period, and dash. It should match ^[a-z0-9]+([./-][a-z0-9]+)*$ regular expression.
  • Must not contain query parameters. E.g., about-us?utm_source=google must be corrected to about-us.

For the complete URL:

  • Must contain the URL schema. E.g., example.staircase.co must be corrected to ``.
  • Must not contain query parameters. E.g., must be corrected to.
  • Must not contain fragment identifiers. E.g., must be corrected to.
Use cases
Internal redirects

Redirect to a different URL on the same domain name.

Problem statement

We need to redirect all requests from the old pricing.html page to the new pricing page located at a different URL path, ensuring this redirection is permanent.

Configuration
{
 ...
 "layout_configuration": { ... },
 "analytics": { ... },
 "path_mappings": [
 {
 "from_path": "pricing.html",
 "to_path": "pricing"
 },
 {
 "from_path": "legal-terms.html",
 "to_path": "legal"
 }
 ]
}

We have added a new path mapping rule to the flow configuration, which will redirect all requests from pricing.html to pricing path.

External redirects

Redirect to a different URL on a different domain name.

Problem statement

We would like to move part of the existing application, to a completely new site configuration, under the different domain name. It's currently hosted on and we would like to move it to.

Configuration
{
 ...
 "layout_configuration": { ... },
 "analytics": { ... },
 "path_mappings": [
 {
 "from_path": "exchange",
 "to_path": ""
 }
 ]
}

We have added a new path mapping rule to the flow configuration, which will redirect all requests from exchange to `` path.

Notes
Custom Domains

When you change path_mapping in the Site configuration, remember to sync the Site deployments.

  • Register Configuration with path_mappings configuration.
  • Deploy Configuration to the distribution network.
  • Synchronize custom Site.

Custom Authentication

Site provides a way to manage the authentication of the user using custom console app. Authentication requirement can be defined in the Site configuration as following using authentication_action.

Communication
Query Parameters

The following parameters are loaded

Parameter Description
next_console_app_configuration_id The next console app configuration that should be loaded on Site, once the user was authenticated
authentication_action Authentication intent defined in the Site configuration or requested by another console app via the Site Event.
authentication_state Authentication state key. A short random string generated by Site, the Authentication app is expected to put this key in the redirect URLs for SignUp and Sign In by SSO authentication flows
authentication_origin Authentication origin. The current Site URL instantiating the authentication flow.
Events

The following event is expected to be emitted by the custom console app to the Site.

{
 "$schema": "",
 "type": "object",
 "properties": {
 "listener": {
 "type": "string",
 "description": "Site product identifier.",
 "enum": [
 "e9cc145f-9d03-422e-ba71-1852885998e6"
 ]
 },
 "authentication_completed": {
 "type": "boolean",
 "description": "Describes whether the authentication flow has been completed.",
 "enum": [true]
 },
 "next_console_app_configuration_id": {
 "type": "string",
 "description": "Describes the console app configuration. Tells the Site to load an app marked by this field."
 },
 "auth": {
 "type": "object",
 "description": "What authentication context screen to load.",
 "properties": {
 "access_token": {"type": "string"},
 "id_token": {"type": "string"},
 "refresh_token": {"type": "string"}
 }
 }
 },
 "required": [
 "listener",
 "next_console_app_configuration_id",
 "auth",
 "authentication_completed"
 ]
}
Cookies

When the user is redirected back to site after Sign In by SSO or Sign Up authentication flow, site instructs browser to store a cookie named accessToken with the value of the access token provided in the URL hash. e.g., when visiting site with ``, the Site will instruct user's browser engine to store a cookie named accessToken with a value 1234.

Additionally, cookie will have the following attributes:

  • Domain – the domain name will be bound to the environment FQDN currently serving the backend APIs. e.g., production.staircaseapi.com
  • Path – the path will be bound to the root path /.
  • Secure – the cookie will be marked as secure to be transmitted to HTTPS origins exclusively.
  • HttpOnly – the cookie will not be accessible via JavaScript. It can only by the CDN request interceptor (CloudFront functions), or an API accessible under the same domain name.
  • SameSite – the value will be set to None to avoid improper cookie setting given the iframe context.
  • Expires – the value will be set to expire in 6 hours from when the request has been made.

Currently, the __sc.acact cookie (represent the access token) set by site is considered as a third-party cookie, so you must apply caution when using API calls for authentication.

Example
{
 "authentication": {
 "enabled": true,
 "show_authentication_on_load": false,
 "console_app_configuration": { ... }
 }
 "layout_configuration": {
 "main": {
 ...
 "console_app_configurations": [
 {
 "console_app_configuration_id": "6374c7f8-13fa-454a-8587-bd2972434bbb",
 "temporary__console_app_url": "/6374c7f8-13fa-454a-8587-bd2972434bbb-copy34/",
 "authentication_action": "signin",
 "url_suffix": "/conversations"
 }
 ]
 }
 }
}

Before accessing /conversations the user, if not already authenticated, will be redirected to the /signin path and the custom console app will be loaded for authentication.

Advanced
State Exchange

Custom authentication apps should utilize authentication_state to provide smooth user experience.

Upon loading in an iframe, the app receives a query parameter: authentication_state, a short string of random characters. It's crucial to retain the authentication state, particularly when the authentication flow is interrupted by external redirections. Common scenarios include Sign Up processes, and authentications via SSO providers like Google, Amazon, or Facebook. The app should provider users with a link for redirection whenever necessary based on the authentication scenario.

The Sign Up process is notable as it requires redirection from an email link for account activation.

The site expects the "return" of the state key in the URL hash.

Example
<!-- The app is initially loaded within an iframe, with the authentication_state parameter -->
<iframe src="" width="100%" height="500"></iframe>

<!-- A redirection occurs during the authentication flow for Google login -->
Login using Google

In this example:

  • The app is loaded in an iframe and receives the authentication_state parameter.
  • During the authentication flow, a redirection for Google login is required. The user is provided a link to login via Google.
  • Upon clicking the link, the user completes the Google login process.
  • The user is redirected back to test.staircase.co with the URL hash #state=p1d048R.
  • The site, having associated this state with the data in local storage, uses it to load the most recently used console app.

This scenario emphasizes the importance of managing the authentication_state parameter effectively to maintain a smooth user experience in cases involving external redirections like authentication via SSO.

Soft Authentication

Everything described above is considered as a soft authentication. It does force authentication on the user, but it does not validate the user's identity. The user can easily bypass the authentication. Soft authentication is useful for when it's not required to validate the user's identity.

Authorization

Forced validation cannot be achieved via the Site configuration. There will always be a way to bypass the authentication, instead apps must apply the Cookie validation logic to ensure the user is authenticated. The cookie validation can simply be achieved by validating the JWT token stored in the __sc.acact cookie, which represent access token from Access. If the app has an API it communicates with to retrieve the data that should not be generally available, the API must implement the access token validation logic to ensure the user is authenticated. The Site product enables such functionality by setting HttpOnly cookies accessible to every API that the console app consumes.

Console App and Site Communications

The Site allows two-way communication between the Site and the Apps using postMessage method.

Console App to Site

Embedded Apps can communicate with the Site using window.parent.postMessage(payloadObject, "*");. postMessage was introduced to eliminate API calls from the Apps to Site endpoints. A unit of communication is a "message", which in itself is a JavaScript object with a required property listener. The value for the listener must correspond to the Site product identifier.

Fact: Site product identifier is e9cc145f-9d03-422e-ba71-1852885998e6

The list of events accepted by Site is described below.

Relocate the User
{
 "$schema": "",
 "type": "object",
 "properties": {
 "listener": {
 "type": "string",
 "description": "Site product identifier.",
 "enum": [
 "e9cc145f-9d03-422e-ba71-1852885998e6"
 ]
 },
 "relocation_action": {
 "type": "string",
 "description": "Describes the action to be taken by the Site.",
 "enum": [
 "REPLACE_CURRENT_URL",
 "OPEN_NEW_TAB",
 "OPEN_DEFAULT"
 ]
 },
 "relocation_url": {
 "type": "string",
 "description": "The URL to be loaded by the Site."
 }
 },
 "required": [
 "listener",
 "relocation_action",
 "relocation_url"
 ]
}
Toggle Popup

Note: layout_configuration should contain popup definition for the toggle to work.

{
 "$schema": "",
 "type": "object",
 "properties": {
 "listener": {
 "type": "string",
 "description": "Site product identifier.",
 "enum": [
 "e9cc145f-9d03-422e-ba71-1852885998e6"
 ]
 },
 "style": {
 "type": "object",
 "description": "Styling attributes. Standard CSS attributes.",
 "additionalProperties": {
 "type": "string"
 }
 },
 "showPopup": {
 "type": "boolean",
 "description": "Marks the popup state. Use `true` – to show, `false` – to hide popup."
 }
 },
 "required": [
 "listener",
 "style",
 "showPopup"
 ]
}
Load Authentication Page
{
 "$schema": "",
 "type": "object",
 "properties": {
 "listener": {
 "type": "string",
 "description": "Site product identifier.",
 "enum": [
 "e9cc145f-9d03-422e-ba71-1852885998e6"
 ]
 },
 "auth_screen": {
 "type": "string",
 "description": "What authentication context screen to load.",
 "enum": [
 "signin",
 "signup",
 "forgot-password",
 "forgot-password-update"
 ]
 }
 },
 "required": [
 "listener",
 "auth_screen"
 ]
}

The feature can also be accessed via the configuration via authentication_action field under layout_configuration.main.console_app_configurations[*].

Logout the User

Note: You can define logout_url under layout_configuration.authentication to redirect the user to the desired URL after the authentication reset.

{
 "$schema": "",
 "type": "object",
 "properties": {
 "listener": {
 "type": "string",
 "description": "Site product identifier.",
 "enum": [
 "e9cc145f-9d03-422e-ba71-1852885998e6"
 ]
 },
 "logout": {
 "type": "boolean",
 "description": "Whether to logout the user. Can only be `true`.",
 "enum": [
 true
 ]
 }
 },
 "required": [
 "listener",
 "logout"
 ]
}
Load Console App

Note: console_app_configuration_id should be present among console app configurations registered for the active flow configuration, and not just any console app configuration identifier.

{
 "$schema": "",
 "type": "object",
 "properties": {
 "listener": {
 "type": "string",
 "description": "Site product identifier.",
 "enum": [
 "e9cc145f-9d03-422e-ba71-1852885998e6"
 ]
 },
 "console_app_configuration_id": {
 "type": "string",
 "description": "Describes the console app configuration. Tells the Site to load an app marked by this field."
 }
 },
 "required": [
 "listener",
 "console_app_configuration_id"
 ]
}
Change Browser Tab URL

Note: url_suffix property should be a path, not a full URL.

{
 "$schema": "",
 "type": "object",
 "properties": {
 "listener": {
 "type": "string",
 "description": "Site product identifier.",
 "enum": [
 "e9cc145f-9d03-422e-ba71-1852885998e6"
 ]
 },
 "url_suffix": {
 "type": "string",
 "description": "URL to be set in user's browser tab."
 }
 },
 "required": [
 "listener",
 "url_suffix"
 ]
}

Warning: This feature is exclusive to site configurations with a single console app configuration.

Send Custom Tracking Event

Sends a custom tracking event to the analytics provider. Right now only Google Tag Manager and Facebook Pixel are supported. It is recommended to use Google Tag Manager and manage data destinations from there, including Facebook

Note: This will work only if the analytics configuration is present in the flow configuration.

{
 "$schema": "",
 "type": "object",
 "properties": {
 "listener": {
 "type": "string",
 "description": "Site product identifier.",
 "enum": [
 "e9cc145f-9d03-422e-ba71-1852885998e6"
 ]
 },
 "externalFeedbackProvider": {
 "type": "string",
 "enum": ["pixel", "gtm"]
 },
 "type": {
 "type": "string",
 "example": "trackCustom"
 },
 "action": {
 "type": "string"
 },
 "data": {
 "type": "object"
 }
 },
 "required": [
 "listener",
 "externalFeedbackProvider",
 "action",
 "data"
 ]
}
Restyle Console App
{
 "$schema": "",
 "type": "object",
 "properties": {
 "listener": {
 "type": "string",
 "description": "Site product identifier.",
 "enum": [
 "e9cc145f-9d03-422e-ba71-1852885998e6"
 ]
 },
 "style": {
 "type": "object",
 "additionalProperties": true,
 "description": "Apply different than original styles dynamically using a set of key-value pairs where the keys are CSS properties"
 },
 "target": {
 "type": "string",
 "description": "A site component placeholder, which requires a change in styling.",
 "enum": ["header", "left_sidebar", "right_sidebar", "footer", "hero", "main"]
 }
 },
 "required": [
 "listener",
 "style",
 "target"
 ]
}
Dynamically Resizing Main Layout

In order to keep the footer on the bottom of the page, the main layout height should be adjusted dynamically. To its dynamic height.

The following example demonstrates how to use ResizeObserver to monitor document height changes, and send a message to the Site to adjust the height of the main layout.

const emitResizeSelfDimensions = ({height}) => {
 const resizeMeEvent = {
 listener: "e9cc145f-9d03-422e-ba71-1852885998e6",
 style: {height},
 target: "main"
 };
 window.parent.postMessage(resizeMeEvent, '*');
}

const resizeObserver = new ResizeObserver(
 entries => {
 for (let entry of entries) {
 const newHeight = entry.contentRect.height;
 emitResizeSelfDimensions({height: newHeight});
 }
 }
)

resizeObserver.observe(document.body)

Important: Site automatically applies margin-top and z-index for the header, so it's kept on top while scrolling.

Pass on the Data

When the payload property is passed together with direction or console_app_configuration_id fields, Site converts that value into the URL-encoded string and passes it to the console app configuration as a query parameter.

{
 "$schema": "",
 "type": "object",
 "properties": {
 "listener": {
 "type": "string",
 "description": "Site product identifier.",
 "enum": [
 "e9cc145f-9d03-422e-ba71-1852885998e6"
 ]
 },
 "console_app_configuration_id": {
 "type": "string",
 "description": "Describes the console app configuration. Tells the Site to load an app marked by this field."
 },
 "direction": {
 "type": "string",
 "description": "Describes the direction of the flow. Tells the Site what to load next.",
 "enum": ["backward", "forward"]
 },
 "payload": {
 "type": "object",
 "additionalProperties": {
 "type": "string"
 }
 }
 },
 "required": [
 "listener"
 ]
}
Refresh access and ID tokens

Site allows refreshing the access and ID tokens by sending a message to the Site if refresh token is persisted. Note, that currently refresh token is generated by Access only for email-password flow and is not provided for SSO. If your application uses custom auth app, that app have to send refresh token to the Site

{
 "$schema": "",
 "type": "object",
 "properties": {
 "listener": {
 "type": "string",
 "description": "Site product identifier.",
 "enum": [
 "e9cc145f-9d03-422e-ba71-1852885998e6"
 ]
 },
 "eventType": {
 "type": "string",
 "description": "Event type.",
 "enum": [
 "refreshAccessToken"
 ]
 }
 },
 "required": [
 "listener",
 "eventType"
 ]
}
Data-driven Site Flow

If none of console_app_configuration_id or direction were provided, the Site will treat the flow as conditionally driven. It will go through every console app configuration until it matches provided data to a specified condition.

Site to Console App

Embedded Apps can listen to the Site event using window.addEventListener. In the case of Site to Console App communication the value for the listener corresponds to the console application configuration receiving the message.

Every message sent by the Site to the Console App has a fixed structure.

{
 "$schema": "",
 "type": "object",
 "properties": {
 "listener": {
 "type": "string",
 "description": "Console application configuration identifier."
 },
 "eventType": {
 "type": "string",
 "description": "Describes the event type that has occurred.",
 "enum": [
 "main_app_change"
 ]
 },
 "eventPayload": {
 "type": "object",
 "description": "Event payload. Varies depending on the event type."
 }
 },
 "required": [
 "listener",
 "eventType"
 ]
}
The Main Console App Has Changed

The current main application configuration has changed to a different one.

Warning: When a non-main console application configuration with inherit_main_url: true gets initialized, it is not guaranteed that the event will be emitted to the console application through the Site. Instead, the console application can rely on main_url_path passed as a query parameter when loading the console application. Same goes for is_authenticated

{
 "$schema": "",
 "type": "object",
 "properties": {
 "listener": {
 "type": "string",
 "description": "Console application configuration identifier."
 },
 "eventType": {
 "type": "string",
 "description": "Describes the event type that has occurred.",
 "enum": ["main_app_change"]
 },
 "eventPayload": {
 "type": "object",
 "description": "Event payload. Can contain additional properties depending on the `change_reload_url_params` definition in the console app configuration.",
 "required": ["console_app_configuration_id", "is_authenticated"],
 "properties": {
 "main_url_path": {
 "type": "string",
 "description": "URL path of the main console app configuration. Provided if `inherit_url_path` is enabled." 
 },
 "console_app_configuration_id": {
 "type": "string",
 "description": "Console app configuration identifier of the switched app."
 },
 "is_authenticated": {
 "type": "boolean",
 "description": "Correlation flag. Indicates whether the user is authenticated or not."
 }
 }
 }
 },
 "required": [
 "listener",
 "eventType",
 "eventPayload"
 ]
}

Warning: Do not use is_authenticated flag for authorization purposes. It's only meant to be used to correlate the state between site and console applications.

Ratio Based Application Loading

Main console application configuration can be configured to load different applications based on the ratio. The main use-case for the ratio based application loading is A/B testing on the level of the application configuration.

When rendering such application, the Site will randomly select one of the application configurations (defined in ratio_based_console_app_configurations under the main application configuration) based on the ratio defined in the configuration. Site uses weighted random selection to determine which application configuration to load.

Note: Defining the ratio based applications still requires defining the console_app_configuration_id and temporary__console_app_url properties.

Validation Rules

The following rules are designed to ensure the ratio based application loading is configured correctly:

  • ratio_based_console_app_configurations must contain the original application configuration in the list of the alternative application configurations.
  • Each application configuration under ratio_based_console_app_configurations must contain the ratio.
  • The ratio for each application configuration must be a positive number greater than 0.0 and less than 1.0.
  • The sum of all ratios must be equal to 1.0.

Navigate to endpoint request payload Flow with A/B Applications example to see the example of the ratio based application site configuration.

Conditional flows

Conditional flows are a particular way of Site flows where the logic of which App should be displayed depends on the data passed in postMessage. First, the Site configuration should contain condition property set on all Apps except the first one. An example:

...
"console_app_configurations": 
 {
 "console_app_configuration_id": "6374c7f8-13fa-454a-8587-bd2972434bbb",
 "temporary__console_app_url": "",
 "url_suffix": "/welcome"
 },
 {
 "console_app_configuration_id": "6374c7f8-13fa-454a-8587-bd2972434ccc",
 "temporary__console_app_url": "",
 "url_suffix": "/option-one",
 "condition": {
 "path": "optionSelected",
 "operation": "equal",
 "value": "1"
 }
 },
 {
 "console_app_configuration_id": "6374c7f8-13fa-454a-8587-bd2972434ddd",
 "temporary__console_app_url": "",
 "url_suffix": "/option-two",
 "condition": {
 "path": "optionSelected",
 "operation": "equal",
 "value": "2"
 }
 }
}
...

When the Site is opened, the /welcome page will be displayed. Let's assume that /welcome page contains some form and, depending on the value selected by the User, one of the other two Apps should be displayed. After the User submits the value on /welcome App, the App invokes window.parent.postMessage({"listener": "e9cc145f-9d03-422e-ba71-1852885998e6", "payload": {"optionSelected": submitedValue}}, "*"); with submitedValue. The Site receives the payload, checks for the conditions and if the submitedValue is equal to 1 displays /option-one App or /option-two if the submitedValue is equal to 2. The Site passes to the App optionSelected as a query parameter, for example, if submitedValue was equal to 2 it will load the App like ``.

Note:

  • if the condition passed in postMessage payload does not match any of the conditions in the Site configuration, the User will remain on the same App
  • if multiple Apps conditions match the passed payload, the first one will be displayed
  • the Site does not do casting when comparing conditions and treats all values as strings
Using complex conditions

The Site allows conditions to be complex using and and or operations. Example of such Site configuration:

...
{
 "console_app_configuration_id": "6374c7f8-13fa-454a-8587-bd2972434ddd",
 "temporary__console_app_url": "",
 "url_suffix": "/option-two",
 "condition": {
 "and": [
 {
 "path": "optionSelected",
 "operation": "equal",
 "value": "1"
 },
 {
 "path": "userAge",
 "operation": "greatherThan",
 "value": "21"
 }
 }
 }
}
...

In this case, conditions are matched if only both optionSelected equals 1 and userAge is greater than 21. Similarly, using or operator instead of and will be matched if one of the conditions is meet.

User State & Workflows

Warning: Workflows can only be used for flows with authentication enabled. If the site visitor is not authenticated and tries entering the workflow, they will be directed to the authentication page.

Workflows help in consistently saving user state data between various console app settings.

A workflow is essentially a blueprint detailing the user's journey. You have the option to set up to 10 distinct workflows for each site configuration. It's crucial that every workflow is marked with a unique identifier and its corresponding path.

When a user wraps up a state (in this case, a console app), the app then signals the completion to the Site. Subsequently, the Site initiates the loading of the forthcoming state.

Should a user return to the site, the Site will automatically load their most recent state, presenting it directly to the user.

Defining a Workflow

The framework to define a workflow resemble the [States Language seen in AWS Step Functions. However, it's a more condensed structure.

Key distinctions include:

  • The Type property of a State can solely be App.
  • The Resource pertains to a console app configuration ID.
  • Every States should possess a distinctive Resource property.
Events for Workflows
State Done

Tells site to load the Next app in the workflow. If the current state is terminal (End: true) nothing is changed.

{
 "$schema": "",
 "type": "object",
 "properties": {
 "listener": {
 "type": "string",
 "description": "Site product identifier.",
 "enum": [
 "e9cc145f-9d03-422e-ba71-1852885998e6"
 ]
 },
 "state_done": {
 "type": "boolean",
 "description": "Represents the state completion by the user. Can only be `true`.",
 "enum": [
 true
 ]
 }
 },
 "required": [
 "listener",
 "state_done"
 ]
}
Switch Workflow

Tells site to load to switch from one workflow to a different one. If the workflow specified does not exist – nothing will change.

{
 "$schema": "",
 "type": "object",
 "properties": {
 "listener": {
 "type": "string",
 "description": "Site product identifier.",
 "enum": [
 "e9cc145f-9d03-422e-ba71-1852885998e6"
 ]
 },
 "workflow_id": {
 "type": "string",
 "description": "Represents the workflow identifier."
 }
 },
 "required": [
 "listener",
 "workflow_id"
 ]
}
URL Paths & Workflow

Each workflow is tied to a specific path. When a user accesses a URL that matches this path, they are directed into that particular workflow.

Note that a workflow will absorb all url_suffixes defined for states in Resource. This implies that if a url_suffix is set, it must be distinctly different from other url_suffix definitions.

See an example for a workflow definition in an example named "Stateful".

Important: Modify identifiers for both site and console app configurations before using examples below.

Custom domain for backend and console apps

The Site product allows you to use a custom domain for the backend and console apps. To use a custom domain you need to add backend.domain_name to your site configuration. Site will use this domain to load the console apps and to make requests to the backend.

Example:

{
 "backend": {
 "domain_name": "api.example.com"
 }
}
Request
application/json
{
  "site_flow_configuration_id": "345e8795-eb14-24t3-a2-aaaa174000",
  "site_flow_product_id": "345e8795-eb14-24t3-a2-aaaa174001",
  "layout_configuration": {
    "authentication": {
      "enabled": false
    },
    "left_sidebar": {
      "console_app_configuration_id": "345e8795-eb14-24t3-a2-aaaa174002",
      "temporary__console_app_url": "/left-sidebar-url",
      "style": {
        "width": "250px",
        "height": "100%"
      }
    },
    "header": {
      "console_app_configuration_id": "345e8795-eb14-24t3-a2-aaaa174003",
      "temporary__console_app_url": "/header-url",
      "style": {
        "width": "100%",
        "height": "50px"
      }
    },
    "hero": {
      "console_app_configuration_id": "345e8795-eb14-24t3-a2-aaaa174013",
      "temporary__console_app_url": "/hero-url",
      "style": {
        "width": "100%",
        "height": "50px"
      }
    },
    "footer": {
      "console_app_configuration_id": "345e8795-eb14-24t3-a2-aaaa174004",
      "temporary__console_app_url": "/footer-url",
      "style": {
        "width": "100%",
        "height": "30px"
      }
    },
    "main": {
      "title": "My website",
      "style": {
        "width": "100%",
        "height": "80px",
        "padding": "10px 20px"
      },
      "rendering_type": "flow",
      "console_app_configurations": [
        {
          "title": "Credentials",
          "console_app_configuration_id": "345e8795-eb14-24t3-a2-aaaa174006",
          "temporary__console_app_url": "/app1",
          "url_suffix": "/credentials"
        },
        {
          "title": "Configuration Settings",
          "console_app_configuration_id": "345e8795-eb14-24t3-a2-aaaa174007",
          "temporary__console_app_url": "/app2",
          "url_suffix": "/configuration-settings"
        },
        {
          "title": "Partner Options",
          "console_app_configuration_id": "345e8795-eb14-24t3-a2-aaaa174008",
          "temporary__console_app_url": "/app3",
          "url_suffix": "/partner-options"
        }
      ]
    }
  }
}
Response
application/json

A 400 status code occurs when some of provided request parameters is invalid.

{
  "error": {
    "message": "Bad Request",
    "reason": "Provided token is not valid."
  }
}
Request bodyapplication/json
10 fields
FieldTypeDescription
site_flow_configuration_idstringThe ID of the site configuration.Example 15a820a6-cac9-4b-a7b1-d364b26d7f69
site_flow_product_idstringThe ID of the site flow product.Example 6c5f392f-1ee7-41-9a3d-3b2d08b954fd
analyticsobjectAnalytics configuration.
google_analytics_tagstringGoogle Analytics tag.Example G-A1BCD2EF3H
google_analytics_server_urlstringGoogle Analytics Container Server URL.Example https://ss-tagging.moore-dev.staircaseapi.com
advertiser_correlation_keystringAdvertiser correlation key.utm_sourceExample utm_source
mouseflow_project_identifierstringMouseflow project identifier.Example 0710f46a-9441-11ee-8acf-6ae56c4923a6
google_analytics_tracking_parametersstring[]List of GA custom tracking parameters.
facebook_pixel_idstringFacebook pixel ID.Example 1234567890123456
facebook_pixel_domain_verificationstringFacebook tracking domain name verification to be put in meta head tag.Example 1234567890123456
google_tag_manager_idstringGoogle Tag Manager ID.Example GTM-123456
layout_configurationobjectSite layout configuration.
faviconobjectFavicon schema.
blob_idstringBlob identifier from Persistence.Example 01H0JANT98QNERDF7EV0S2JJJJ
blob_urlrequiredstringBlob URL.Example https://cdn.edge.staircaseapi.com/media/si_oi9ju8hy7t627892iju4872h4ucnhwebf32eicmcmji349mmc33im3/favicon-dark.ico
authenticationobjectAuthentication schema.
enabledbooleanWhether authentication is enabled.Example true
show_authentication_on_loadbooleanShould the authentication immediately on site load, default TrueExample true
console_app_configurationobject
console_app_configuration_idstringThe ID of the console app configuration.Example 4ed4be4e-4c4e-42-af36-7928d3e1c9ac
temporary__console_app_urlstring (uri)The temporary URL of the console app.Example /app/4ed4be4e-4c4e-4f72-af36-7928d3e1c9ac
styleobject
style_mobileobject
titlestringThe title of the app.Example My App
logout_urlstring (uri)The logout URL. The user will land on this page when logout is requested by the app.Example https://staircase.co
access_app_namestringAccess application name. This will be passed to custom auth app via query arguments. Required, when custom auth app is enabled.Example Staircase
popupobjectPopup layout schema.
console_app_configuration_idstringThe ID of the console app configuration.Example 4ed4be4e-4c4e-42-af36-7928d3e1c9ac
temporary__console_app_urlstring (uri)The temporary URL of the console app.Example /app/4ed4be4e-4c4e-4f72-af36-7928d3e1c9ac
styleobject
widthstringThe width of an element.Example 100%
heightstringThe height of an element.Example 50px
paddingstringThe padding of an element.Example 10px 20px
marginstringThe margin of an element.Example 5px
displaystringDisplay value of element.flexnoneExample flex
style_mobileobject
widthstringThe width of an element.Example 100%
heightstringThe height of an element.Example 50px
paddingstringThe padding of an element.Example 10px 20px
marginstringThe margin of an element.Example 5px
displaystringDisplay value of element.flexnoneExample flex
on_change_reloadstring[]The locations to reload when the app changes.
inherit_url_pathbooleanPass url_path from Site to the layout placeholder app.Example true
left_sidebarobjectLeft sidebar layout schema.
console_app_configuration_idstringThe ID of the console app configuration.Example 4ed4be4e-4c4e-42-af36-7928d3e1c9ac
temporary__console_app_urlstring (uri)The temporary URL of the console app.Example /app/4ed4be4e-4c4e-4f72-af36-7928d3e1c9ac
styleobject
widthstringThe width of an element.Example 100%
heightstringThe height of an element.Example 50px
paddingstringThe padding of an element.Example 10px 20px
marginstringThe margin of an element.Example 5px
displaystringDisplay value of element.flexnoneExample flex
style_mobileobject
widthstringThe width of an element.Example 100%
heightstringThe height of an element.Example 50px
paddingstringThe padding of an element.Example 10px 20px
marginstringThe margin of an element.Example 5px
displaystringDisplay value of element.flexnoneExample flex
on_change_reloadstring[]The locations to reload when the app changes.
inherit_url_pathbooleanPass url_path from Site to the layout placeholder app.Example true
right_sidebarobjectRight sidebar layout schema.
console_app_configuration_idstringThe ID of the console app configuration.Example 4ed4be4e-4c4e-42-af36-7928d3e1c9ac
temporary__console_app_urlstring (uri)The temporary URL of the console app.Example /app/4ed4be4e-4c4e-4f72-af36-7928d3e1c9ac
styleobject
widthstringThe width of an element.Example 100%
heightstringThe height of an element.Example 50px
paddingstringThe padding of an element.Example 10px 20px
marginstringThe margin of an element.Example 5px
displaystringDisplay value of element.flexnoneExample flex
style_mobileobject
widthstringThe width of an element.Example 100%
heightstringThe height of an element.Example 50px
paddingstringThe padding of an element.Example 10px 20px
marginstringThe margin of an element.Example 5px
displaystringDisplay value of element.flexnoneExample flex
on_change_reloadstring[]The locations to reload when the app changes.
inherit_url_pathbooleanPass url_path from Site to the layout placeholder app.Example true
headerobjectHeader layout schema.
console_app_configuration_idstringThe ID of the console app configuration.Example 4ed4be4e-4c4e-42-af36-7928d3e1c9ac
temporary__console_app_urlstring (uri)The temporary URL of the console app.Example /app/4ed4be4e-4c4e-4f72-af36-7928d3e1c9ac
styleobject
widthstringThe width of an element.Example 100%
heightstringThe height of an element.Example 50px
paddingstringThe padding of an element.Example 10px 20px
marginstringThe margin of an element.Example 5px
displaystringDisplay value of element.flexnoneExample flex
style_mobileobject
widthstringThe width of an element.Example 100%
heightstringThe height of an element.Example 50px
paddingstringThe padding of an element.Example 10px 20px
marginstringThe margin of an element.Example 5px
displaystringDisplay value of element.flexnoneExample flex
on_change_reloadstring[]The locations to reload when the app changes.
inherit_url_pathbooleanPass url_path from Site to the layout placeholder app.Example true
heroobjectHero layout schema.
console_app_configuration_idstringThe ID of the console app configuration.Example 4ed4be4e-4c4e-42-af36-7928d3e1c9ac
temporary__console_app_urlstring (uri)The temporary URL of the console app.Example /app/4ed4be4e-4c4e-4f72-af36-7928d3e1c9ac
styleobject
widthstringThe width of an element.Example 100%
heightstringThe height of an element.Example 50px
paddingstringThe padding of an element.Example 10px 20px
marginstringThe margin of an element.Example 5px
displaystringDisplay value of element.flexnoneExample flex
style_mobileobject
widthstringThe width of an element.Example 100%
heightstringThe height of an element.Example 50px
paddingstringThe padding of an element.Example 10px 20px
marginstringThe margin of an element.Example 5px
displaystringDisplay value of element.flexnoneExample flex
on_change_reloadstring[]The locations to reload when the app changes.
inherit_url_pathbooleanPass url_path from Site to the layout placeholder app.Example true
footerobjectFooter layout schema.
console_app_configuration_idstringThe ID of the console app configuration.Example 4ed4be4e-4c4e-42-af36-7928d3e1c9ac
temporary__console_app_urlstring (uri)The temporary URL of the console app.Example /app/4ed4be4e-4c4e-4f72-af36-7928d3e1c9ac
styleobject
widthstringThe width of an element.Example 100%
heightstringThe height of an element.Example 50px
paddingstringThe padding of an element.Example 10px 20px
marginstringThe margin of an element.Example 5px
displaystringDisplay value of element.flexnoneExample flex
style_mobileobject
widthstringThe width of an element.Example 100%
heightstringThe height of an element.Example 50px
paddingstringThe padding of an element.Example 10px 20px
marginstringThe margin of an element.Example 5px
displaystringDisplay value of element.flexnoneExample flex
on_change_reloadstring[]The locations to reload when the app changes.
inherit_url_pathbooleanPass url_path from Site to the layout placeholder app.Example true
mainrequiredobjectMain layout schema.
styleobject
widthstringThe width of an element.Example 100%
heightstringThe height of an element.Example 50px
paddingstringThe padding of an element.Example 10px 20px
marginstringThe margin of an element.Example 5px
displaystringDisplay value of element.flexnoneExample flex
style_mobileobject
widthstringThe width of an element.Example 100%
heightstringThe height of an element.Example 50px
paddingstringThe padding of an element.Example 10px 20px
marginstringThe margin of an element.Example 5px
displaystringDisplay value of element.flexnoneExample flex
on_change_reloadstring[]The locations to reload when the app changes.
inherit_url_pathbooleanPass url_path from Site to the layout placeholder app.Example true
titlestringThe title of the app.Example My App
rendering_typestringRendering strategy applied to `console_app_configurations`.flowlistExample flow
console_app_configurationsarrayThe sequence of apps.
change_reload_url_paramsobjectDictionary of URL parameters that will be passed as URL query paramerters to `on_change_reload`. Maximum 3 properties can be added.
inherit_url_pathbooleanPass url_path from Site to the main app.Example true
path_mappingsarrayPath mappings configuration.
workflowsarrayWorkflows configuration.
error_pagesobjectError pages schema.
forbiddenobjectError page schema.
page_contentrequiredstringError page content in HTMLExample <h1>Oops! Something went wrong. Please, refresh or make sure you're accessing this site from the US.</h1>
cookie_consentobjectCookie consent schema.
popupobjectCookie consent popup schema.
titlestringCookie consent popup title.Example Cookie consent
short_textstringCookie consent popup short text.Example We use cookies to improve your experience on our website.
button_okstringCookie consent popup OK button text.Example OK
button_manage_preferencesstringCookie consent popup manage preferences button text.Example Manage preferences
preference_centerobjectCookie consent preference center schema.
button_save_preferencesstringCookie consent preference center save preferences button text.Example Save preferences
titlestringCookie consent preference center title.Example Cookie consent
privacy_policy_urlstring (uri)Privacy policy URL.Example https://www.staircase.co/privacy-policy
custom_cssstringCustom CSS for the cookie consent popup.Example body { background-color: #000; }
browser_cookie_domainstringBrowser cookie domain.Example staircase.co
browser_cookie_expiration_daysintegerCookie expiration in days.Example 365
open_graph_tagsobjectOpen Graphs tags schema.
titlerequiredstringOpen Graphs tags title.Example Staircase
descriptionrequiredstringOpen Graphs tags description.Example Staircase is a platform for building and deploying web applications.
imagerequiredstring (uri)Open Graphs tags image.Example https://cdn.edge.staircaseapi.com/media/si_oi9ju8hy7t627892iju4872h4ucnhwebf32eicmcmji349mmc33im3/favicon-dark.ico
typerequiredstringOpen Graphs tags type.websiteExample website
urlrequiredstring (uri)Open Graphs tags URL.Example https://www.staircase.co
site_namerequiredstringOpen Graphs tags site name.Example Staircase
localerequiredstringOpen Graphs tags locale.en_USExample en_US
backendobjectBackend configuration schema.
domain_namestringDomain name of the backend.Example service.staircase.co
Response 201application/json
10 fields

Success

FieldTypeDescription
site_flow_configuration_idstringThe ID of the site configuration.Example 15a820a6-cac9-4b-a7b1-d364b26d7f69
site_flow_product_idstringThe ID of the site flow product.Example 6c5f392f-1ee7-41-9a3d-3b2d08b954fd
analyticsobjectAnalytics configuration.
google_analytics_tagstringGoogle Analytics tag.Example G-A1BCD2EF3H
google_analytics_server_urlstringGoogle Analytics Container Server URL.Example https://ss-tagging.moore-dev.staircaseapi.com
advertiser_correlation_keystringAdvertiser correlation key.utm_sourceExample utm_source
mouseflow_project_identifierstringMouseflow project identifier.Example 0710f46a-9441-11ee-8acf-6ae56c4923a6
google_analytics_tracking_parametersstring[]List of GA custom tracking parameters.
facebook_pixel_idstringFacebook pixel ID.Example 1234567890123456
facebook_pixel_domain_verificationstringFacebook tracking domain name verification to be put in meta head tag.Example 1234567890123456
google_tag_manager_idstringGoogle Tag Manager ID.Example GTM-123456
layout_configurationobjectSite layout configuration.
faviconobjectFavicon schema.
blob_idstringBlob identifier from Persistence.Example 01H0JANT98QNERDF7EV0S2JJJJ
blob_urlrequiredstringBlob URL.Example https://cdn.edge.staircaseapi.com/media/si_oi9ju8hy7t627892iju4872h4ucnhwebf32eicmcmji349mmc33im3/favicon-dark.ico
authenticationobjectAuthentication schema.
enabledbooleanWhether authentication is enabled.Example true
show_authentication_on_loadbooleanShould the authentication immediately on site load, default TrueExample true
console_app_configurationobject
console_app_configuration_idstringThe ID of the console app configuration.Example 4ed4be4e-4c4e-42-af36-7928d3e1c9ac
temporary__console_app_urlstring (uri)The temporary URL of the console app.Example /app/4ed4be4e-4c4e-4f72-af36-7928d3e1c9ac
styleobject
style_mobileobject
titlestringThe title of the app.Example My App
logout_urlstring (uri)The logout URL. The user will land on this page when logout is requested by the app.Example https://staircase.co
access_app_namestringAccess application name. This will be passed to custom auth app via query arguments. Required, when custom auth app is enabled.Example Staircase
popupobjectPopup layout schema.
console_app_configuration_idstringThe ID of the console app configuration.Example 4ed4be4e-4c4e-42-af36-7928d3e1c9ac
temporary__console_app_urlstring (uri)The temporary URL of the console app.Example /app/4ed4be4e-4c4e-4f72-af36-7928d3e1c9ac
styleobject
widthstringThe width of an element.Example 100%
heightstringThe height of an element.Example 50px
paddingstringThe padding of an element.Example 10px 20px
marginstringThe margin of an element.Example 5px
displaystringDisplay value of element.flexnoneExample flex
style_mobileobject
widthstringThe width of an element.Example 100%
heightstringThe height of an element.Example 50px
paddingstringThe padding of an element.Example 10px 20px
marginstringThe margin of an element.Example 5px
displaystringDisplay value of element.flexnoneExample flex
on_change_reloadstring[]The locations to reload when the app changes.
inherit_url_pathbooleanPass url_path from Site to the layout placeholder app.Example true
left_sidebarobjectLeft sidebar layout schema.
console_app_configuration_idstringThe ID of the console app configuration.Example 4ed4be4e-4c4e-42-af36-7928d3e1c9ac
temporary__console_app_urlstring (uri)The temporary URL of the console app.Example /app/4ed4be4e-4c4e-4f72-af36-7928d3e1c9ac
styleobject
widthstringThe width of an element.Example 100%
heightstringThe height of an element.Example 50px
paddingstringThe padding of an element.Example 10px 20px
marginstringThe margin of an element.Example 5px
displaystringDisplay value of element.flexnoneExample flex
style_mobileobject
widthstringThe width of an element.Example 100%
heightstringThe height of an element.Example 50px
paddingstringThe padding of an element.Example 10px 20px
marginstringThe margin of an element.Example 5px
displaystringDisplay value of element.flexnoneExample flex
on_change_reloadstring[]The locations to reload when the app changes.
inherit_url_pathbooleanPass url_path from Site to the layout placeholder app.Example true
right_sidebarobjectRight sidebar layout schema.
console_app_configuration_idstringThe ID of the console app configuration.Example 4ed4be4e-4c4e-42-af36-7928d3e1c9ac
temporary__console_app_urlstring (uri)The temporary URL of the console app.Example /app/4ed4be4e-4c4e-4f72-af36-7928d3e1c9ac
styleobject
widthstringThe width of an element.Example 100%
heightstringThe height of an element.Example 50px
paddingstringThe padding of an element.Example 10px 20px
marginstringThe margin of an element.Example 5px
displaystringDisplay value of element.flexnoneExample flex
style_mobileobject
widthstringThe width of an element.Example 100%
heightstringThe height of an element.Example 50px
paddingstringThe padding of an element.Example 10px 20px
marginstringThe margin of an element.Example 5px
displaystringDisplay value of element.flexnoneExample flex
on_change_reloadstring[]The locations to reload when the app changes.
inherit_url_pathbooleanPass url_path from Site to the layout placeholder app.Example true
headerobjectHeader layout schema.
console_app_configuration_idstringThe ID of the console app configuration.Example 4ed4be4e-4c4e-42-af36-7928d3e1c9ac
temporary__console_app_urlstring (uri)The temporary URL of the console app.Example /app/4ed4be4e-4c4e-4f72-af36-7928d3e1c9ac
styleobject
widthstringThe width of an element.Example 100%
heightstringThe height of an element.Example 50px
paddingstringThe padding of an element.Example 10px 20px
marginstringThe margin of an element.Example 5px
displaystringDisplay value of element.flexnoneExample flex
style_mobileobject
widthstringThe width of an element.Example 100%
heightstringThe height of an element.Example 50px
paddingstringThe padding of an element.Example 10px 20px
marginstringThe margin of an element.Example 5px
displaystringDisplay value of element.flexnoneExample flex
on_change_reloadstring[]The locations to reload when the app changes.
inherit_url_pathbooleanPass url_path from Site to the layout placeholder app.Example true
heroobjectHero layout schema.
console_app_configuration_idstringThe ID of the console app configuration.Example 4ed4be4e-4c4e-42-af36-7928d3e1c9ac
temporary__console_app_urlstring (uri)The temporary URL of the console app.Example /app/4ed4be4e-4c4e-4f72-af36-7928d3e1c9ac
styleobject
widthstringThe width of an element.Example 100%
heightstringThe height of an element.Example 50px
paddingstringThe padding of an element.Example 10px 20px
marginstringThe margin of an element.Example 5px
displaystringDisplay value of element.flexnoneExample flex
style_mobileobject
widthstringThe width of an element.Example 100%
heightstringThe height of an element.Example 50px
paddingstringThe padding of an element.Example 10px 20px
marginstringThe margin of an element.Example 5px
displaystringDisplay value of element.flexnoneExample flex
on_change_reloadstring[]The locations to reload when the app changes.
inherit_url_pathbooleanPass url_path from Site to the layout placeholder app.Example true
footerobjectFooter layout schema.
console_app_configuration_idstringThe ID of the console app configuration.Example 4ed4be4e-4c4e-42-af36-7928d3e1c9ac
temporary__console_app_urlstring (uri)The temporary URL of the console app.Example /app/4ed4be4e-4c4e-4f72-af36-7928d3e1c9ac
styleobject
widthstringThe width of an element.Example 100%
heightstringThe height of an element.Example 50px
paddingstringThe padding of an element.Example 10px 20px
marginstringThe margin of an element.Example 5px
displaystringDisplay value of element.flexnoneExample flex
style_mobileobject
widthstringThe width of an element.Example 100%
heightstringThe height of an element.Example 50px
paddingstringThe padding of an element.Example 10px 20px
marginstringThe margin of an element.Example 5px
displaystringDisplay value of element.flexnoneExample flex
on_change_reloadstring[]The locations to reload when the app changes.
inherit_url_pathbooleanPass url_path from Site to the layout placeholder app.Example true
mainrequiredobjectMain layout schema.
styleobject
widthstringThe width of an element.Example 100%
heightstringThe height of an element.Example 50px
paddingstringThe padding of an element.Example 10px 20px
marginstringThe margin of an element.Example 5px
displaystringDisplay value of element.flexnoneExample flex
style_mobileobject
widthstringThe width of an element.Example 100%
heightstringThe height of an element.Example 50px
paddingstringThe padding of an element.Example 10px 20px
marginstringThe margin of an element.Example 5px
displaystringDisplay value of element.flexnoneExample flex
on_change_reloadstring[]The locations to reload when the app changes.
inherit_url_pathbooleanPass url_path from Site to the layout placeholder app.Example true
titlestringThe title of the app.Example My App
rendering_typestringRendering strategy applied to `console_app_configurations`.flowlistExample flow
console_app_configurationsarrayThe sequence of apps.
change_reload_url_paramsobjectDictionary of URL parameters that will be passed as URL query paramerters to `on_change_reload`. Maximum 3 properties can be added.
inherit_url_pathbooleanPass url_path from Site to the main app.Example true
path_mappingsarrayPath mappings configuration.
workflowsarrayWorkflows configuration.
error_pagesobjectError pages schema.
forbiddenobjectError page schema.
page_contentrequiredstringError page content in HTMLExample <h1>Oops! Something went wrong. Please, refresh or make sure you're accessing this site from the US.</h1>
cookie_consentobjectCookie consent schema.
popupobjectCookie consent popup schema.
titlestringCookie consent popup title.Example Cookie consent
short_textstringCookie consent popup short text.Example We use cookies to improve your experience on our website.
button_okstringCookie consent popup OK button text.Example OK
button_manage_preferencesstringCookie consent popup manage preferences button text.Example Manage preferences
preference_centerobjectCookie consent preference center schema.
button_save_preferencesstringCookie consent preference center save preferences button text.Example Save preferences
titlestringCookie consent preference center title.Example Cookie consent
privacy_policy_urlstring (uri)Privacy policy URL.Example https://www.staircase.co/privacy-policy
custom_cssstringCustom CSS for the cookie consent popup.Example body { background-color: #000; }
browser_cookie_domainstringBrowser cookie domain.Example staircase.co
browser_cookie_expiration_daysintegerCookie expiration in days.Example 365
open_graph_tagsobjectOpen Graphs tags schema.
titlerequiredstringOpen Graphs tags title.Example Staircase
descriptionrequiredstringOpen Graphs tags description.Example Staircase is a platform for building and deploying web applications.
imagerequiredstring (uri)Open Graphs tags image.Example https://cdn.edge.staircaseapi.com/media/si_oi9ju8hy7t627892iju4872h4ucnhwebf32eicmcmji349mmc33im3/favicon-dark.ico
typerequiredstringOpen Graphs tags type.websiteExample website
urlrequiredstring (uri)Open Graphs tags URL.Example https://www.staircase.co
site_namerequiredstringOpen Graphs tags site name.Example Staircase
localerequiredstringOpen Graphs tags locale.en_USExample en_US
backendobjectBackend configuration schema.
domain_namestringDomain name of the backend.Example service.staircase.co
Other responses

400422

GET /ordered-flows/{site_flow_configuration_id}

View Configuration

getAppConfiguration

View Configuration

Retrieves the definition.

Response
application/json

Success

{
  "site_flow_configuration_id": "345e8795-eb14-24t3-a2-aaaa174000",
  "site_flow_product_id": "345e8795-eb14-24t3-a2-aaaa174001",
  "layout_configuration": {
    "authentication": {
      "enabled": false
    },
    "left_sidebar": {
      "console_app_configuration_id": "345e8795-eb14-24t3-a2-aaaa174002",
      "temporary__console_app_url": "/left-sidebar-url",
      "style": {
        "width": "250px",
        "height": "100%"
      }
    },
    "header": {
      "console_app_configuration_id": "345e8795-eb14-24t3-a2-aaaa174003",
      "temporary__console_app_url": "/header-url",
      "style": {
        "width": "100%",
        "height": "50px"
      }
    },
    "hero": {
      "console_app_configuration_id": "345e8795-eb14-24t3-a2-aaaa174013",
      "temporary__console_app_url": "/hero-url",
      "style": {
        "width": "100%",
        "height": "50px"
      }
    },
    "footer": {
      "console_app_configuration_id": "345e8795-eb14-24t3-a2-aaaa174004",
      "temporary__console_app_url": "/footer-url",
      "style": {
        "width": "100%",
        "height": "30px"
      }
    },
    "main": {
      "title": "My website",
      "style": {
        "width": "100%",
        "height": "80px",
        "padding": "10px 20px"
      },
      "rendering_type": "flow",
      "console_app_configurations": [
        {
          "title": "Credentials",
          "console_app_configuration_id": "345e8795-eb14-24t3-a2-aaaa174006",
          "temporary__console_app_url": "/app1",
          "url_suffix": "/credentials"
        },
        {
          "title": "Configuration Settings",
          "console_app_configuration_id": "345e8795-eb14-24t3-a2-aaaa174007",
          "temporary__console_app_url": "/app2",
          "url_suffix": "/configuration-settings"
        },
        {
          "title": "Partner Options",
          "console_app_configuration_id": "345e8795-eb14-24t3-a2-aaaa174008",
          "temporary__console_app_url": "/app3",
          "url_suffix": "/partner-options"
        }
      ]
    }
  }
}
Parameters
1
ParameterTypeExampleDescription
site_flow_configuration_id required string path 15a820a6-cac9-4b-a7b1-d364b26d7f69 Site flow configuration ID.
Response 200application/json
10 fields

Success

FieldTypeDescription
site_flow_configuration_idstringThe ID of the site configuration.Example 15a820a6-cac9-4b-a7b1-d364b26d7f69
site_flow_product_idstringThe ID of the site flow product.Example 6c5f392f-1ee7-41-9a3d-3b2d08b954fd
analyticsobjectAnalytics configuration.
google_analytics_tagstringGoogle Analytics tag.Example G-A1BCD2EF3H
google_analytics_server_urlstringGoogle Analytics Container Server URL.Example https://ss-tagging.moore-dev.staircaseapi.com
advertiser_correlation_keystringAdvertiser correlation key.utm_sourceExample utm_source
mouseflow_project_identifierstringMouseflow project identifier.Example 0710f46a-9441-11ee-8acf-6ae56c4923a6
google_analytics_tracking_parametersstring[]List of GA custom tracking parameters.
facebook_pixel_idstringFacebook pixel ID.Example 1234567890123456
facebook_pixel_domain_verificationstringFacebook tracking domain name verification to be put in meta head tag.Example 1234567890123456
google_tag_manager_idstringGoogle Tag Manager ID.Example GTM-123456
layout_configurationobjectSite layout configuration.
faviconobjectFavicon schema.
blob_idstringBlob identifier from Persistence.Example 01H0JANT98QNERDF7EV0S2JJJJ
blob_urlrequiredstringBlob URL.Example https://cdn.edge.staircaseapi.com/media/si_oi9ju8hy7t627892iju4872h4ucnhwebf32eicmcmji349mmc33im3/favicon-dark.ico
authenticationobjectAuthentication schema.
enabledbooleanWhether authentication is enabled.Example true
show_authentication_on_loadbooleanShould the authentication immediately on site load, default TrueExample true
console_app_configurationobject
console_app_configuration_idstringThe ID of the console app configuration.Example 4ed4be4e-4c4e-42-af36-7928d3e1c9ac
temporary__console_app_urlstring (uri)The temporary URL of the console app.Example /app/4ed4be4e-4c4e-4f72-af36-7928d3e1c9ac
styleobject
style_mobileobject
titlestringThe title of the app.Example My App
logout_urlstring (uri)The logout URL. The user will land on this page when logout is requested by the app.Example https://staircase.co
access_app_namestringAccess application name. This will be passed to custom auth app via query arguments. Required, when custom auth app is enabled.Example Staircase
popupobjectPopup layout schema.
console_app_configuration_idstringThe ID of the console app configuration.Example 4ed4be4e-4c4e-42-af36-7928d3e1c9ac
temporary__console_app_urlstring (uri)The temporary URL of the console app.Example /app/4ed4be4e-4c4e-4f72-af36-7928d3e1c9ac
styleobject
widthstringThe width of an element.Example 100%
heightstringThe height of an element.Example 50px
paddingstringThe padding of an element.Example 10px 20px
marginstringThe margin of an element.Example 5px
displaystringDisplay value of element.flexnoneExample flex
style_mobileobject
widthstringThe width of an element.Example 100%
heightstringThe height of an element.Example 50px
paddingstringThe padding of an element.Example 10px 20px
marginstringThe margin of an element.Example 5px
displaystringDisplay value of element.flexnoneExample flex
on_change_reloadstring[]The locations to reload when the app changes.
inherit_url_pathbooleanPass url_path from Site to the layout placeholder app.Example true
left_sidebarobjectLeft sidebar layout schema.
console_app_configuration_idstringThe ID of the console app configuration.Example 4ed4be4e-4c4e-42-af36-7928d3e1c9ac
temporary__console_app_urlstring (uri)The temporary URL of the console app.Example /app/4ed4be4e-4c4e-4f72-af36-7928d3e1c9ac
styleobject
widthstringThe width of an element.Example 100%
heightstringThe height of an element.Example 50px
paddingstringThe padding of an element.Example 10px 20px
marginstringThe margin of an element.Example 5px
displaystringDisplay value of element.flexnoneExample flex
style_mobileobject
widthstringThe width of an element.Example 100%
heightstringThe height of an element.Example 50px
paddingstringThe padding of an element.Example 10px 20px
marginstringThe margin of an element.Example 5px
displaystringDisplay value of element.flexnoneExample flex
on_change_reloadstring[]The locations to reload when the app changes.
inherit_url_pathbooleanPass url_path from Site to the layout placeholder app.Example true
right_sidebarobjectRight sidebar layout schema.
console_app_configuration_idstringThe ID of the console app configuration.Example 4ed4be4e-4c4e-42-af36-7928d3e1c9ac
temporary__console_app_urlstring (uri)The temporary URL of the console app.Example /app/4ed4be4e-4c4e-4f72-af36-7928d3e1c9ac
styleobject
widthstringThe width of an element.Example 100%
heightstringThe height of an element.Example 50px
paddingstringThe padding of an element.Example 10px 20px
marginstringThe margin of an element.Example 5px
displaystringDisplay value of element.flexnoneExample flex
style_mobileobject
widthstringThe width of an element.Example 100%
heightstringThe height of an element.Example 50px
paddingstringThe padding of an element.Example 10px 20px
marginstringThe margin of an element.Example 5px
displaystringDisplay value of element.flexnoneExample flex
on_change_reloadstring[]The locations to reload when the app changes.
inherit_url_pathbooleanPass url_path from Site to the layout placeholder app.Example true
headerobjectHeader layout schema.
console_app_configuration_idstringThe ID of the console app configuration.Example 4ed4be4e-4c4e-42-af36-7928d3e1c9ac
temporary__console_app_urlstring (uri)The temporary URL of the console app.Example /app/4ed4be4e-4c4e-4f72-af36-7928d3e1c9ac
styleobject
widthstringThe width of an element.Example 100%
heightstringThe height of an element.Example 50px
paddingstringThe padding of an element.Example 10px 20px
marginstringThe margin of an element.Example 5px
displaystringDisplay value of element.flexnoneExample flex
style_mobileobject
widthstringThe width of an element.Example 100%
heightstringThe height of an element.Example 50px
paddingstringThe padding of an element.Example 10px 20px
marginstringThe margin of an element.Example 5px
displaystringDisplay value of element.flexnoneExample flex
on_change_reloadstring[]The locations to reload when the app changes.
inherit_url_pathbooleanPass url_path from Site to the layout placeholder app.Example true
heroobjectHero layout schema.
console_app_configuration_idstringThe ID of the console app configuration.Example 4ed4be4e-4c4e-42-af36-7928d3e1c9ac
temporary__console_app_urlstring (uri)The temporary URL of the console app.Example /app/4ed4be4e-4c4e-4f72-af36-7928d3e1c9ac
styleobject
widthstringThe width of an element.Example 100%
heightstringThe height of an element.Example 50px
paddingstringThe padding of an element.Example 10px 20px
marginstringThe margin of an element.Example 5px
displaystringDisplay value of element.flexnoneExample flex
style_mobileobject
widthstringThe width of an element.Example 100%
heightstringThe height of an element.Example 50px
paddingstringThe padding of an element.Example 10px 20px
marginstringThe margin of an element.Example 5px
displaystringDisplay value of element.flexnoneExample flex
on_change_reloadstring[]The locations to reload when the app changes.
inherit_url_pathbooleanPass url_path from Site to the layout placeholder app.Example true
footerobjectFooter layout schema.
console_app_configuration_idstringThe ID of the console app configuration.Example 4ed4be4e-4c4e-42-af36-7928d3e1c9ac
temporary__console_app_urlstring (uri)The temporary URL of the console app.Example /app/4ed4be4e-4c4e-4f72-af36-7928d3e1c9ac
styleobject
widthstringThe width of an element.Example 100%
heightstringThe height of an element.Example 50px
paddingstringThe padding of an element.Example 10px 20px
marginstringThe margin of an element.Example 5px
displaystringDisplay value of element.flexnoneExample flex
style_mobileobject
widthstringThe width of an element.Example 100%
heightstringThe height of an element.Example 50px
paddingstringThe padding of an element.Example 10px 20px
marginstringThe margin of an element.Example 5px
displaystringDisplay value of element.flexnoneExample flex
on_change_reloadstring[]The locations to reload when the app changes.
inherit_url_pathbooleanPass url_path from Site to the layout placeholder app.Example true
mainrequiredobjectMain layout schema.
styleobject
widthstringThe width of an element.Example 100%
heightstringThe height of an element.Example 50px
paddingstringThe padding of an element.Example 10px 20px
marginstringThe margin of an element.Example 5px
displaystringDisplay value of element.flexnoneExample flex
style_mobileobject
widthstringThe width of an element.Example 100%
heightstringThe height of an element.Example 50px
paddingstringThe padding of an element.Example 10px 20px
marginstringThe margin of an element.Example 5px
displaystringDisplay value of element.flexnoneExample flex
on_change_reloadstring[]The locations to reload when the app changes.
inherit_url_pathbooleanPass url_path from Site to the layout placeholder app.Example true
titlestringThe title of the app.Example My App
rendering_typestringRendering strategy applied to `console_app_configurations`.flowlistExample flow
console_app_configurationsarrayThe sequence of apps.
change_reload_url_paramsobjectDictionary of URL parameters that will be passed as URL query paramerters to `on_change_reload`. Maximum 3 properties can be added.
inherit_url_pathbooleanPass url_path from Site to the main app.Example true
path_mappingsarrayPath mappings configuration.
workflowsarrayWorkflows configuration.
error_pagesobjectError pages schema.
forbiddenobjectError page schema.
page_contentrequiredstringError page content in HTMLExample <h1>Oops! Something went wrong. Please, refresh or make sure you're accessing this site from the US.</h1>
cookie_consentobjectCookie consent schema.
popupobjectCookie consent popup schema.
titlestringCookie consent popup title.Example Cookie consent
short_textstringCookie consent popup short text.Example We use cookies to improve your experience on our website.
button_okstringCookie consent popup OK button text.Example OK
button_manage_preferencesstringCookie consent popup manage preferences button text.Example Manage preferences
preference_centerobjectCookie consent preference center schema.
button_save_preferencesstringCookie consent preference center save preferences button text.Example Save preferences
titlestringCookie consent preference center title.Example Cookie consent
privacy_policy_urlstring (uri)Privacy policy URL.Example https://www.staircase.co/privacy-policy
custom_cssstringCustom CSS for the cookie consent popup.Example body { background-color: #000; }
browser_cookie_domainstringBrowser cookie domain.Example staircase.co
browser_cookie_expiration_daysintegerCookie expiration in days.Example 365
open_graph_tagsobjectOpen Graphs tags schema.
titlerequiredstringOpen Graphs tags title.Example Staircase
descriptionrequiredstringOpen Graphs tags description.Example Staircase is a platform for building and deploying web applications.
imagerequiredstring (uri)Open Graphs tags image.Example https://cdn.edge.staircaseapi.com/media/si_oi9ju8hy7t627892iju4872h4ucnhwebf32eicmcmji349mmc33im3/favicon-dark.ico
typerequiredstringOpen Graphs tags type.websiteExample website
urlrequiredstring (uri)Open Graphs tags URL.Example https://www.staircase.co
site_namerequiredstringOpen Graphs tags site name.Example Staircase
localerequiredstringOpen Graphs tags locale.en_USExample en_US
backendobjectBackend configuration schema.
domain_namestringDomain name of the backend.Example service.staircase.co
Other responses

400404

POST /event-loop/poll/{site_flow_configuration_id}

Check Session

pollSessionProgress

This endpoint generates a new session and transaction IDs, Session ID is used to differentiate between different sessions of the same user who is coming from the same resource, and possibly several times.

This API is an entrypoint for the shell application of the Site to start the communication with the backend Site.

Authentication

If the configuration has the authentication enabled, the Site will perform soft-validation of the user and store email address of the person logging in. The email address will be stored in the person[0].email_address.

Show the rest

Site checks for email_address and custom:person_identifier JWT claims to find user's email address and GUID. Later on, Site will populate transaction (marked by transaction_id) with the email address of the user signed in.

Site populates the transaction in a synchronous manner, i.e., the transaction will be populated before the response is returned.

Advertiser Key Correlation

When the website is set up with the advertiser key linkage, it will search for the correlating key within query parameters of the URL. This key should be present in the query parameters and its value should correspond to the advertiser's ID. If a prior session is already in place, the website will bypass both the correlating key and the associated advertisement information. If not, the website will initiate a new session, and the advertisement details will be stored under this fresh transaction, which is marked by a transaction_id.

Example

Define the advertiser key correlation key in the configuration:

{
 "analytics": {
 "advertiser_correlation_key": "utm_source"
 },
 "layout_configuration": {...}
}

Set the URL in the advertisement platform (e.g. Google Ads) to include the correlating key:


Here the correlating key is utm_source and the value is 91319ebc-3c29-4e65-801c-91d4e32073a5, which represents the advertiser's ID.

Response
application/json

Successfully retrieved the current app ID

{
  "transaction_id": "5aa4be4e-4c4e-42-af36-9ddaaa2322ec",
  "session_id": "6ed4be4e-4c4e-42-af36-9ddaaa2322ec",
  "trace_id": "OOWDANFA"
}
Parameters
5
ParameterTypeExampleDescription
x-sc-trace-id required string header 01HQQEHAPB8EVDA35QDTMEEV9X The trace ID
site_flow_configuration_id required string path 15a820a6-cac9-4b-a7b1-d364b26d7f69 Site flow configuration ID.
session_id string query 5ed4be4e-4c4e-42-af36-9ddaaa2322ec An existing session ID (optional)
transaction_id string query 5aa4be4e-4c4e-42-af36-9ddaaa2322ec An existing transaction ID associated with the session ID (optional)
Authorization string header <redacted> Authentication token
Response 200application/json
3 fields

Successfully retrieved the current app ID

FieldTypeDescription
session_idstringThe session ID, either provided or newly generatedExample 4ed4be4e-4c4e-42-af36-7928d3e1c9ac
transaction_idstringThe transaction ID, either provided or newly generatedExample 4ed4be4e-4c4e-42-af36-7928d3e1c9ac
trace_idstringThe sc-trace-idExample 4ed4be4e-4c4e-42-af36-7928d3e1c9ac
Other responses

400404

GET /ordered-flows

List Configurations

listAppConfigurations

List Configuration

List Configurations

Retrieves list of registered configurations.

Response
application/json

Success

{
  "site_flow_configurations": [
    {
      "site_flow_configuration_id": "345e8795-eb14-24t3-a2-aaaa174000",
      "site_flow_product_id": "345e8795-eb14-24t3-a2-aaaa174001"
    },
    {
      "site_flow_configuration_id": "345e8795-eb14-24t3-a2-aaaa174004",
      "site_flow_product_id": "345e8795-eb14-24t3-a2-aaaa174088"
    }
  ],
  "page": {
    "count": 2,
    "next_token": null
  }
}
Parameters
2
ParameterTypeExampleDescription
next_token string query eNolzLEKwkAQRdFfeZnGRvwAWxtBbOwsh2TcXYxvZJ2NBPHfNVpduMV5yf4gW8k2d5i9rSbDxRsHKGH6CKvfpoRCRDYctV4t7qP2hsH7djOGRnHKWk4LtHOmqtHG3+1w/ptPJ+iRC9NG3h89BijN The response can include a limited number of results along with a `next_token` value. You can use this `next_token` value in a subsequent API request to retrieve the next batch of items. `next_token` is located under the `page` object in the response.
limit integer query 10 List configurations limit
Response 200application/json
2 fields

Success

FieldTypeDescription
site_flow_configurationsrequiredarrayRepresents the array of flow configurations.
pagerequiredobjectPage information. Contains basic information of the current page returned.
countrequiredintegerCount of items that were retrieved for this page.Example 1
next_tokenrequiredstringIf this field exists in the page information collection, it means you can continue querying for other items, using this token in the query parameters of the following request.Example eNolzLEKwkAQRdFfeZnGRvwAWxtBbOwsh2TcXYxvZJ2NBPHfNVpduMV5yf4gW8k2d5i9rSbDxRsHKGH6CKvfpoRCRDYctV4t7qP2hsH7djOGRnHKWk4LtHOmqtHG3+1w/ptPJ+iRC9NG3h89BijN
Other responses

400422

DELETE /ordered-flows/{site_flow_configuration_id}

Remove Configuration

removeAppConfiguration

Remove Configuration

Removes configurations with all of its layouts.

Response
application/json

A 400 status code occurs when some of provided request parameters is invalid.

{
  "error": {
    "message": "Bad Request",
    "reason": "Provided token is not valid."
  }
}
Parameters
1
ParameterTypeExampleDescription
site_flow_configuration_id required string path 15a820a6-cac9-4b-a7b1-d364b26d7f69 Site flow configuration ID.
Other responses

204400404

POST /system-feedback/ordered-flows/{site_flow_configuration_id}/sessions/{session_id}/transactions/{transaction_id}

Collect System Feedback

collectSystemFeedback

Collect System Feedback

Collects system feedback for a given session and transaction IDs.

Event type Description base_elapsed_time
start_session Indicates the start of a session. The time elapsed in milliseconds since the start of the interaction with site.
page_change Indicates a page change. The time elapsed in milliseconds since the user has opened the page.
end_session Indicates the end of a session. The time elapsed in milliseconds since the start of the session.
error Indicates error. Can be set to 0
console_app_loaded Indicates the console app has been loaded. The time elapsed in milliseconds since the "iframe" started loading.
Request
application/json
{
  "events": [
    {
      "event_type": "start_session",
      "base_elapsed_time": 0
    }
  ]
}
Response
application/json

Success

{
  "status": "SUCCEEDED"
}
Parameters
3
ParameterTypeExampleDescription
site_flow_configuration_id required string path 15a820a6-cac9-4b-a7b1-d364b26d7f69 Site flow configuration ID.
session_id required string path 5ed4be4e-4c4e-42-af36-9ddaaa2322ec An existing session ID (required)
transaction_id required string path 5aa4be4e-4c4e-42-af36-9ddaaa2322ec An existing transaction ID associated with the session ID (required)
Request bodyapplication/json
3 fields
FieldTypeDescription
userobjectRepresents user object
user_guidrequiredstringGlobal Unique Identifier of the user
locationrequiredobjectRepresents location object
ip_addressstringIP address of the user
devicerequiredobjectRepresents device object
brandstringDevice Brand
modelstringDevice Model
screen_resolutionstringScreen resolution
browser_namestringBrowser name
browser_versionstringBrowser version
operating_systemstringDevice OS
eventsrequiredarrayA list of event objects that contain system feedback information.
session_telemetryobjectRepresents session telemetry
start_timestringSession start timestamp
end_timestringSession end timestamp
load_timeintegerLoad time
time_spentintegerTime spent on site
number_of_clicksintegerNumber of clicks on site
Response 200application/json
1 fields

Success

FieldTypeDescription
statusrequiredstringThe status of the operation.SUCCEEDEDExample SUCCEEDED
Other responses

400404422

GET /deployments

List Deployments

listLatestSitesDeployments

List Deployments

Retrieves list of active deployments.

Response
application/json

Success

{
  "deployments": [
    {
      "domain_name": "site-acdc27.product.staircaseapi.com",
      "site_flow_configuration_id": "15a820a6-cac9-4b-a7b1-d364b26d7f69"
    }
  ],
  "page": {
    "next_token": null,
    "count": 1
  }
}
Parameters
4
ParameterTypeExampleDescription
next_token string query eNolzLEKwkAQRdFfeZnGRvwAWxtBbOwsh2TcXYxvZJ2NBPHfNVpduMV5yf4gW8k2d5i9rSbDxRsHKGH6CKvfpoRCRDYctV4t7qP2hsH7djOGRnHKWk4LtHOmqtHG3+1w/ptPJ+iRC9NG3h89BijN The response can include a limited number of results along with a `next_token` value. You can use this `next_token` value in a subsequent API request to retrieve the next batch of items. `next_token` is located under the `page` object in the response.
limit integer query 10 List deployments limit
site_flow_configuration_id string query 15a820a6-cac9-4b-a7b1-d364b26d7f69 Site Flow Configuration ID. Exclusive with `site_domain_name` parameter.
site_domain_name string query site-b0964187.bohr.staircaseapi.com Domain name of the site. Can not be custom domain name, only deployment one is accepted. Exclusive with `site_flow_configuration_id` parameter.
Response 200application/json
2 fields

Success

FieldTypeDescription
deploymentsrequiredobject[]Represents the array of flow configurations.
site_flow_configuration_idrequiredstringThe ID of the site flow configuration.Example 15a820a6-cac9-4b-a7b1-d364b26d7f69
domain_namerequiredstringSite full domain name.Example site-000aaa.docs.staircaseapi.com
transaction_idstringDeployment transaction ID. Omitted when queried with `site_domain_name` query filter.Example 01H021M9X10AN9XNNJ8THMMMMM
pagerequiredobjectPage information. Contains basic information of the current page returned.
countrequiredintegerCount of items that were retrieved for this page.Example 1
next_tokenrequiredstringIf this field exists in the page information collection, it means you can continue querying for other items, using this token in the query parameters of the following request.Example eNolzLEKwkAQRdFfeZnGRvwAWxtBbOwsh2TcXYxvZJ2NBPHfNVpduMV5yf4gW8k2d5i9rSbDxRsHKGH6CKvfpoRCRDYctV4t7qP2hsH7djOGRnHKWk4LtHOmqtHG3+1w/ptPJ+iRC9NG3h89BijN
Other responses

400422

PUT /deployments

Deploy Configuration

deployAppConfiguration

Deploy Configuration

Sites are installed under environment's subdomain. Each site configuration gets its own short ID, which is used in the future domain name of the site.

Example of the URL: site-3065e3b5.xchange.staircaseapi.com.

Observe deployment status

Events are sent in payloads of a “HTTP requests” using POST method.

{
 "$schema": "",
 "additionalProperties": true,
 "type": "object",
 "required": ["status", "transaction_id", "domain_name"],
 "description": "Schema for the payload event emitted to callback.",
 "properties": {
 "transaction_id": {
 "type": "string",
 "description": "Transaction identifier. Unique per deployment and managed by Site."
 },
 "status": {
 "type": "string",
 "description": "Provisioning status.",
 "enum": ["SUCCEEDED", "FAILED"]
 },
 "domain_name": {
 "type": "string",
 "description": "Domain name of the site."
 },
 "error": {
 "type": "object",
 "additionalProperties": true,
 "description": "Deployment has failed unexpectedly. Error details are provided in this object. Note that you should contact the support team when the error occurs."
 }
 }
}
Troubleshooting

Events are dispatched once the deployment process completes.

Show the rest

An event is deemed as successfully delivered when its recipient acknowledges with an HTTP status code that falls within the range of successful responses. If an event isn't successfully delivered, the Site will make six additional attempts to resend the event, with each attempt following an exponential back off strategy.

To confirm the propagation of the webhook, you can utilize Retrieve Transaction Collections with the transaction ID, which is returned during the initialization of deployment.

Request
application/json
{
  "site_flow_configuration_id": "6374c7f8-13fa-454a-8587-bd29724346f7",
  "callback_url": "https://webhooks.staircaseapi.com/persistence/bridge/o09jun2kjhjkkkiDj"
}
Response
application/json

A 400 status code occurs when some of provided request parameters is invalid.

{
  "error": {
    "message": "Bad Request",
    "reason": "Provided token is not valid."
  }
}
Request bodyapplication/json
2 fields
FieldTypeDescription
site_flow_configuration_idrequiredstringSite flow configuration ID.Example 6374c7f8-13fa-454a-8587-bd29724346f7
callback_urlrequiredstringCallback URL.Example https://webhooks.staircaseapi.com/persistence/bridge/o09jun2kjhjkkkiDj
Response 200application/json
4 fields

Success

FieldTypeDescription
domain_namerequiredstringGenerated domain name for the site.Example site-abc00def.xchange.staircaseapi.com
transaction_idrequiredstringTransaction ID.Example 01H021M9X10AN9XNNJ8THMMMMM
callback_urlstringThe callback URL is returned as is. The value will match the input `callback_url`.Example https://webhooks.staircaseapi.com/persistence/bridge/o09jun2kjhjkkkiDj
site_flow_configuration_idstringSite flow configuration ID. The value will match the input `site_flow_configuration_id`.Example 6374c7f8-13fa-454a-8587-bd29724346f7
Other responses

400404422

POST /event-loop/logout

Logout

logout

Resets access and ID token cookies for the current session.

Response contains same cookies from the request with expiration date set to the past.

Response
application/json

A 400 status code occurs when some of provided request parameters is invalid.

{
  "error": {
    "message": "Bad Request",
    "reason": "Provided token is not valid."
  }
}
Parameters
2
ParameterTypeExampleDescription
__sc.acact required string cookie access-token Authentication access token
__sc.acidt required string cookie openid ID token in JWT format. Authentication ID token
Other responses

204400

GET /event-loop/workflows

Get State[new]

getState

Get State

Get state for the current user.

Response
application/json

Success

{
  "current_console": "89e820a6-cac9-4b-a7b1-d364b26d5552"
}
Parameters
4
ParameterTypeExampleDescription
__sc.acact required string cookie access-token Authentication access token
__sc.acidt required string cookie openid ID token in JWT format. Authentication ID token
site_configuration required string query 15a820a6-cac9-4b-a7b1-d364b26d7f69 Site configuration ID.
site_workflow required string query 15a820a6-cac9-4b-a7b1-d364b26d7f69 Site workflow ID.
Response 200application/json
1 fields

Success

FieldTypeDescription
current_consolestringCurrent console ID.Example 89e820a6-cac9-4b-a7b1-d364b26d5552
Other responses

400401422

POST /event-loop/workflows

Set State[new]

setState

Set State

Set state for the current user.

Request
application/json
{
  "site_configuration": "6374c7f8-13fa-454a-8587-bd29724346f7",
  "site_workflow": "6374c7f8-13fa-454a-8587-bd29724346f7",
  "current_console": "89e820a6-cac9-4b-a7b1-d364b26d5552"
}
Response
application/json

A 400 status code occurs when some of provided request parameters is invalid.

{
  "error": {
    "message": "Bad Request",
    "reason": "Provided token is not valid."
  }
}
Parameters
2
ParameterTypeExampleDescription
__sc.acact required string cookie access-token Authentication access token
__sc.acidt required string cookie openid ID token in JWT format. Authentication ID token
Request bodyapplication/json
3 fields
FieldTypeDescription
site_configurationrequiredstringThe ID of the site configuration.Example 15a820a6-cac9-4b-a7b1-d364b26d7f69
site_workflowrequiredstringThe ID of the site workflow configuration.Example 15a820a6-cac9-4b-a7b1-d364b26d7f69
current_consolerequiredstringCurrent console ID.Example 89e820a6-cac9-4b-a7b1-d364b26d5552
Other responses

204400401422

Distribute

GET /pipeline/products/{product_name}/artifacts

Get Product Artifacts

getProductArtifacts

Response
application/json

Success response

{
  "artifacts": [
    "Site",
    "Site Health Configuration",
    "Site Connector Configuration",
    "Site Documentation Configuration"
  ]
}
Parameters
2
ParameterTypeExampleDescription
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx API key of Environment.
product_name required string path Site Product name which was specified as 'x-product-name' in product swagger file.
Response 200application/json
1 fields

Success response

FieldTypeDescription
artifactsstring[]The list of artifacts
Response 400application/json
2 fields

Bad Request

FieldTypeDescription
errorstringError.
messagestringError message.
Response 401application/json
1 fields

Not Authorized

FieldTypeDescription
errorrequiredstringError message.
Response 422application/json
1 fields

Bad request.

FieldTypeDescription
errorstringError message.
Response 500application/json
1 fields

Server error

FieldTypeDescription
errorrequiredstringError message.
Response 502application/json
1 fields

Server error

FieldTypeDescription
errorstringError message.
Other responses

403

DELETE /pipeline/products/{product_name}/artifacts/{artifact_tag}

Delete Product Artifact

deleteProductArtifact

Response
text/html

Bad Request

<html>\r\n<head><title>400 Bad Request</title></head>\r\n<body>\r\n<center><h1>400 Bad Request</h1></center>\r\n</body>\r\n</html>\r\n
Parameters
3
ParameterTypeExampleDescription
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx API key of Environment.
product_name required string path Site Product name which was specified as 'x-product-name' in product swagger file.
artifact_tag required string path SiteDocumentationConfig Product Artifact Tag.
Response 400application/json
2 fields

Bad Request

FieldTypeDescription
errorstringError.
messagestringError message.
Response 401application/json
1 fields

Not Authorized

FieldTypeDescription
errorrequiredstringError message.
Response 422application/json
1 fields

Bad request.

FieldTypeDescription
errorstringError message.
Response 500application/json
1 fields

Server error

FieldTypeDescription
errorrequiredstringError message.
Response 502application/json
1 fields

Server error

FieldTypeDescription
errorstringError message.
Other responses

204403

POST /pipeline/publish

Publish Artifact

publishArtifact

Publish your Artifacts

You can add Site product in your DevOps pipeline. Site is compatible with Staircase's other Ship products. Site can accept the bundle of the Market Place as an artifact input.

Swagger Files

You need to specify you swagger path in your `service.yml` or `data.yml' file.
documentation:
 path: requirements/swagger.yml

Also, if you don't want to publish swagger, you can specify it in the yml. Default is true

Show the rest
documentation:
 publish: false
 path: requirements/swagger.yml

If you want to put link to a file in your swagger, you can use Upload Public Content API and place the download_url in your swagger file.

Product Component Ordering

If you want to set order for your product's components, in service yml file you can specify it as follows:

documentation:
 publish: true
 path: requirements/swagger.yml
 components:
 ordering:
 - 'Tech: Ontology'
 - 'Tech: Open Api'
 - 'Tech: Component Ordering'
 - 'Tech: Overview'
 - 'Tech: Quick Start Guides'
 - 'Marketing: Companies'
 - 'Marketing: Product Ontology'
 - 'Distribute'

! Note: If your product has multiple artifacts due to microservices, you can choose one main configuration repo for your product's site(documentation) config and set components' order.

Product Overview Page

All products have an overview page which describes the product usage and workflow. The product’s overview page is located in the product repo /requirements folder. File name is “overview.md”.

Content in the /requirements/overview.md file is displayed when the product name is clicked in the api.staircase.co left-hand navigation bar.

Product Icons/Images

Product icons and images can be put in the product repo /requirements/public folder. They can be referenced in the overview file like `<img src="image_name.png" alt="Alt Text" />`. Site will automatically upload images and modify the image paths to point to the correct URL.

! Note: You should avoid using spaces at your content name

Product Quick Start Guides

Detailed guide of how-to attach product Quick Start Guides under the product bundle

Links to custom files

Any downloadable file you want to serve in overview page should be placed to product repo /requirements/public folder. They can be referenced in the overview file like `Link Text`. Site will automatically upload the files and modify the path to point to the correct URL.
Left-Hand Navigation Sidebar
The left-hand navigation sidebar for api.staircase.co is automatically built based on custom extensions in the product’s swagger file.

Every swagger file needs these 3 custom extensions added after the “title” property. You only need to specify these extensions once per swagger file.

  • `x-product-family:` family the product should be listed under
  • `x-product-category:` category the product should be listed under
  • `x-product-name:` product name.
  • Every endpoint within the swagger file needs these 3 custom extensions added after the “path” property:

  • `x-product-component:` the name of the component under which the endpoint should be grouped
  • `x-product-endpoint:` the name of the endpoint
  • `x-product-sequence:` the sequence in which the endpoint should appear under the component.
  • Both: x-product-component and/or x-product-endpoint can be defined as:

  • `x-product-*: value[new]` it will add "NEW" pill to the x-product-*
  • `x-product-*: value[deprecated]` it will add "DEPRECATED" pill to the x-product-*
  • `x-product-*: value[warning]` it will add "WARNING" pill to the x-product-*
  • `x-product-*: value[updated]` it will add "UPDATED" pill to the x-product-*
  • ! Note: x-product-* value at Technical Site will not contain [*pill*] text while rendering. It will render pill instead.

    Multiple Swagger Files for One Product
    To publish multiple swagger files to the same product, make sure that the x-product-name extension in every repo’s swagger file must be given the same product name.

    For example, if the “Tax” product is associated with 5 different swagger files and repos, every swagger file/repo must provide the name “Tax” as x-product-name.

    The product name must match a product name in the product ontology.

    Request
    application/json
    {
      "artifact_url": "https://dev-marketplace-bundles-bucket-us-east-1-581813358386.s3.amazonaws.com/SERVICE/Automated%20Underwriting%20System%20%28AUS%29/01G110WHPJFCGMD0YHF8G6PAKB?AWSAccessKeyId=<redacted>&Signature=<redacted>&x-amz-security-token=<redacted>&Expires=1650459612",
      "artifact_tag": "Automated Underwriting System (AUS)"
    }
    Response
    application/json

    Approval uploaded

    {
      "publish_id": "01G13DH3PRSTQQQRK186PWF9GC"
    }
    Request bodyapplication/json
    2 fields
    FieldTypeDescription
    artifact_urlstringArtifact URL
    artifact_tagstringArtifact Tag
    Response 200application/json
    1 fields

    Approval uploaded

    FieldTypeDescription
    publish_idstringPublish started
    Response 400application/json
    2 fields

    Bad Request

    FieldTypeDescription
    errorstringError.
    messagestringError message.
    Response 404application/json
    1 fields

    Publishing not found.

    FieldTypeDescription
    messagestringMessage which contains information about requested entity
    Response 422application/json
    1 fields

    Bad request.

    FieldTypeDescription
    errorstringError message.
    Response 500application/json
    1 fields

    Server error

    FieldTypeDescription
    errorrequiredstringError message.
    Response 502application/json
    1 fields

    Server error

    FieldTypeDescription
    errorstringError message.
    Other responses

    403

    GET /pipeline/publish/{publish_id}

    Get Publish Status

    getProductPublish

    Response
    application/json

    Success response

    {
      "status": "COMPLETED",
      "message": "Published Successfully"
    }
    Parameters
    2
    ParameterTypeExampleDescription
    x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx API key of Environment.
    publish_id required string path 01G13DH3PRSTQQQRK186PWF9GC Publish ID.
    Response 200application/json
    2 fields

    Success response

    FieldTypeDescription
    statusstringPublish StatusCOMPLETEDFAILEDRUNNING
    messagestringMessage
    Response 400application/json
    2 fields

    Bad Request

    FieldTypeDescription
    errorstringError.
    messagestringError message.
    Response 401application/json
    1 fields

    Not Authorized

    FieldTypeDescription
    errorrequiredstringError message.
    Response 404application/json
    1 fields

    Publishing not found.

    FieldTypeDescription
    messagestringMessage which contains information about requested entity
    Response 422application/json
    1 fields

    Bad request.

    FieldTypeDescription
    errorstringError message.
    Response 500application/json
    1 fields

    Server error

    FieldTypeDescription
    errorrequiredstringError message.
    Response 502application/json
    1 fields

    Server error

    FieldTypeDescription
    errorstringError message.
    Other responses

    403

    SuCo

    POST /process

    Match with MDL

    process

    Process

    Request
    application/json
    {
      "callback_url": "https://callback.url",
      "data": {
        "people": [
          {
            "@id": "1",
            "first_name": "John",
            "last_name": "Doe"
          }
        ],
        "addresses": [
          {
            "@id": "2",
            "address_line_1": "123 Main St",
            "city": "Springfield",
            "state_code": "IL",
            "postal_code": "62701"
          }
        ]
      }
    }
    Response
    application/json

    Accepted

    {
      "message": "Accepted"
    }
    Request bodyapplication/json
    2 fields
    FieldTypeDescription
    callback_urlstringCallback URLExample https://callback.url
    dataobjectData
    Response 202application/json
    1 fields

    Accepted

    FieldTypeDescription
    messagestringMessage
    Response 400application/json
    1 fields

    Request data invalid

    FieldTypeDescription
    messagestringError message

    Tech: Ontology

    POST /tech/ontology

    Save Product Ontology

    saveOntology

    Product Ontology defines concepts, relations among them and axioms to be applied in the complex product modeling domain

    Ontology consists of product families. Every family is a set of products which share a common, managed set of features that satisfy the specific needs of a particular market segment and are developed from a common set of core assets in a prescribed way

    Publish products ontology. It will be used to show ordered product families, categories, and products in the navigation bar. When ontology contains not published product, then it will not be shown in the navigation bar. When ontology does not have a product, it will be shown at the end of the list.

    Request
    application/json
    {
      "ontology": {
        "product_families": [
          {
            "name": "Mortgage Products",
            "product_categories": [
              {
                "name": "Data Manager",
                "products": [
                  {
                    "name": "Document Classification"
                  },
                  {
                    "name": "Data Extraction"
                  },
                  {
                    "name": "Ground Truth Labeling"
                  }
                ]
              },
              {
                "name": "Borrower",
                "products": [
                  {
                    "name": "Employment"
                  },
                  {
                    "name": "Credit"
                  },
                  {
                    "name": "Income"
                  },
                  {
                    "name": "Assets"
                  }
                ]
              },
              {
                "name": "Collateral",
                "products": [
                  {
                    "name": "Automated Valuation Model (AVM)"
                  },
                  {
                    "name": "Property Taxes"
                  }
                ]
              },
              {
                "name": "Loan",
                "products": [
                  {
                    "name": "Pricing"
                  },
                  {
                    "name": "Fees"
                  }
                ]
              },
              {
                "name": "Adapters",
                "products": [
                  {
                    "name": "LOS"
                  }
                ]
              }
            ]
          },
          {
            "name": "Mortgage Processes",
            "product_categories": [
              {
                "name": "Application",
                "products": [
                  {
                    "name": "Pre-Approval"
                  }
                ]
              },
              {
                "name": "Underwriting",
                "products": [
                  {
                    "name": "Loan Eligibility"
                  },
                  {
                    "name": "Automated Underwriting System (AUS)"
                  }
                ]
              },
              {
                "name": "Servicing",
                "products": [
                  {
                    "name": "Loanboarding"
                  }
                ]
              }
            ]
          }
        ]
      }
    }
    Response
    application/json

    Success response

    {
      "DevOps": {
        "Ship": [
          "Build",
          "Deploy"
        ],
        "Distribute": [
          "Marketplace",
          "Environment",
          "Documentation"
        ]
      }
    }
    Parameters
    1
    ParameterTypeExampleDescription
    x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx API key of Environment.
    Request bodyapplication/json
    1 fields
    FieldTypeDescription
    ontologyobjectOntology
    product_familiesobject[]Family List
    namestringFamily name
    product_categoriesobject[]Category List
    namestringCategory name
    productsobject[]Product List
    Response 400application/json
    2 fields

    Bad Request

    FieldTypeDescription
    errorstringError.
    messagestringError message.
    Response 401application/json
    1 fields

    Not Authorized

    FieldTypeDescription
    errorrequiredstringError message.
    Response 422application/json
    1 fields

    Bad request.

    FieldTypeDescription
    errorstringError message.
    Response 500application/json
    1 fields

    Server error

    FieldTypeDescription
    errorrequiredstringError message.
    Response 502application/json
    1 fields

    Server error

    FieldTypeDescription
    errorstringError message.
    Other responses

    201403

    DELETE /tech/ontology

    Delete Product Ontology

    deleteOntology

    Delete products ontology

    Delete products ontology.

    Response
    text/html

    Bad Request

    <html>\r\n<head><title>400 Bad Request</title></head>\r\n<body>\r\n<center><h1>400 Bad Request</h1></center>\r\n</body>\r\n</html>\r\n
    Parameters
    1
    ParameterTypeExampleDescription
    x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx API key of Environment.
    Response 400application/json
    2 fields

    Bad Request

    FieldTypeDescription
    errorstringError.
    messagestringError message.
    Response 401application/json
    1 fields

    Not Authorized

    FieldTypeDescription
    errorrequiredstringError message.
    Response 404application/json
    1 fields

    Publishing not found.

    FieldTypeDescription
    messagestringMessage which contains information about requested entity
    Response 422application/json
    1 fields

    Bad request.

    FieldTypeDescription
    errorstringError message.
    Response 500application/json
    1 fields

    Server error

    FieldTypeDescription
    errorrequiredstringError message.
    Response 502application/json
    1 fields

    Server error

    FieldTypeDescription
    errorstringError message.
    Other responses

    204403

    GET /tech/ontology

    Retrieve Product Ontology

    getOntology

    Retrieve products ontology

    Retrieve products ontology.

    Response
    application/json

    Success response

    {
      "DevOps": {
        "Ship": [
          "Build",
          "Deploy"
        ],
        "Distribute": [
          "Marketplace",
          "Environment",
          "Documentation"
        ]
      }
    }
    Parameters
    1
    ParameterTypeExampleDescription
    x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx API key of Environment.
    Response 400application/json
    2 fields

    Bad Request

    FieldTypeDescription
    errorstringError.
    messagestringError message.
    Response 401application/json
    1 fields

    Not Authorized

    FieldTypeDescription
    errorrequiredstringError message.
    Response 404application/json
    1 fields

    Publishing not found.

    FieldTypeDescription
    messagestringMessage which contains information about requested entity
    Response 422application/json
    1 fields

    Bad request.

    FieldTypeDescription
    errorstringError message.
    Response 500application/json
    1 fields

    Server error

    FieldTypeDescription
    errorrequiredstringError message.
    Response 502application/json
    1 fields

    Server error

    FieldTypeDescription
    errorstringError message.
    Other responses

    200403

    Tech: Open Api

    POST /tech/products

    Add Product Documentation

    saveProduct

    Publish Your Open API Definition of your product

    1. Every swagger file needs these 3 custom extensions added after the “title” property. You only need to specify these extensions once per swagger file.
      • `x-product-family:` family the product should be listed under, either Mortgage, Platform or DevOps
      • `x-product-category:` category the product should be listed under (e.g. Borrower, Distribute, Integrate)
      • `x-product-name:` product name. This name must match a product name in the product ontology spreadsheet.
    2. Every endpoint within the swagger file needs these 3 custom extensions added after the “path” property:
      • `x-product-component:` the name of the component under which the endpoint should be grouped
      • `x-product-endpoint:` the name of the endpoint
      • `x-product-sequence:` the sequence in which the endpoint should appear under the component.
    Request
    application/json
    {
      "swagger": {}
    }
    Response
    text/html

    Bad Request

    <html>\r\n<head><title>400 Bad Request</title></head>\r\n<body>\r\n<center><h1>400 Bad Request</h1></center>\r\n</body>\r\n</html>\r\n
    Parameters
    1
    ParameterTypeExampleDescription
    x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx API key of Environment.
    Request bodyapplication/json
    1 fields
    FieldTypeDescription
    swaggerobjectOpen API Definition
    Response 400application/json
    2 fields

    Bad Request

    FieldTypeDescription
    errorstringError.
    messagestringError message.
    Response 401application/json
    1 fields

    Not Authorized

    FieldTypeDescription
    errorrequiredstringError message.
    Response 422application/json
    1 fields

    Bad request.

    FieldTypeDescription
    errorstringError message.
    Response 500application/json
    1 fields

    Server error

    FieldTypeDescription
    errorrequiredstringError message.
    Response 502application/json
    1 fields

    Server error

    FieldTypeDescription
    errorstringError message.
    Other responses

    202403

    DELETE /tech/products/{product_name}

    Delete Product Documentation

    deleteProduct

    Response
    text/html

    Bad Request

    <html>\r\n<head><title>400 Bad Request</title></head>\r\n<body>\r\n<center><h1>400 Bad Request</h1></center>\r\n</body>\r\n</html>\r\n
    Parameters
    2
    ParameterTypeExampleDescription
    x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx API key of Environment.
    product_name required string path Site Product name which was specified as 'x-product-name' in product swagger file.
    Response 400application/json
    2 fields

    Bad Request

    FieldTypeDescription
    errorstringError.
    messagestringError message.
    Response 401application/json
    1 fields

    Not Authorized

    FieldTypeDescription
    errorrequiredstringError message.
    Response 422application/json
    1 fields

    Bad request.

    FieldTypeDescription
    errorstringError message.
    Response 500application/json
    1 fields

    Server error

    FieldTypeDescription
    errorrequiredstringError message.
    Response 502application/json
    1 fields

    Server error

    FieldTypeDescription
    errorstringError message.
    Other responses

    204403

    GET /tech/sidebar

    Get sidebar

    getSideBar

    Retrieve the sidebar data.

    Response 200application/json
    1 fields

    Success response.

    FieldTypeDescription
    products_side_barstringList of products for sidebar.
    Response 404application/json
    1 fields

    Publishing not found.

    FieldTypeDescription
    messagestringMessage which contains information about requested entity
    Response 502application/json
    1 fields

    Server error

    FieldTypeDescription
    errorstringError message.
    Other responses

    403

    GET /tech/products/{product_name}/openapi/paths/{openapi_method_id}

    Get Open API Method Definition

    getOpenApiPath

    Get Open API path definitions.

    Response
    application/json

    Success response

    {
      "openapi_paths": {
        "method": "get",
        "service_name": "Build",
        "base_path": "infra-builder",
        "env_domain": "template.staircaseapi.com",
        "path": "/builds/{build_id}",
        "sidebar_path": "/docs/DevOps/Ship/Build/get-build-status",
        "operation_id": null,
        "description": "**Retrieve Service Build Status**",
        "summary": "Get build status",
        "request_body": null,
        "responses": [
          {
            "response_code": "200",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "build_id": {
                      "type": "string",
                      "description": "Unique build id which was returned when build was started",
                      "format": "uuid"
                    },
                    "status": {
                      "type": "string",
                      "description": "Build status (IN_PROGRESS, FAILED, SUCCEEDED)"
                    },
                    "artifacts_url": {
                      "type": "string",
                      "format": "url",
                      "description": "Artifact URL if build was successfully completed"
                    },
                    "logs": {
                      "type": "array",
                      "description": "Build Logs which can be used for build problem investigation",
                      "items": {
                        "type": "string"
                      }
                    },
                    "metadata": {
                      "type": "object",
                      "description": "Metadata generated by build"
                    }
                  }
                },
                "example": {
                  "build_id": "7ac245b7-2f93-4850-8e86-abfdfd3b0a76",
                  "status": "SUCCEEDED",
                  "metadata": {
                    "service-assessor": {
                      "id": "devops-code-assessor:e5dcb19e-b025-4255-a42f-7f501456703c",
                      "timestamp": 1623399920.05132,
                      "version": "1.0.0",
                      "issuer": "https://build.staircaseapi.com/code-assessor",
                      "status": "SUCCEEDED"
                    },
                    "service-code": {
                      "id": "0da65dfd-9753-4bb4-8853-06e608979e73",
                      "timestamp": 1623399796.747468,
                      "version": "1.1",
                      "status": "SUCCEEDED",
                      "commit_hash": "c366156be0d8a39ce9a7bf85a5f5d5fc1a59ba4c",
                      "issuer": "https://build.staircaseapi.com/code"
                    },
                    "service-builder": {
                      "id": "7ac245b7-2f93-4850-8e86-abfdfd3b0a76",
                      "timestamp": 1623400025.2152104,
                      "version": "1.1",
                      "status": "SUCCEEDED",
                      "bundle_type": "SERVICE",
                      "issuer": "https://build.staircaseapi.com/infra-builder"
                    }
                  },
                  "artifacts_url": "https://builder-api-dev-codebuilddevbucket-kkwqngshvjap.s3.amazonaws.com/build-main/build/7ac245b7-2f93-4850-8e86-abfdfd3b0a76/build.zip",
                  "logs": []
                }
              }
            },
            "description": "200 response"
          }
        ]
      }
    }
    Parameters
    2
    ParameterTypeExampleDescription
    product_name required string path Site Product name which was specified as 'x-product-name' in product swagger file.
    openapi_method_id required string path publishDocumentation Path which was specified as 'operationId' in api method definition in product swagger file.
    Response 200application/json
    1 fields

    Success response

    FieldTypeDescription
    openapi_pathsobjectOpen API paths definition.
    Response 400application/json
    2 fields

    Bad Request

    FieldTypeDescription
    errorstringError.
    messagestringError message.
    Response 404application/json
    1 fields

    Publishing not found.

    FieldTypeDescription
    messagestringMessage which contains information about requested entity
    Response 500application/json
    1 fields

    Server error

    FieldTypeDescription
    errorrequiredstringError message.
    Response 502application/json
    1 fields

    Server error

    FieldTypeDescription
    errorstringError message.
    Other responses

    403

    Tech: Component Ordering

    GET /tech/products/{product_name}/components/ordering

    Retrieve Product Component Ordering

    retrieveProductComponentOrdering

    Response
    text/html

    Bad Request

    <html>\r\n<head><title>400 Bad Request</title></head>\r\n<body>\r\n<center><h1>400 Bad Request</h1></center>\r\n</body>\r\n</html>\r\n
    Parameters
    1
    ParameterTypeExampleDescription
    product_name required string path Site Product name which was specified as 'x-product-component' in product swagger file.
    Response 400application/json
    2 fields

    Bad Request

    FieldTypeDescription
    errorstringError.
    messagestringError message.
    Response 401application/json
    1 fields

    Not Authorized

    FieldTypeDescription
    errorrequiredstringError message.
    Response 422application/json
    1 fields

    Bad request.

    FieldTypeDescription
    errorstringError message.
    Response 500application/json
    1 fields

    Server error

    FieldTypeDescription
    errorrequiredstringError message.
    Response 502application/json
    1 fields

    Server error

    FieldTypeDescription
    errorstringError message.
    Other responses

    200403

    POST /tech/products/{product_name}/components/ordering

    Add Product Component Ordering

    addProductComponentOrdering

    Request
    application/json
    {
      "order_list": [
        "COMP_1",
        "COMP_2",
        "COMP_3"
      ]
    }
    Response
    application/json

    Success response

    {
      "order_list": [
        "COMP_1",
        "COMP_2",
        "COMP_3"
      ]
    }
    Parameters
    1
    ParameterTypeExampleDescription
    product_name required string path Site Product name which was specified as 'x-product-component' in product swagger file.
    Request bodyapplication/json
    1 fields
    FieldTypeDescription
    order_liststring[]Component Ordering
    Response 200application/json
    1 fields

    Success response

    FieldTypeDescription
    order_liststring[]Component Ordering
    Response 400application/json
    2 fields

    Bad Request

    FieldTypeDescription
    errorstringError.
    messagestringError message.
    Response 401application/json
    1 fields

    Not Authorized

    FieldTypeDescription
    errorrequiredstringError message.
    Response 422application/json
    1 fields

    Bad request.

    FieldTypeDescription
    errorstringError message.
    Response 500application/json
    1 fields

    Server error

    FieldTypeDescription
    errorrequiredstringError message.
    Response 502application/json
    1 fields

    Server error

    FieldTypeDescription
    errorstringError message.
    Other responses

    403

    Tech: Quick Start Guides

    DELETE /tech/products/{product_name}/quickstart-guides/{quickstart_guide_id}

    Delete Quick Start Guide

    deleteQuickStartGuide

    Response
    text/html

    Bad Request

    <html>\r\n<head><title>400 Bad Request</title></head>\r\n<body>\r\n<center><h1>400 Bad Request</h1></center>\r\n</body>\r\n</html>\r\n
    Parameters
    2
    ParameterTypeExampleDescription
    product_name required string path Site Product name which was specified as 'x-product-name' in product swagger file.
    quickstart_guide_id required string path how-to-distribute-site Quick Start Guide Id.
    Response 400application/json
    2 fields

    Bad Request

    FieldTypeDescription
    errorstringError.
    messagestringError message.
    Response 404application/json
    1 fields

    Publishing not found.

    FieldTypeDescription
    messagestringMessage which contains information about requested entity
    Response 500application/json
    1 fields

    Server error

    FieldTypeDescription
    errorrequiredstringError message.
    Response 502application/json
    1 fields

    Server error

    FieldTypeDescription
    errorstringError message.
    Other responses

    204403

    GET /tech/products/{product_name}/quickstart-guides

    Retrieve Quick Start Guides

    getProductQuickStartGuides

    Response
    application/json

    Success response

    [
      {
        "id": "how-to-distribute-site",
        "name": "How To Distribute Site",
        "description": "Description of How To Distribute Site",
        "type": "markdown",
        "data": "<!DOCTYPE html>\n<p><html lang=\"en\">\n<head>\n</head></p></html></p>"
      }
    ]
    Parameters
    1
    ParameterTypeExampleDescription
    product_name required string path Site Product name which was specified as 'x-product-name' in product swagger file.
    Response 200application/json
    5 fields

    Success response

    FieldTypeDescription
    idstringQuick Start Guide ID.Example how-to-distribute-site
    namestringQuick Start Guide name.Example How To Distribute Site
    descriptionstringQuick Start Guide description.Example Description of How To Distribute Site
    typestringQuick Start Guide type.Example markdown
    datastringQuick Start Guide content.Example <!DOCTYPE html> <p><html lang="en"> <head> </head></p></html></p>
    Response 400application/json
    2 fields

    Bad Request

    FieldTypeDescription
    errorstringError.
    messagestringError message.
    Response 404application/json
    1 fields

    Publishing not found.

    FieldTypeDescription
    messagestringMessage which contains information about requested entity
    Response 500application/json
    1 fields

    Server error

    FieldTypeDescription
    errorrequiredstringError message.
    Response 502application/json
    1 fields

    Server error

    FieldTypeDescription
    errorstringError message.
    Other responses

    403

    POST /tech/products/{product_name}/quickstart-guides

    Add Quick Start Guide

    postQuickStartGuide

    Add Quick Start Guide

    Attaching Quick Start Guides via bundle

    Site platform is able to parse Quick Start Guides from your bundle automatically.

    To get your Quick Start Guides be parsed from your bundle, just create the following structure:

    /requirements/quick-start-guides/dictionary.json
    /requirements/quick-start-guides/guide1.md
    /requirements/quick-start-guides/guide2.md
    ...etc
    

    /requirements/quick-start-guides/dictionary.json

    Show the rest

    This file contains your Quick Start Guides descriptions, names and paths to MD files. Example:

    {
     "guide_1_name": {
     "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam.",
     "path": "guide1.md"
     },
     "guide_2_name": {
     "description": "Quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.",
     "path": "guide2.md"
     }
    }
    

    ! Note: Quick Start Guide Definition can accept an images/custom files described at Site: Publish Artifact endpoint.

    ! Note: Custom Files/images should be present under the same product name as Quick Start Guide

    Request
    application/json
    {
      "name": "How to publish documentation via pipeline",
      "description": "Complete how-to...",
      "type": "markdown",
      "data": "<!DOCTYPE html>\n<p><html lang=\"en\">\n<head>\n</head></p></html></p>"
    }
    Response
    application/json

    Example response

    {
      "id": "0944f479-3b23-4a9e-b193-b3df37825525"
    }
    Parameters
    1
    ParameterTypeExampleDescription
    product_name required string path Site Product name which was specified as 'x-product-component' in product swagger file.
    Request bodyapplication/json
    4 fields
    FieldTypeDescription
    namestringQuick Start Guide Name
    descriptionstringQuick Start Guide Description
    typestringQuick Start Guide Typemarkdown
    datastringQuick Start Guide Data
    Response 201application/json
    1 fields

    Example response

    FieldTypeDescription
    idrequiredstringQuick Start Guide ID
    Response 400application/json
    2 fields

    Bad Request

    FieldTypeDescription
    errorstringError.
    messagestringError message.
    Response 404application/json
    1 fields

    Publishing not found.

    FieldTypeDescription
    messagestringMessage which contains information about requested entity
    Response 422application/json
    1 fields

    Bad request.

    FieldTypeDescription
    errorstringError message.
    Response 500application/json
    1 fields

    Server error

    FieldTypeDescription
    errorrequiredstringError message.
    Response 502application/json
    1 fields

    Server error

    FieldTypeDescription
    errorstringError message.
    Other responses

    403

    GET /tech/products/{product_name}/quickstart-guides/{quickstart_guide_id}

    Retrieve Quick Start Guide

    getQuickStartGuide

    Response
    application/json

    Success response

    {
      "type": "markdown",
      "description": "description",
      "name": "Quick Start Guide name",
      "data": "<!DOCTYPE html>\n<p><html lang=\"en\">\n<head>\n</head></p></html></p>"
    }
    Parameters
    2
    ParameterTypeExampleDescription
    product_name required string path Site Product name which was specified as 'x-product-name' in product swagger file.
    quickstart_guide_id required string path how-to-distribute-site Quick Start Guide Id.
    Response 200application/json
    4 fields

    Success response

    FieldTypeDescription
    namestringQuick Start Guide name.Example Quick Start Guide name
    typestringQuick Start Guide type.Example markdown
    descriptionstringQuick Start Guide description.Example description
    datastringQuick Start Guide content.Example <!DOCTYPE html> <p><html lang="en"> <head> </head></p></html></p>
    Response 400application/json
    2 fields

    Bad Request

    FieldTypeDescription
    errorstringError.
    messagestringError message.
    Response 404application/json
    1 fields

    Publishing not found.

    FieldTypeDescription
    messagestringMessage which contains information about requested entity
    Response 500application/json
    1 fields

    Server error

    FieldTypeDescription
    errorrequiredstringError message.
    Response 502application/json
    1 fields

    Server error

    FieldTypeDescription
    errorstringError message.
    Other responses

    403

    PUT /tech/products/{product_name}/quickstart-guides/{quickstart_guide_id}

    Update Quick Start Guide

    putQuickStartGuide

    Update Quick Start Guide

    Request
    application/json
    {
      "name": "How to publish documentation via pipeline",
      "description": "Complete how-to...",
      "type": "markdown",
      "data": "<!DOCTYPE html>\n<p><html lang=\"en\">\n<head>\n</head></p></html></p>"
    }
    Response
    application/json

    Example response

    {
      "id": "0944f479-3b23-4a9e-b193-b3df37825525"
    }
    Parameters
    2
    ParameterTypeExampleDescription
    product_name required string path Site Product name which was specified as 'x-product-name' in product swagger file.
    quickstart_guide_id required string path how-to-distribute-site Quick Start Guide Id.
    Request bodyapplication/json
    4 fields
    FieldTypeDescription
    namestringQuick Start Guide Name
    descriptionstringQuick Start Guide Description
    typestringQuick Start Guide Typemarkdown
    datastringQuick Start Guide Data
    Response 201application/json
    1 fields

    Example response

    FieldTypeDescription
    idrequiredstringQuick Start Guide ID
    Response 400application/json
    2 fields

    Bad Request

    FieldTypeDescription
    errorstringError.
    messagestringError message.
    Response 404application/json
    1 fields

    Publishing not found.

    FieldTypeDescription
    messagestringMessage which contains information about requested entity
    Response 422application/json
    1 fields

    Bad request.

    FieldTypeDescription
    errorstringError message.
    Response 500application/json
    1 fields

    Server error

    FieldTypeDescription
    errorrequiredstringError message.
    Response 502application/json
    1 fields

    Server error

    FieldTypeDescription
    errorstringError message.
    Other responses

    403

    Customer Ticket

    POST /tech/products/{product_name}/ticket

    New Ticket

    postCustomerTicket

    Create Customer Ticket

    What it does

    This endpoint creates a new Zendesk Ticket using the information passed in the request.

    Registering Zendesk as partner

    To register Zendesk as a partner in a given environment, please get the correct client_id and secret according to the following documentation:

    Request
    application/json
    {
      "name": "Test Ticket Title",
      "description": "This is a description for the test ticket",
      "requester_name": "John Doe",
      "requester_email": "john.doe@example.com",
      "source_id": "test_id_for_source",
      "priority": "low",
      "type": "defect",
      "attachments": [
        "01G4YJ1F9K8ER3GGQEBFZGH5W"
      ]
    }
    Parameters
    1
    ParameterTypeExampleDescription
    product_name required string path Site Product name which was specified as 'x-product-component' in product swagger file.
    Request bodyapplication/json
    8 fields
    FieldTypeDescription
    namerequiredstringTicket Title
    descriptionrequiredstringDescription
    requester_namerequiredstringRequester Name
    requester_emailrequiredstringRequester Email
    source_idrequiredstringThe URL of the page where the ticket was created
    priorityrequiredstringPriorityhighlownormalurgent
    typerequiredstringTicket Typecommentcrdefectotherquestion
    attachmentsstring[]The list of Blob ID
    Response 201application/json
    1 fields

    Ok.

    FieldTypeDescription
    messagestringSuccess Message.
    Response 422application/json
    1 fields

    Bad request.

    FieldTypeDescription
    errorstringError message.
    Other responses

    400401403404

    POST /tech/products/{product_name}/ticket/attachments-blobs

    Customer Ticket Attachment Blobs

    postCustomerTicketAttachmentBlobs

    What it does

    This endpoint creates list of blobs for attachments

    Request
    application/json
    {
      "attachments": [
        {
          "file_type": "image/png"
        }
      ]
    }
    Parameters
    1
    ParameterTypeExampleDescription
    product_name required string path Site Product name which was specified as 'x-product-component' in product swagger file.
    Request bodyapplication/json
    1 fields
    FieldTypeDescription
    attachmentsrequiredobject[]List of attachment information
    file_typerequiredstringMime type of the file
    Response 201application/json
    1 fields

    Ok.

    FieldTypeDescription
    blobsobject[]Blobs array.
    blob_idstringBlob ID
    upload_Presigned_URLstringUpload URL
    Response 422application/json
    1 fields

    Bad request.

    FieldTypeDescription
    errorstringError message.
    Other responses

    400401403404

    Sitemap

    POST /updates

    Update Sitemap

    UpdateSitemap

    Update Sitemap with new data

    Request
    application/json

    Minimal GraphQL selection you’re using

    {
      "webhookId": "wh_123",
      "id": "evt_abc",
      "createdAt": "2025-08-22T10:10:00Z",
      "type": "GRAPHQL_EVENT",
      "event": {
        "data": {
          "block": {
            "logs": [
              {
                "data": "0x162B87B2044BFCCD1BABE22DE6734BFCFBD995D81DC9CEC65A7CC384E692981A5"
              },
              {
                "data": "0xabc123...deadbeef"
              }
            ]
          }
        }
      }
    }
    Response
    application/json

    Missing or invalid signature header.

    {
      "error": "Missing signature"
    }
    Parameters
    1
    ParameterTypeExampleDescription
    x-alchemy-signature required string header some-hashed-signature HMAC-SHA256 hex digest of the **raw** request body using the server's SIGNING_KEY.
    Request bodyapplication/json
    5 fields
    FieldTypeDescription
    webhookIdrequiredstringUnique identifier of the Alchemy webhook configuration that triggered this delivery.
    idrequiredstringUnique identifier of this specific webhook delivery attempt/event.
    createdAtrequiredstring (date-time)ISO 8601 timestamp when Alchemy created the webhook event.
    typerequiredstringClassification of the webhook event from Alchemy (opaque to the service).
    eventrequiredobjectContainer for the actual GraphQL execution result returned by Alchemy for your query.
    dataobjectRoot GraphQL data object containing the block payload.
    blockobjectThe matched block that produced the filtered logs.
    logsobject[]Array of log entries that matched your address/topic filters within the block.
    Response 200application/json
    2 fields

    Sitemap Updated Succesfully

    FieldTypeDescription
    statusstringHuman-readable status string; "ok" on success.Example ok
    dataHashesFoundintegerCount of dataHash values extracted from the payload.
    Response 401application/json
    1 fields

    Missing or invalid signature header.

    FieldTypeDescription
    errorstringShort, non-sensitive reason for the failure (e.g., "Invalid JSON").
    Other responses

    403

    Custom Site

    POST /verifications

    Attach Site to Domain

    registerCustomDomain

    Add custom domain to the existing website

    Attach Site to Domain

    This endpoint enables you to easily and securely register custom domain names for your website, providing a personalized and branded experience for your users. This service benefits businesses that want to expand their online presence, create separate marketing and technical sites.

    Utilizing this endpoint, you can efficiently request a new SSL certificate for the specified domain(s).

    Show the rest

    This endpoint works by combining two independent functions:

    • Issue and validate the certificate for provided domain names.
    • Attach certificate to existing Site Configuration.
    • Mirror and deliver content of sites mentioned above using your custom domain name.

    In order to clone technical or marketing websites – apply for a verification and check verification results in:

    Note that custom domains are attached to the deployed version of the site. Make sure you deploy it before mirroring onto custom domain.

    FAQ

    How many domains can I include per certificate?

    Currently, only two domain names can be included under the same certificate.

    Can I register my root domain?

    Typically, DNS standards don't allow for CNAME records at the zone apex (also known as the root domain or naked domain). This is because a CNAME record can't coexist with any other data for the same name, and at the zone apex there are always other records, like SOA or NS records. However, some DNS providers provide a way to register records that are not bound to IP-addresses (A and AAAA). List of DNS providers known to support or not support alias records at the apex zone:

    Provider Can Have Alias at Apex Zone Specific Feature Used
    AWS Route 53 Yes Alias Records
    Cloudflare Yes CNAME Flattening
    Azure DNS Yes Alias Records
    DNSimple Yes ALIAS Records
    DNS Made Easy Yes ANAME Records
    NS1 Yes ALIAS Records
    Google Cloud DNS No N/A
    Request
    application/json
    {
      "domain_names": [
        "dmn.foreign.staircaseapi.com"
      ],
      "company_id": "01F7Z8J1M8G8W9XKVX9G1JQFN2",
      "transaction_id": "01F7Z8J1M8G8W9XKVX9G1JQFN2",
      "site_id": "00000aa0000-4080-0aa0-000-000aa00000aa"
    }
    Response
    application/json

    A 422 status code occurs when a request is well-formed, however, due to semantic errors it is unable to be processed.

    {
      "error": {
        "message": "Unprocessable entity.",
        "reason": "Domain name could not be validated."
      }
    }
    Request bodyapplication/json
    4 fields
    FieldTypeDescription
    domain_namesrequiredstring[]List of domain names to be registered. Accepts up to two domain names.
    company_idrequiredstringThe company identifier – requester of the custom assignmentExample 01F7Z8J1M8G8W9XKVX9G1JQFN2
    transaction_idrequiredstringA unique transaction identifierExample 01F7Z8J1M8G8W9XKVX9G1JQFN2
    site_idrequiredstringSite Configuration identifier.Example 00000aa0000-4080-0aa0-000-000aa00000aa
    Response 200application/json
    3 fields

    Success

    FieldTypeDescription
    domainsobject[]List of registered domain names.
    domain_namestringThe custom domain nameExample dmn.foreign.staircaseapi.com
    domain_idstringThe unique identifier for the domainExample c206b986-0a9f-4b88-82b3-67afea9bd9
    certificate_idstringThe unique identifier for the SSL certificateExample c206b986-0a9f-4b88-82b3-67afea9bd9
    certificate_idstringThe unique identifier for the SSL certificateExample c206b986-0a9f-4b88-82b3-67afea9bd9
    transaction_idstringThe unique identifier for the verification processExample 01F7Z8J1M8G8W9XKVX9G1JQFE2
    Other responses

    422

    GET /verifications/{transaction_id}

    Check Certificate and DNS Records

    checkCustomDomainValidation

    Check the status of certificate verification

    Check Certificate and DNS Records

    Retrieves DNS records required to be set up. At the same time retrieves certificate issuance status.

    Each record under records array must be created under corresponding domain name's DNS management system. Only after that certificate will become valid.

    Note: It can take up to 72 hours for the certificate to be validated.

    Show the rest

    DNS providers

    GoDaddy

    When using GoDaddy as a DNS provider, if you create a CNAME record, it will automatically add the @ (root) directive at the end of the record's name. Therefore, if you receive a record with the following information:

    {
     "type": "CNAME",
     "name": "_657987justAnExample2o8ade532806ee.pre-approval.example.com.",
     "value": "_9d20eb7EjustAnotherExample140fd4476.rotmnwfxf.acm-validations.aws."
     "validation_status": "PENDING_VALIDATION"
    }
    

    You should insert the record as shown in the following example:

    • _657987justAnExample2o8ade532806ee.pre-approval (no .example.com. at the end) as a name for the record
    • _9d20eb7EjustAnotherExample140fd4476.rotmnwfxf.acm-validations.aws. as a value for the record
    • For the record type select CNAME
    Route53
    Apex zone

    Create certificate validation record as usual. For the content delivery record at the zone apex, please follow:

    1. Log in to the AWS Management Console: Make sure you're in the account that has the Route 53 hosted zone for your domain.
    2. Open the Route 53 console: Navigate to the Route 53 home page.
    3. Select Hosted Zones: On the Route 53 home page, choose Hosted zones from the navigation pane on the left.
    4. Select your Domain: In the Hosted Zones page, click on the domain name for which you want to create the record.
    5. Create Record Set: On the domain's settings page, click on Create Record.
    6. Configure Record Set:
    • Record name: Leave it blank to use the root domain.
    • Record type: Select A - IPv4 address.
    • Toggle the Alias switch to Yes.
    • In the Route traffic to dropdown, select Alias to CloudFront distribution.
    • In the Choose Distribution dropdown and toggle Switch to Manual Input mode and paste the record which ends with .cloudfront.net.
    1. Create Record Set: After filling in all the details, click on Define simple record and then Create Records.

    Please note that DNS changes can take a while to propagate, so it might take some time before you see your changes take effect.

    To check DNS propagation of a particular record you can use public DNS resolver and look up the record by its name. For example, you can use Google DNS Lookup to do that.

    Response
    application/json

    Success

    {
      "certificate": {
        "status": "PENDING_VALIDATION",
        "created_at": "2023-02-05T00:21:23.295438+00:00"
      },
      "records": [
        {
          "type": "CNAME",
          "name": "_7www9www678222e742953.dmn.foreign.staircaseapi.com",
          "value": "_7329461678222e742953.scffwap.acm-validations.aws",
          "validation_status": "PENDING_VALIDATION"
        },
        {
          "type": "CNAME",
          "name": "dmn.foreign.staircaseapi.com",
          "value": "dwarf-star.cloudfront.net"
        }
      ]
    }
    Parameters
    1
    ParameterTypeExampleDescription
    transaction_id required string path 01F7Z8J1M8G8W9XKVX9G1JQFE2 The unique identifier of the verification task
    Response 200application/json
    2 fields

    Success

    FieldTypeDescription
    certificateobjectCertificate status
    statusrequiredstringWhether the certificate is issued or notEXPIREDFAILEDINACTIVEISSUEDPENDING_VALIDATIONREMOVEDREVOKEDVALIDATION_TIMED_OUT
    issued_atstringCertificate issuance date and time. Present when the certificate status is `ISSUED`.Example 2023-02-04T14:14:42.987868+00:00
    created_atstringCreation date and time for the certificate. Present if the status is not `REMOVED`.Example 2023-02-05T00:21:23.295438+00:00
    recordsobject[]The list of domain names with required to set up records.
    typerequiredstringThe type of the DNS recordCNAMEExample CNAME
    namerequiredstringThe name of the DNS recordExample _7www9www678222e742953.dmn.foreign.staircaseapi.com
    valuerequiredstringThe value of the DNS recordExample _7329461678222e742953.scffwap.acm-validations.aws
    validation_statusstringThe validation status of the domain for the certificate records. Present for certificate validation records exclusively, other records are not validated.FAILEDPENDING_VALIDATIONSUCCESSExample PENDING_VALIDATION
    Other responses

    404422

    DELETE /verifications/{transaction_id}

    Detach Site from Domain

    detachSiteFromDomain

    Provides a way to detach a site from your domain.

    Provides a way to detach a site from domain.

    Keep in mind that deleting DNS records from your DNS provider is on user. Site does not have access to modify those.

    Response
    application/json

    A 422 status code occurs when a request is well-formed, however, due to semantic errors it is unable to be processed.

    {
      "error": {
        "message": "Unprocessable entity.",
        "reason": "Domain name could not be validated."
      }
    }
    Parameters
    1
    ParameterTypeExampleDescription
    transaction_id required string path 01F7Z8J1M8G8W9XKVX9G1JQFE2 The unique identifier of the verification task
    Other responses

    204404422

    PUT /verifications/{transaction_id}/invalidation

    Invalidate Cache

    invalidateCacheCustomSite

    Invalidate cache.

    Invalidates the cache of the site on a custom domain.

    Cache invalidation is recommended to be done whenever the source site is re-deployed.

    Response
    application/json

    Site cache invalidation request accepted

    {
      "transaction_id": "01F7Z8J1M8G8W9XKVX9G1JQFE2"
    }
    Parameters
    1
    ParameterTypeExampleDescription
    transaction_id required string path 01F7Z8J1M8G8W9XKVX9G1JQFE2 The unique identifier of the verification task
    Response 202application/json
    1 fields

    Site cache invalidation request accepted

    FieldTypeDescription
    transaction_idrequiredstringVerification transaction ID.Example 01F7Z8J1M8G8W9XKVX9G1JQFE2
    Other responses

    404422

    PUT /verifications/{transaction_id}/synchronization

    Synchronize

    syncCustomSite

    Synchronize site.

    Synchronizes site on a custom domain with a source site.

    Synchronization is optional, but is recommended to be done whenever sources changes.

    Response
    application/json

    Site synchronization request accepted

    {
      "transaction_id": "01F7Z8J1M8G8W9XKVX9G1JQFE2"
    }
    Parameters
    1
    ParameterTypeExampleDescription
    transaction_id required string path 01F7Z8J1M8G8W9XKVX9G1JQFE2 The unique identifier of the verification task
    Response 202application/json
    1 fields

    Site synchronization request accepted

    FieldTypeDescription
    transaction_idrequiredstringVerification transaction ID.Example 01F7Z8J1M8G8W9XKVX9G1JQFE2
    Other responses

    404422

    GET /certificates

    List Certificates

    listCertificates

    Retrieve a list of registered certificates and their statuses.

    Response
    application/json

    Success

    {
      "certificates": [
        {
          "status": "ISSUED",
          "issued_at": "2023-02-04T14:14:42.987868+00:00",
          "renewal_eligible": "ELIGIBLE",
          "created_at": "2023-02-05T00:21:23.295438+00:00",
          "subject": "CN=xira.example.com",
          "expiry_date": "2024-02-04T23:59:59+00:00"
        },
        {
          "status": "ISSUED",
          "issued_at": "2023-02-04T14:14:42.987868+00:00",
          "renewal_eligible": "ELIGIBLE",
          "created_at": "2023-02-05T00:21:23.295438+00:00",
          "subject": "CN=dmn.foreign.staircaseapi.com",
          "expiry_date": "2024-06-26T23:59:59+00:00"
        }
      ]
    }
    Response 200application/json
    1 fields

    Success

    FieldTypeDescription
    certificatesobject[]List of registered certificates.
    subjectstringThe subject of the certificate.Example CN=dmn.foreign.staircaseapi.com
    statusstringWhether the certificate is issued or notEXPIREDFAILEDINACTIVEISSUEDPENDING_VALIDATIONREMOVEDREVOKEDVALIDATION_TIMED_OUTExample ISSUED
    issued_atstringCertificate issuance date and time. Present when the certificate status is `ISSUED`.Example 2023-02-04T14:14:42.987868+00:00
    expiry_datestringCertificate expiration date and time. Present when the certificate status is `ISSUED`.Example 2023-02-04T14:14:42.987868+00:00
    renewal_eligiblestringWhether the certificate is eligible for renewal.ELIGIBLEINELIGIBLEExample ELIGIBLE
    created_atstringCreation date and time for the certificate. Present if the status is not `REMOVED`.Example 2023-02-05T00:21:23.295438+00:00

    Simple sites[new]

    PUT /simple

    Register Simple Configuration[new]

    registerSimpleAppConfiguration

    Register Simple Configuration

    Simple configuration registration API. The simple site will route requests based on lust of resources specified in the configuration. The simple site will not have any client-side features like authentication, analytics, etc. It will not be affected by iframe downsides. You can specify list of resources to be served by the simple site and error page for restricted access. If analytics google tag manager is provided, the tag will be available via /common.js request. Your environment domain of site is available via /environment.json request. For now only the google analytics tag is supported. In custom object, you can specify custom JS code for common.js API.

    Request
    application/json
    {
      "site_id": "6374c7f8-13fa-454a-8587-bd29724346d6",
      "analytics": {
        "google_analytics_tag": "UA-123456789-1"
      },
      "custom": {
        "commonjs": "my_js_code"
      },
      "url_mappings": [
        {
          "console_app_url": "https://chatmtg-prod.chatmtg.com/chatmtg_apply_app/"
        },
        {
          "console_app_url": "https://chatmtg-prod.chatmtg.com/chatmtg_apply_app/",
          "url_suffix": "/preapproval"
        }
      ]
    }
    Response
    application/json

    A 400 status code occurs when some of provided request parameters is invalid.

    {
      "error": {
        "message": "Bad Request",
        "reason": "Provided token is not valid."
      }
    }
    Request bodyapplication/json
    7 fields
    FieldTypeDescription
    site_idstringThe ID of the site configuration.Example 15a820a6-cac9-4b-a7b1-d364b26d7f69
    last_updatedstring (date-time)Last updated date in ISO format.Example 2024-05-14T11:33:11.755632
    customobjectCustom configuration.
    commonjsstringCustom JS code.Example my_js_code
    domain_namestringDomain name of the site. Available after successful deployment.Example simple-c9985d4f.cerf-dev.staircaseapi.com
    url_mappingsobject[]URL mappings configuration.
    console_app_urlrequiredstring (uri)Console app URL.Example https://chatmtg-prod.chatmtg.com/chatmtg_apply_app/
    url_suffixstring (uri)URL suffix.Example /preapproval
    environmentobjectEnvironment configuration.
    domainstringEnvironment domain of site.Example cerf.staircaseapi.com
    analyticsobjectAnalytics configuration.
    google_analytics_tagstringIf provided, Google Analytics tag will be available inside /common.js request.Example UA-123456789-1
    Response 201application/json
    7 fields

    Success

    FieldTypeDescription
    site_idstringThe ID of the site configuration.Example 15a820a6-cac9-4b-a7b1-d364b26d7f69
    last_updatedstring (date-time)Last updated date in ISO format.Example 2024-05-14T11:33:11.755632
    customobjectCustom configuration.
    commonjsstringCustom JS code.Example my_js_code
    domain_namestringDomain name of the site. Available after successful deployment.Example simple-c9985d4f.cerf-dev.staircaseapi.com
    url_mappingsobject[]URL mappings configuration.
    console_app_urlrequiredstring (uri)Console app URL.Example https://chatmtg-prod.chatmtg.com/chatmtg_apply_app/
    url_suffixstring (uri)URL suffix.Example /preapproval
    environmentobjectEnvironment configuration.
    domainstringEnvironment domain of site.Example cerf.staircaseapi.com
    analyticsobjectAnalytics configuration.
    google_analytics_tagstringIf provided, Google Analytics tag will be available inside /common.js request.Example UA-123456789-1
    Other responses

    400422

    GET /simple

    List Simple Configurations[new]

    listSimpleAppConfigurations

    List Simple Configurations

    Retrieves list of registered simple configurations.

    Response
    application/json

    Success

    {
      "sites": [
        {
          "site_id": "82fc3fd6-9031-4dc5-9f40-81927134f19c",
          "url_mappings": [
            {
              "console_app_url": "https://chatmtg-prod.chatmtg.com/chatmtg_apply_app/"
            },
            {
              "console_app_url": "https://chatmtg-prod.chatmtg.com/chatmtg_apply_app/",
              "url_suffix": "/preapproval"
            }
          ]
        },
        {
          "site_id": "6374c7f8-13fa-454a-8587-bd29724346d6",
          "url_mappings": [
            {
              "console_app_url": "https://chatmtg-prod.chatmtg.com/chatmtg_apply_app/"
            },
            {
              "console_app_url": "https://chatmtg-prod.chatmtg.com/chatmtg_apply_app/",
              "url_suffix": "/preapproval"
            }
          ]
        },
        {
          "site_id": "c98f97c7-e021-4988-973d-d51fe041204b",
          "url_mappings": [
            {
              "console_app_url": "https://chatmtg-prod.chatmtg.com/chatmtg_apply_app/"
            },
            {
              "console_app_url": "https://chatmtg-prod.chatmtg.com/chatmtg_apply_app/",
              "url_suffix": "/preapproval"
            }
          ]
        }
      ],
      "next_token": null
    }
    Response 200application/json
    2 fields

    Success

    FieldTypeDescription
    sitesarrayRepresents the array of simple sites.
    next_tokenstringNext token to be used in the next request to fetch the next page of configurations.
    GET /simple/{site_id}

    Get Simple Configuration[new]

    getSimpleSite

    Get Simple Site

    Retrieves simple site by ID.

    Response
    application/json

    Success

    {
      "site_id": "82fc3fd6-9031-4dc5-9f40-81927134f19c",
      "domain_name": "simple-c9985d4f.cerf-dev.staircaseapi.com",
      "custom": {
        "commonjs": "my_js_code"
      },
      "url_mappings": [
        {
          "console_app_url": "https://chatmtg-prod.chatmtg.com/chatmtg_apply_app/"
        },
        {
          "console_app_url": "https://chatmtg-prod.chatmtg.com/chatmtg_apply_app/",
          "url_suffix": "/preapproval"
        }
      ]
    }
    Parameters
    1
    ParameterTypeExampleDescription
    site_id required string path 15a820a6-cac9-4b-a7b1-d364b26d7f69 Site ID
    Response 200application/json
    7 fields

    Success

    FieldTypeDescription
    site_idstringThe ID of the site configuration.Example 15a820a6-cac9-4b-a7b1-d364b26d7f69
    last_updatedstring (date-time)Last updated date in ISO format.Example 2024-05-14T11:33:11.755632
    customobjectCustom configuration.
    commonjsstringCustom JS code.Example my_js_code
    domain_namestringDomain name of the site. Available after successful deployment.Example simple-c9985d4f.cerf-dev.staircaseapi.com
    url_mappingsobject[]URL mappings configuration.
    console_app_urlrequiredstring (uri)Console app URL.Example https://chatmtg-prod.chatmtg.com/chatmtg_apply_app/
    url_suffixstring (uri)URL suffix.Example /preapproval
    environmentobjectEnvironment configuration.
    domainstringEnvironment domain of site.Example cerf.staircaseapi.com
    analyticsobjectAnalytics configuration.
    google_analytics_tagstringIf provided, Google Analytics tag will be available inside /common.js request.Example UA-123456789-1
    Other responses

    404

    PUT /deployments-simple-site

    Deploy Simple siteConfiguration

    deploySimpleSiteConfiguration

    Deploy Simple site Configuration

    Deploy Configuration

    Sites are installed under environment's subdomain. Each site configuration gets its own short ID, which is used in the future domain name of the site.

    Example of the URL: site-3065e3b5.xchange.staircaseapi.com.

    Observe deployment status

    Events are sent in payloads of a “HTTP requests” using POST method.

    {
     "$schema": "",
     "additionalProperties": true,
     "type": "object",
     "required": ["status", "transaction_id", "domain_name"],
     "description": "Schema for the payload event emitted to callback.",
     "properties": {
     "transaction_id": {
     "type": "string",
     "description": "Transaction identifier. Unique per deployment and managed by Site."
     },
     "status": {
     "type": "string",
     "description": "Provisioning status.",
     "enum": ["SUCCEEDED", "FAILED"]
     },
     "domain_name": {
     "type": "string",
     "description": "Domain name of the site."
     },
     "error": {
     "type": "object",
     "additionalProperties": true,
     "description": "Deployment has failed unexpectedly. Error details are provided in this object. Note that you should contact the support team when the error occurs."
     }
     }
    }
    
    Troubleshooting

    Events are dispatched once the deployment process completes.

    Show the rest

    An event is deemed as successfully delivered when its recipient acknowledges with an HTTP status code that falls within the range of successful responses. If an event isn't successfully delivered, the Site will make six additional attempts to resend the event, with each attempt following an exponential back off strategy.

    To confirm the propagation of the webhook, you can utilize Retrieve Transaction Collections with the transaction ID, which is returned during the initialization of deployment.

    Request
    application/json
    {
      "site_id": "6374c7f8-13fa-454a-8587-bd29724346f7",
      "callback_url": "https://webhooks.staircaseapi.com/persistence/bridge/o09jun2kjhjkkkiDj"
    }
    Response
    application/json

    A 400 status code occurs when some of provided request parameters is invalid.

    {
      "error": {
        "message": "Bad Request",
        "reason": "Provided token is not valid."
      }
    }
    Request bodyapplication/json
    2 fields
    FieldTypeDescription
    site_idrequiredstringSimple site flow configuration ID.Example 6374c7f8-13fa-454a-8587-bd29724346f7
    callback_urlrequiredstringCallback URL.Example https://webhooks.staircaseapi.com/persistence/bridge/o09jun2kjhjkkkiDj
    Response 200application/json
    5 fields

    Success

    FieldTypeDescription
    deploy_idstringdeploy_idExample 16af04ab-eb62-42b7-8778-a79234d137ce
    domain_namerequiredstringGenerated domain name for the site.Example site-abc00def.xchange.staircaseapi.com
    transaction_idrequiredstringTransaction ID.Example 01H021M9X10AN9XNNJ8THMMMMM
    callback_urlstringThe callback URL is returned as is. The value will match the input `callback_url`.Example https://webhooks.staircaseapi.com/persistence/bridge/o09jun2kjhjkkkiDj
    site_idstringSimple site ID. The value will match the input `site_id`.Example 6374c7f8-13fa-454a-8587-bd29724346f7
    Other responses

    400404422

    GET /deployments-simple-site/{deploy_id}

    Deploy Simple siteConfiguration

    deploySimpleSiteConfigurationStatus

    Deploy Simple site Configuration Status

    API for checking the status of the simple site deployment.

    Response
    application/json

    Success

    {
      "status": "SUCCEEDED"
    }
    Parameters
    1
    ParameterTypeExampleDescription
    deploy_id required string path 15a820a6-cac9-4b-a7b1-d364b26d7f69 Deploy ID.
    Response 200application/json
    1 fields

    Success

    FieldTypeDescription
    statusstringDeployment status.RUNNINGSUCCEEDEDFAILEDTIMED_OUTABORTEDPENDING_REDRIVEExample SUCCEEDED
    Other responses

    404

    GET /simple/{site_id}/custom-domain

    Custom domain status[new]

    customDomainStatus

    Custom Domain Status

    Fetch status of custom domain attachment.

    Response
    application/json

    Success

    {
      "domain_name": "example.chatmtg.com",
      "certificate_arn": "arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012",
      "attach": true
    }
    Parameters
    1
    ParameterTypeExampleDescription
    site_id required string path 15a820a6-cac9-4b-a7b1-d364b26d7f69 Site ID
    Response 200application/json
    3 fields

    Success

    FieldTypeDescription
    attachbooleanAttach flag.Example false
    domain_namestringCustom domain name.Example example.chatmtg.com
    certificate_arnstringACM Certificate ARN.Example arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012
    Other responses

    404

    PUT /simple/{site_id}/custom-domain

    Attach custom domain[new]

    attachCustomDomain

    Attach Custom Domain

    Allows to attach custom domain to the simple site. Simple site can be deployed under different domain name (custom domain name). In order to deploy the site under custom domain name, you need to provide the domain name and ACM Certificate ARN in the configuration. After it, the site will be deployed under the provided domain name, and previous domain name will not be accessible. First deployment should use attach flag as false. After the deployment, grab the cloudfront distribution name and put in into CNAME record of your custom domain. After that, you can deploy the site with attach flag as true. After attaching custom domain name it is impossible to go back to default domain name.

    Response
    application/json

    Success

    {
      "domain_name": "example.chatmtg.com",
      "certificate_arn": "arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012",
      "attach": true
    }
    Parameters
    1
    ParameterTypeExampleDescription
    site_id required string path 15a820a6-cac9-4b-a7b1-d364b26d7f69 Site ID
    Response 201application/json
    3 fields

    Success

    FieldTypeDescription
    attachbooleanAttach flag.Example false
    domain_namestringCustom domain name.Example example.chatmtg.com
    certificate_arnstringACM Certificate ARN.Example arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012
    Other responses

    400404422

    POST /simple/{site_id}/invalidate-cache

    Invalidate cache[new]

    invalidateCache

    Invalidate Cache

    Starts cache invalidation process for the site. Process is asynchronous and can take up to 15 minutes.

    Request
    application/json
    {
      "items": [
        "listings*"
      ]
    }
    Response
    application/json

    Success

    {
      "message": "Cache invalidation started"
    }
    Parameters
    1
    ParameterTypeExampleDescription
    site_id required string path 15a820a6-cac9-4b-a7b1-d364b26d7f69 Site ID
    Request bodyapplication/json
    1 fields
    FieldTypeDescription
    itemsrequiredstring[]List of items to invalidate
    Response 202application/json
    1 fields

    Success

    FieldTypeDescription
    messagestringMessage about the cache invalidation process.
    Other responses

    400404422

    Marketing: Companies

    GET /marketing/companies

    Retrieve Companies

    Companies

    Retrieve Companies

    Response
    application/json

    Approval uploaded

    {
      "partners": [
        {
          "name": "partner_x",
          "logo": "https://site-content.domain.staircaseapi.com/marketing/partners/partner_x/logo.png"
        }
      ]
    }
    Parameters
    1
    ParameterTypeExampleDescription
    company_type required string query customer filters by concrete company type.
    Response 200application/json
    1 fields

    Approval uploaded

    FieldTypeDescription
    partnersobject[]The partner list
    namestringName
    logostringLogo URL
    Response 400application/json
    2 fields

    Bad Request

    FieldTypeDescription
    errorstringError.
    messagestringError message.
    Response 404application/json
    1 fields

    Publishing not found.

    FieldTypeDescription
    messagestringMessage which contains information about requested entity
    Response 500application/json
    1 fields

    Server error

    FieldTypeDescription
    errorrequiredstringError message.
    Response 502application/json
    1 fields

    Server error

    FieldTypeDescription
    errorstringError message.
    Other responses

    403

    POST /marketing/companies

    Add Company

    addCompany

    Add Company

    Request
    application/json
    {
      "name": "Company_X",
      "company_type": "partner",
      "logo_url": "https://dev-data-manager-blobs-bucket-us-east-1-581813358386.s3.amazonaws.com/01G0J3GRQER1DH5HXNYA7S39YN.png?response-content-type=image%2Fpng&AWSAccessKeyId=<redacted>&Signature=<redacted>&x-amz-security-token=<redacted>&Expires=1651062920",
      "logo_extension": ".png"
    }
    Response
    application/json

    Example response

    {
      "message": "Created"
    }
    Request bodyapplication/json
    4 fields
    FieldTypeDescription
    namerequiredstringCompany Name
    company_typerequiredstringCompany Typeadaptercustomerpartner
    logo_urlrequiredstringLogo URL
    logo_extensionrequiredstringLogo Extension
    Response 201application/json
    1 fields

    Example response

    FieldTypeDescription
    messagerequiredstringMessage
    Response 404application/json
    1 fields

    Publishing not found.

    FieldTypeDescription
    messagestringMessage which contains information about requested entity
    Response 422application/json
    1 fields

    Bad request.

    FieldTypeDescription
    errorstringError message.
    Response 500application/json
    1 fields

    Server error

    FieldTypeDescription
    errorrequiredstringError message.
    Response 502application/json
    1 fields

    Server error

    FieldTypeDescription
    errorstringError message.
    Other responses

    403

    DELETE /marketing/companies/{company_name}

    Delete Company

    Company

    Delete Company

    Response
    text/html

    Bad Request

    <html>\r\n<head><title>400 Bad Request</title></head>\r\n<body>\r\n<center><h1>400 Bad Request</h1></center>\r\n</body>\r\n</html>\r\n
    Parameters
    2
    ParameterTypeExampleDescription
    x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx API key of Environment.
    company_name required string path Truework Company Name
    Response 400application/json
    2 fields

    Bad Request

    FieldTypeDescription
    errorstringError.
    messagestringError message.
    Response 404application/json
    1 fields

    Publishing not found.

    FieldTypeDescription
    messagestringMessage which contains information about requested entity
    Response 500application/json
    1 fields

    Server error

    FieldTypeDescription
    errorrequiredstringError message.
    Response 502application/json
    1 fields

    Server error

    FieldTypeDescription
    errorstringError message.
    Other responses

    204403

    Marketing: Product Ontology

    GET /marketing/ontology

    Retrieve Product Ontology

    retrieveMarketingProductOntology

    Retrieve Product Ontology

    Response
    application/json

    Success response

    {
      "product_families": [
        {
          "name": "Mortgage Products",
          "product_categories": [
            {
              "name": "Data Manager",
              "products": [
                {
                  "name": "Document Classification"
                },
                {
                  "name": "Data Extraction"
                },
                {
                  "name": "Ground Truth Labeling"
                }
              ]
            },
            {
              "name": "Borrower",
              "products": [
                {
                  "name": "Employment"
                },
                {
                  "name": "Credit"
                },
                {
                  "name": "Income"
                },
                {
                  "name": "Assets"
                }
              ]
            },
            {
              "name": "Collateral",
              "products": [
                {
                  "name": "Automated Valuation Model (AVM)"
                },
                {
                  "name": "Property Taxes"
                }
              ]
            },
            {
              "name": "Loan",
              "products": [
                {
                  "name": "Pricing"
                },
                {
                  "name": "Fees"
                }
              ]
            },
            {
              "name": "Adapters",
              "products": [
                {
                  "name": "LOS"
                }
              ]
            }
          ]
        },
        {
          "name": "Mortgage Processes",
          "product_categories": [
            {
              "name": "Application",
              "products": [
                {
                  "name": "Pre-Approval"
                }
              ]
            },
            {
              "name": "Underwriting",
              "products": [
                {
                  "name": "Loan Eligibility"
                },
                {
                  "name": "Automated Underwriting System (AUS)"
                }
              ]
            },
            {
              "name": "Servicing",
              "products": [
                {
                  "name": "Loanboarding"
                }
              ]
            }
          ]
        },
        {
          "name": "Platform",
          "product_categories": [
            {
              "name": "Integrate",
              "products": [
                {
                  "name": "Connector"
                },
                {
                  "name": "Job"
                },
                {
                  "name": "Product"
                }
              ]
            },
            {
              "name": "Data",
              "products": [
                {
                  "name": "Persistence"
                },
                {
                  "name": "Data Extraction Training"
                },
                {
                  "name": "Translator"
                },
                {
                  "name": "Language"
                },
                {
                  "name": "Rule"
                },
                {
                  "name": "Site"
                }
              ]
            }
          ]
        },
        {
          "name": "Devops",
          "product_categories": [
            {
              "name": "Distribute",
              "products": [
                {
                  "name": "Environment"
                },
                {
                  "name": "Account"
                },
                {
                  "name": "Marketplace"
                },
                {
                  "name": "Host"
                },
                {
                  "name": "Company"
                },
                {
                  "name": "Setup"
                }
              ]
            },
            {
              "name": "Ship",
              "products": [
                {
                  "name": "Code"
                },
                {
                  "name": "Assess"
                },
                {
                  "name": "Build"
                },
                {
                  "name": "Deploy"
                },
                {
                  "name": "Test"
                },
                {
                  "name": "Health"
                },
                {
                  "name": "Comply"
                },
                {
                  "name": "Experience"
                },
                {
                  "name": "Work"
                }
              ]
            }
          ]
        },
        {
          "name": "Operations",
          "product_categories": [
            {
              "name": "Operations",
              "products": [
                {
                  "name": "Capital Allocation"
                }
              ]
            }
          ]
        }
      ]
    }
    Response 200application/json
    1 fields

    Success response

    FieldTypeDescription
    product_familiesrequiredobject[]Product Families
    namerequiredstringFamily name
    descriptionstringFamily description
    colorstringFamily color code
    product_categoriesrequiredobject[]Product categories
    namerequiredstringCategory name
    descriptionstringCategory description
    colorstringCategory color code
    productsrequiredobject[]Products
    namerequiredstringProduct name
    descriptionstringProduct description
    colorstringProduct color code
    Response 404application/json
    1 fields

    Publishing not found.

    FieldTypeDescription
    messagestringMessage which contains information about requested entity
    Response 422application/json
    1 fields

    Bad request.

    FieldTypeDescription
    errorstringError message.
    Response 500application/json
    1 fields

    Server error

    FieldTypeDescription
    errorrequiredstringError message.
    Response 502application/json
    1 fields

    Server error

    FieldTypeDescription
    errorstringError message.
    Other responses

    403

    POST /marketing/ontology

    Create Product Ontology

    createMarketingProductOntology

    Add Product Ontology

    Request
    application/json
    {
      "ontology": {
        "product_families": [
          {
            "name": "Mortgage Products",
            "product_categories": [
              {
                "name": "Data Manager",
                "products": [
                  {
                    "name": "Document Classification"
                  },
                  {
                    "name": "Data Extraction"
                  },
                  {
                    "name": "Ground Truth Labeling"
                  }
                ]
              },
              {
                "name": "Borrower",
                "products": [
                  {
                    "name": "Employment"
                  },
                  {
                    "name": "Credit"
                  },
                  {
                    "name": "Income"
                  },
                  {
                    "name": "Assets"
                  }
                ]
              },
              {
                "name": "Collateral",
                "products": [
                  {
                    "name": "Automated Valuation Model (AVM)"
                  },
                  {
                    "name": "Property Taxes"
                  }
                ]
              },
              {
                "name": "Loan",
                "products": [
                  {
                    "name": "Pricing"
                  },
                  {
                    "name": "Fees"
                  }
                ]
              },
              {
                "name": "Adapters",
                "products": [
                  {
                    "name": "LOS"
                  }
                ]
              }
            ]
          },
          {
            "name": "Mortgage Processes",
            "product_categories": [
              {
                "name": "Application",
                "products": [
                  {
                    "name": "Pre-Approval"
                  }
                ]
              },
              {
                "name": "Underwriting",
                "products": [
                  {
                    "name": "Loan Eligibility"
                  },
                  {
                    "name": "Automated Underwriting System (AUS)"
                  }
                ]
              },
              {
                "name": "Servicing",
                "products": [
                  {
                    "name": "Loanboarding"
                  }
                ]
              }
            ]
          },
          {
            "name": "Platform",
            "product_categories": [
              {
                "name": "Integrate",
                "products": [
                  {
                    "name": "Connector"
                  },
                  {
                    "name": "Job"
                  },
                  {
                    "name": "Product"
                  }
                ]
              },
              {
                "name": "Data",
                "products": [
                  {
                    "name": "Persistence"
                  },
                  {
                    "name": "Data Extraction Training"
                  },
                  {
                    "name": "Translator"
                  },
                  {
                    "name": "Language"
                  },
                  {
                    "name": "Rule"
                  },
                  {
                    "name": "Site"
                  }
                ]
              }
            ]
          },
          {
            "name": "Devops",
            "product_categories": [
              {
                "name": "Distribute",
                "products": [
                  {
                    "name": "Environment"
                  },
                  {
                    "name": "Account"
                  },
                  {
                    "name": "Marketplace"
                  },
                  {
                    "name": "Host"
                  },
                  {
                    "name": "Company"
                  },
                  {
                    "name": "Setup"
                  }
                ]
              },
              {
                "name": "Ship",
                "products": [
                  {
                    "name": "Code"
                  },
                  {
                    "name": "Assess"
                  },
                  {
                    "name": "Build"
                  },
                  {
                    "name": "Deploy"
                  },
                  {
                    "name": "Test"
                  },
                  {
                    "name": "Health"
                  },
                  {
                    "name": "Comply"
                  },
                  {
                    "name": "Experience"
                  },
                  {
                    "name": "Work"
                  }
                ]
              }
            ]
          },
          {
            "name": "Operations",
            "product_categories": [
              {
                "name": "Operations",
                "products": [
                  {
                    "name": "Capital Allocation"
                  }
                ]
              }
            ]
          }
        ]
      }
    }
    Response
    application/json

    Example response

    {
      "message": "Created"
    }
    Request bodyapplication/json
    1 fields
    FieldTypeDescription
    ontologyrequiredobjectMarketing Ontology
    product_familiesrequiredobject[]Product Families
    namerequiredstringFamily name
    descriptionstringFamily description
    colorstringFamily color code
    product_categoriesrequiredobject[]Product categories
    namerequiredstringCategory name
    descriptionstringCategory description
    colorstringCategory color code
    productsrequiredobject[]Products
    Response 201application/json
    1 fields

    Example response

    FieldTypeDescription
    messagerequiredstringMessage
    Response 404application/json
    1 fields

    Publishing not found.

    FieldTypeDescription
    messagestringMessage which contains information about requested entity
    Response 422application/json
    1 fields

    Bad request.

    FieldTypeDescription
    errorstringError message.
    Response 500application/json
    1 fields

    Server error

    FieldTypeDescription
    errorrequiredstringError message.
    Response 502application/json
    1 fields

    Server error

    FieldTypeDescription
    errorstringError message.
    Other responses

    403

    DELETE /marketing/ontology/families/{family_id}

    Delete Product Family

    deleteMarketingProductFamily

    Delete Product Ontology

    Delete Product Family

    Parameters
    1
    ParameterTypeExampleDescription
    family_id required string path platform The family id
    Response 404application/json
    1 fields

    Publishing not found.

    FieldTypeDescription
    messagestringMessage which contains information about requested entity
    Response 422application/json
    1 fields

    Bad request.

    FieldTypeDescription
    errorstringError message.
    Response 500application/json
    1 fields

    Server error

    FieldTypeDescription
    errorrequiredstringError message.
    Response 502application/json
    1 fields

    Server error

    FieldTypeDescription
    errorstringError message.
    Other responses

    204403

    GET /marketing/ontology/families/{family_id}

    Retrieve Product Family

    retrieveMarketingProductFamily

    Retrieve Product Ontology

    Retrieve Product Family

    Response
    application/json

    Successfully got the response

    {
      "category": "",
      "color": "",
      "name": "Platform",
      "component_type": "FAMILY",
      "description": "",
      "family": "",
      "id": "platform",
      "logo_url": "https://site-content.dev-site.staircaseapi.com/marketing/ontology/families/platform/content/public/logo.svg",
      "pk": "ONTOLOGY",
      "sk": "FAMILY#platform",
      "product_categories": [
        {
          "category": "",
          "color": "",
          "name": "Data",
          "component_type": "CATEGORY",
          "description": "",
          "family": "platform",
          "id": "data",
          "logo_url": "",
          "pk": "ONTOLOGY",
          "sk": "FAMILY#platform#CATEGORY#data",
          "products": [
            {
              "category": "data",
              "color": "",
              "name": "Data Extraction Training",
              "component_type": "PRODUCT",
              "description": "",
              "family": "platform",
              "id": "data-extraction-training",
              "logo_url": "",
              "pk": "ONTOLOGY",
              "sk": "FAMILY#platform#CATEGORY#data#PRODUCT#data-extraction-training"
            },
            {
              "category": "data",
              "color": "",
              "name": "Language",
              "component_type": "PRODUCT",
              "description": "",
              "family": "platform",
              "id": "language",
              "logo_url": "",
              "pk": "ONTOLOGY",
              "sk": "FAMILY#platform#CATEGORY#data#PRODUCT#language"
            },
            {
              "category": "data",
              "color": "",
              "name": "Persistence",
              "component_type": "PRODUCT",
              "description": "",
              "family": "platform",
              "id": "persistence",
              "logo_url": "",
              "pk": "ONTOLOGY",
              "sk": "FAMILY#platform#CATEGORY#data#PRODUCT#persistence"
            },
            {
              "category": "data",
              "color": "",
              "name": "Rule",
              "component_type": "PRODUCT",
              "description": "",
              "family": "platform",
              "id": "rule",
              "logo_url": "",
              "pk": "ONTOLOGY",
              "sk": "FAMILY#platform#CATEGORY#data#PRODUCT#rule"
            },
            {
              "category": "data",
              "color": "",
              "name": "Site",
              "component_type": "PRODUCT",
              "description": "",
              "family": "platform",
              "id": "site",
              "logo_url": "https://site-content.dev-site.staircaseapi.com/marketing/ontology/families/platform/categories/data/products/site/content/public/logo.svg",
              "pk": "ONTOLOGY",
              "sk": "FAMILY#platform#CATEGORY#data#PRODUCT#site"
            },
            {
              "category": "data",
              "color": "",
              "name": "Translator",
              "component_type": "PRODUCT",
              "description": "",
              "family": "platform",
              "id": "translator",
              "logo_url": "",
              "pk": "ONTOLOGY",
              "sk": "FAMILY#platform#CATEGORY#data#PRODUCT#translator"
            }
          ]
        },
        {
          "category": "",
          "color": "",
          "name": "Integrate",
          "component_type": "CATEGORY",
          "description": "",
          "family": "platform",
          "id": "integrate",
          "logo_url": "",
          "pk": "ONTOLOGY",
          "sk": "FAMILY#platform#CATEGORY#integrate",
          "products": [
            {
              "category": "integrate",
              "color": "",
              "name": "Connector",
              "component_type": "PRODUCT",
              "description": "",
              "family": "platform",
              "id": "connector",
              "logo_url": "",
              "pk": "ONTOLOGY",
              "sk": "FAMILY#platform#CATEGORY#integrate#PRODUCT#connector"
            },
            {
              "category": "integrate",
              "color": "",
              "name": "Job",
              "component_type": "PRODUCT",
              "description": "",
              "family": "platform",
              "id": "job",
              "logo_url": "",
              "pk": "ONTOLOGY",
              "sk": "FAMILY#platform#CATEGORY#integrate#PRODUCT#job"
            },
            {
              "category": "integrate",
              "color": "",
              "name": "Product",
              "component_type": "PRODUCT",
              "description": "",
              "family": "platform",
              "id": "product",
              "logo_url": "",
              "pk": "ONTOLOGY",
              "sk": "FAMILY#platform#CATEGORY#integrate#PRODUCT#product"
            }
          ]
        }
      ]
    }
    Parameters
    1
    ParameterTypeExampleDescription
    family_id required string path platform The family id
    Response 200application/json
    11 fields

    Successfully got the response

    FieldTypeDescription
    categorystringThe category name
    colorstringColor code
    namerequiredstringThe component name
    component_typerequiredstringComponent Type
    descriptionrequiredstringDescription
    familystringFamily
    idrequiredstringComponent ID
    logo_urlstringThe logo URL
    pkrequiredstringkey
    skrequiredstringThe path key
    product_categoriesrequiredobject[]Product categories
    categorystringCategory name
    colorstringThe color code
    namerequiredstringComponent Name
    component_typerequiredstringComponent Type
    descriptionrequiredstringDescription
    familystringFamily
    idrequiredstringID
    logo_urlstringThe logo URL
    pkrequiredstringPK
    skrequiredstringSK
    productsobject[]Products List
    categorystringCategory
    colorstringColor Code
    namerequiredstringComponent Name
    component_typerequiredstringComponent Type
    descriptionrequiredstringDescription
    familystringFamily
    idrequiredstringID
    logo_urlstringLogo URL
    pkrequiredstringPK
    skrequiredstringSK
    Response 404application/json
    1 fields

    Publishing not found.

    FieldTypeDescription
    messagestringMessage which contains information about requested entity
    Response 422application/json
    1 fields

    Bad request.

    FieldTypeDescription
    errorstringError message.
    Response 500application/json
    1 fields

    Server error

    FieldTypeDescription
    errorrequiredstringError message.
    Response 502application/json
    1 fields

    Server error

    FieldTypeDescription
    errorstringError message.

    Tech: Overview

    PUT /tech/products/{product_name}/content/public/{content_name}

    Upload Product Public Content[updated]

    uploadPublicContent

    Upload Public Content

    Upload your Public Content

    ! Note: You should avoid using spaces at your content name

    Big size files

    Site platform has some restrictions at request body size. Once you reach this limit, you will face 413 Payload Too Large error.

    413 Payload Too Large error fix

    Request
    application/json
    Select option 'binary' in order to upload file
    Response
    application/json

    Approval uploaded

    {
      "download_url": "https://documentation.staircaseapi.com/products/Site/content/public/notebook.ipynb"
    }
    Parameters
    3
    ParameterTypeExampleDescription
    product_name required string path Site Product name which was specified as 'x-product-name' in product swagger file.
    content_name required string path notebook.ipynb The name of the content (should contain extension too)
    Content-Type required string header application/vnd.jupyter Mime type of the file
    Response 200application/json
    1 fields

    Approval uploaded

    FieldTypeDescription
    download_urlstringDownload URL for the uploaded content
    Response 400application/json
    2 fields

    Bad Request

    FieldTypeDescription
    errorstringError.
    messagestringError message.
    Response 404application/json
    1 fields

    Publishing not found.

    FieldTypeDescription
    messagestringMessage which contains information about requested entity
    Response 500application/json
    1 fields

    Server error

    FieldTypeDescription
    errorrequiredstringError message.
    Response 502application/json
    1 fields

    Server error

    FieldTypeDescription
    errorstringError message.
    Other responses

    403

    GET /tech/products/{product_name}/content/public/{content_name}/presigned-url

    Get Presigned URL to upload Public Content[new]

    uploadPublicContentPresignedUrl

    Get Presigned URL to upload Public Content

    Upload your big size Public Content

    This is a functional duplicate of this endpoint.

    Just use upload_Presigned_URL from response to upload your any-size content!

    ! Note: it is important to set correct {content_name} and {content_type} values according to your file!

    ! Note: You should avoid using spaces at your content name

    Response
    application/json

    Approval uploaded

    {
      "download_url": "https://documentation.staircaseapi.com/products/Site/content/public/filename.pdf",
      "presigned_upload_url": "https://site-api-dev-publishingbucket-kz0j6vc5htl0.s3.amazonaws.com/products/Site/content/public/filename.pdf?AWSAccessKeyId=<redacted>&Signature=<redacted>&content-type=application%2Fpdf&x-amz-security-token=<redacted>&Expires=1665605220"
    }
    Parameters
    3
    ParameterTypeExampleDescription
    product_name required string path Site Product name which was specified as 'x-product-name' in product swagger file
    content_name required string path filename.pdf The name of the content (should contain extension too)
    content_type required string query application/pdf Content-Type of file you want to upload via Presigned URL
    Response 200application/json
    2 fields

    Approval uploaded

    FieldTypeDescription
    download_urlstringDownload URL for the uploaded content
    presigned_upload_urlstringPresigned Upload URL for the content
    Response 400application/json
    2 fields

    Bad Request

    FieldTypeDescription
    errorstringError.
    messagestringError message.
    Response 404application/json
    1 fields

    Publishing not found.

    FieldTypeDescription
    messagestringMessage which contains information about requested entity
    Response 500application/json
    1 fields

    Server error

    FieldTypeDescription
    errorrequiredstringError message.
    Response 502application/json
    1 fields

    Server error

    FieldTypeDescription
    errorstringError message.
    Other responses

    403

    GET /tech/products/{product_name}/components/{component_name}/overview

    Get Component Overview Page

    getComponentOverviewPage

    Get component overview page HTML content.

    Response
    application/json

    Success response

    {
      "overview_embedded": "<!DOCTYPE html>\n<p><html lang=\"en\">\n<head>\n</head></p></html></p>"
    }
    Parameters
    2
    ParameterTypeExampleDescription
    product_name required string path Site Product name which was specified as 'x-product-component' in product swagger file.
    component_name required string path Marketing: Product Ontology Component name which was specified as 'x-product-name' in product swagger file.
    Response 200application/json
    1 fields

    Success response

    FieldTypeDescription
    overviewstringHTML content of embedded overview page.Example <!DOCTYPE html> <p><html lang="en"> <head> </head></p></html></p>
    Response 400application/json
    2 fields

    Bad Request

    FieldTypeDescription
    errorstringError.
    messagestringError message.
    Response 404application/json
    1 fields

    Publishing not found.

    FieldTypeDescription
    messagestringMessage which contains information about requested entity
    Response 500application/json
    1 fields

    Server error

    FieldTypeDescription
    errorrequiredstringError message.
    Response 502application/json
    1 fields

    Server error

    FieldTypeDescription
    errorstringError message.
    Other responses

    403

    POST /tech/products/{product_name}/components/{component_name}/overview

    Add Component Overview Page

    postComponentOverviewPage

    Add Component Overview Page.

    Request
    application/json
    {
      "overview": ""
    }
    Response
    application/json

    Success response

    {
      "overview_embedded": "<!DOCTYPE html>\n<p><html lang=\"en\">\n<head>\n</head></p></html></p>"
    }
    Parameters
    2
    ParameterTypeExampleDescription
    product_name required string path Site Product name which was specified as 'x-product-component' in product swagger file.
    component_name required string path Marketing: Product Ontology Component name which was specified as 'x-product-name' in product swagger file.
    Request bodyapplication/json
    1 fields
    FieldTypeDescription
    overviewstringOverview markdown or HTML
    Response 200application/json
    1 fields

    Success response

    FieldTypeDescription
    overview_embeddedstringHTML content of embedded overview page.Example <!DOCTYPE html> <p><html lang="en"> <head> </head></p></html></p>
    Response 400application/json
    2 fields

    Bad Request

    FieldTypeDescription
    errorstringError.
    messagestringError message.
    Response 404application/json
    1 fields

    Publishing not found.

    FieldTypeDescription
    messagestringMessage which contains information about requested entity
    Response 422application/json
    1 fields

    Bad request.

    FieldTypeDescription
    errorstringError message.
    Response 500application/json
    1 fields

    Server error

    FieldTypeDescription
    errorrequiredstringError message.
    Response 502application/json
    1 fields

    Server error

    FieldTypeDescription
    errorstringError message.
    Other responses

    403

    GET /tech/products/{product_name}/overview

    Get Overview Page

    getOverviewEmbedded

    Get overview Page

    Get product overview page HTML content.

    Response
    application/json

    Success response

    {
      "overview_embedded": "<!DOCTYPE html>\n<p><html lang=\"en\">\n<head>\n</head></p></html></p>"
    }
    Parameters
    1
    ParameterTypeExampleDescription
    product_name required string path Site Product name which was specified as 'x-product-name' in product swagger file.
    Response 200application/json
    1 fields

    Success response

    FieldTypeDescription
    overview_embeddedstringHTML content of embedded overview page.Example <!DOCTYPE html> <p><html lang="en"> <head> </head></p></html></p>
    Response 400application/json
    2 fields

    Bad Request

    FieldTypeDescription
    errorstringError.
    messagestringError message.
    Response 404application/json
    1 fields

    Publishing not found.

    FieldTypeDescription
    messagestringMessage which contains information about requested entity
    Response 500application/json
    1 fields

    Server error

    FieldTypeDescription
    errorrequiredstringError message.
    Response 502application/json
    1 fields

    Server error

    FieldTypeDescription
    errorstringError message.
    Other responses

    403

    POST /tech/products/{product_name}/overview

    Add Overview Page

    postOverviewPage

    Add Product Overview Page.

    Request
    application/json
    {
      "overview": ""
    }
    Response
    application/json

    Success response

    {
      "overview_embedded": "<!DOCTYPE html>\n<p><html lang=\"en\">\n<head>\n</head></p></html></p>"
    }
    Parameters
    1
    ParameterTypeExampleDescription
    product_name required string path Site Product name which was specified as 'x-product-component' in product swagger file.
    Request bodyapplication/json
    1 fields
    FieldTypeDescription
    overviewstringOverview markdown or HTML
    Response 200application/json
    1 fields

    Success response

    FieldTypeDescription
    overview_embeddedstringHTML content of embedded overview page.Example <!DOCTYPE html> <p><html lang="en"> <head> </head></p></html></p>
    Response 400application/json
    2 fields

    Bad Request

    FieldTypeDescription
    errorstringError.
    messagestringError message.
    Response 404application/json
    1 fields

    Publishing not found.

    FieldTypeDescription
    messagestringMessage which contains information about requested entity
    Response 422application/json
    1 fields

    Bad request.

    FieldTypeDescription
    errorstringError message.
    Response 500application/json
    1 fields

    Server error

    FieldTypeDescription
    errorrequiredstringError message.
    Response 502application/json
    1 fields

    Server error

    FieldTypeDescription
    errorstringError message.
    Other responses

    403

    Tech: Logo[new]

    Operations

    GET /getting-started

    Content for getting-started section

    Get content for getting started section

    Other responses

    200403

    POST /hello-world

    Hello World

    Dummy hello world endpoint

    Other responses

    200

    Errors

    400401403404407422500502

    Type to search.