<!-- https://staircase.co/delivery/distribution/console -->
# Console

# Console

The configurable application shell every front end was assembled in.

An application in the Console is a configuration rather than a codebase: components, their properties and their ordering, resolved against a shared component library and packaged into a deployable front end.

The library covers the primitives plus custom components built for this domain. Configuration-driven assembly is what carried several interfaces without several front-end codebases.

## How it works

Three systems meet at one identifier. A design file is imported into the cloud provider's own component library, which generates typed components from it; a content system holds the configuration saying which of those components appear, in what order, with what labels, and against which endpoint; and the catalogue holds the record that names the application. All three are keyed on the configuration identifier Marketplace issues, which is what stops the design, the content and the deployment drifting apart.

A list view — the most common shape — is a content record naming a table layout and an endpoint configuration. Building one means duplicating an existing record and editing the labels and the endpoint it reads, so a new screen over an existing API is content work rather than engineering work.

Every interface came out of this shell. A rate calculator, a property-data exchange and a conversational front end are three configurations against one component library, not three codebases.

## Operations

<!--source:api-specifications-->

### Console Dashboard UI
<!--/source-->

`POST` `/auth/password`

<!--source:api-specifications-->

#### Change pass
<!--/source-->

`change-pass`

##### Request

<!--source:api-specifications-->
application/json Copy An example of a payload.

```
{
 "email": "john.doe@company.com",
 "password": "XXXXX"
}
```

<!--/source-->

##### Response

<!--source:api-specifications-->
application/json Copy OK.

```
{
 "message": "success"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
1
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `x-api-key` required | `string` header | `<redacted>` | <!--source:api-specifications-->Key used to identify the API usage plan<!--/source--> |

##### Request body`application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `email`required | `string` | <!--source:api-specifications-->Email of account<!--/source-->Example `john.doe@company.com` |
| `password`required | `string` | <!--source:api-specifications-->Password of account<!--/source-->Example `XXXXX` |

##### Response `200``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
OK.
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Message<!--/source--> |

`POST` `/auth/sign-in`

<!--source:api-specifications-->

#### Sign In
<!--/source-->

`sign-in`

<!--source:api-specifications-->
Sign in
<!--/source-->

<!--source:api-specifications-->
Sign In

<!--/source-->

##### Request

<!--source:api-specifications-->
application/json Copy An example of a payload.

```
{
 "email": "john.doe@company.com",
 "password": "XXXXX"
}
```

<!--/source-->

##### Response

<!--source:api-specifications-->
application/json Copy OK.

```
{
 "message": "success"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
1
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `x-api-key` required | `string` header | `<redacted>` | <!--source:api-specifications-->Key used to identify the API usage plan<!--/source--> |

##### Request body`application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `email`required | `string` | <!--source:api-specifications-->Email of account<!--/source-->Example `john.doe@company.com` |
| `password`required | `string` | <!--source:api-specifications-->Password of account<!--/source-->Example `XXXXX` |

##### Response `200``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
OK.
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Message<!--/source--> |

`POST` `/auth/sign-up`

<!--source:api-specifications-->

#### Sign Up
<!--/source-->

`sign-up`

<!--source:api-specifications-->
Sign up
<!--/source-->

<!--source:api-specifications-->
Sign Up

<!--/source-->

##### Request

<!--source:api-specifications-->
application/json Copy An example of a payload.

```
{
 "email": "john.doe@company.com",
 "password": "XXXXX"
}
```

<!--/source-->

##### Response

<!--source:api-specifications-->
application/json Copy OK.

```
{
 "message": "success"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
1
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `x-api-key` required | `string` header | `<redacted>` | <!--source:api-specifications-->Key used to identify the API usage plan<!--/source--> |

##### Request body`application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `email`required | `string` | <!--source:api-specifications-->Email of account<!--/source-->Example `john.doe@company.com` |
| `password`required | `string` | <!--source:api-specifications-->Password of account<!--/source-->Example `XXXXX` |

##### Response `200``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
OK.
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Message<!--/source--> |

<!--source:api-specifications-->

### Users
<!--/source-->

`GET` `/author`

<!--source:api-specifications-->

#### Get Author
<!--/source-->

`get_author`

<!--source:api-specifications-->
Request author access to a pipeline to be able to:

- Review and modify Dataset
- Create Analysis
- Share Dashboards

To log in to QuickSight:

- Go to
- Use the QuickSight Account Name `account_name`.
- Use the QuickSight User `user_name`.
- Use the QuickSight User Password that was defined while obtaining Author Access.

Please note the Author user is one for all the Staircase environment. It is important to understand that Author will see datasets and analysis from all the pipelines. It is recommended to use `Shared folders` in Quicksight to see datasets organized by `pipeline_name`.

<!--/source-->

##### Response

<!--source:api-specifications-->
400403
<!--/source-->

<!--source:api-specifications-->
application/json Copy Bad Request

```
{
 "message": "Bad Request!"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Invalid key for service

```
{
 "message": "Please check the key you used to call this service",
 "url": "https://staircase.stoplight.io/docs/api-reference/customer-account-manager-service.yml/paths/~1products~1refresh/post"
}
```

<!--/source-->

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Bad Request
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
Invalid key for service
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | — |
| `url` | `string` | — |

##### Other responses

`200``404`

<!--source:api-specifications-->

### Console API
<!--/source-->

`GET` `/configurations`

<!--source:api-specifications-->

#### Get configuration
<!--/source-->

`get_configuration`

<!--source:api-specifications-->
Get configurations
<!--/source-->

##### Response

<!--source:api-specifications-->
application/json Copy Ok.

```
{
 "collections": [
 {
 "metadata": {
 "serialise_to_graph": true,
 "fuzzy_searchable": false,
 "validation": true,
 "version": 3,
 "created_at": "2023-05-26T02:09:23.253331-04:00"
 },
 "collection_id": "01H1BAT4SNVDE9HYEBZD04MNEH",
 "data": {
 "companies": [
 {
 "@id": "01H1BAT4TZW1HXZ0RZPYK52VFV",
 "@type": "company",
 "company_identifier": "grate-company-id"
 },
 {
 "@id": "01H1BAT4TZ7T9THN4MEZ9E4MMV",
 "@type": "company",
 "company_identifier": "staircase-company-id"
 },
 {
 "@id": "01H1BAT4TZ6FB1ZABFM8MQGFTH",
 "@type": "company",
 "company_identifier": "ice-company-id"
 },
 {
 "@id": "01H1BAT4TZ45T2C6K39CMGQQKB",
 "@type": "company",
 "company_identifier": "ice-company-id"
 },
 {
 "@id": "01H1BAT4TZJ01KM1WEPRZEZHKM",
 "@type": "company"
 }
 ],
 "consoles": [
 {
 "@id": "01H1BAT4TYBW7FJQNSB9KXXB28",
 "@type": "console",
 "console_configuration_type": "listView",
 "datocms_class_name": "TeamVelocity",
 "datocms_identifier": "123456789",
 "has_permission": [
 "01H1BAT4TZNZSWRWX738J7KJ96",
 "01H1BAT4TZCRVFH26GS24DMCQG",
 "01H1BAT4TZAGXKEG5N4Z3STD30",
 "01H1BAT4TZ9XSSYVRC35APTJ51",
 "01H1BAT4TZ1ECXC6FM40W98VVR"
 ],
 "title": "Team Velocity List View"
 }
 ],
 "permissions": [
 {
 "@id": "01H1BAT4TZNZSWRWX738J7KJ96",
 "@type": "permission",
 "company_contact_role_type": "CFO",
 "has_company": "01H1BAT4TZ6FB1ZABFM8MQGFTH"
 },
 {
 "@id": "01H1BAT4TZAGXKEG5N4Z3STD30",
 "@type": "permission",
 "company_contact_role_type": "CFO",
 "has_company": "01H1BAT4TZJ01KM1WEPRZEZHKM"
 },
 {
 "@id": "01H1BAT4TZCRVFH26GS24DMCQG",
 "@type": "permission",
 "has_company": "01H1BAT4TZW1HXZ0RZPYK52VFV"
 },
 {
 "@id": "01H1BAT4TZ1ECXC6FM40W98VVR",
 "@type": "permission",
 "has_company": "01H1BAT4TZ7T9THN4MEZ9E4MMV"
 },
 {
 "@id": "01H1BAT4TZ9XSSYVRC35APTJ51",
 "@type": "permission",
 "company_contact_role_type": "CEO",
 "has_company": "01H1BAT4TZ45T2C6K39CMGQQKB"
 }
 ],
 "product_configurations": [
 {
 "@type": "product_configuration",
 "product_configuration_identifier": "marketpace-ontology-configuration-id-of-the-screen",
 "@id": "01H1BAT4TZC99WK5CWFMJZ3G9H"
 }
 ]
 },
 "transaction_id": "01H1BAT4G004ZKK5DXF1GB87YV"
 }
 ],
 "next_token": null
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
1
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `next_token` | `string` query | `token` | <!--source:api-specifications-->Next token for listing<!--/source--> |

##### Other responses

`200`

`POST` `/configurations`

<!--source:api-specifications-->

#### Create configuration
<!--/source-->

`create_configuration`

##### Request

<!--source:api-specifications-->
application/json Copy
```
{
 "product_configuration_identifier": "marketpace-ontology-configuration-id-of-the-screen",
 "title": "Team Velocity List View",
 "datocms_identifier": "123456789",
 "datocms_class_name": "TeamVelocity",
 "url_suffix": "/team-velocity",
 "configuration_type": "listView",
 "permissions": [
 {
 "has_company": "staircase-company-id"
 },
 {
 "has_company": "ice-company-id",
 "company_contact_role_type": "CEO"
 },
 {
 "has_company": "ice-company-id",
 "company_contact_role_type": "CFO"
 },
 {
 "company_contact_role_type": "CFO"
 },
 {
 "has_company": "grate-company-id"
 }
 ]
}
```

<!--/source-->

##### Response

<!--source:api-specifications-->
200400
<!--/source-->

<!--source:api-specifications-->
application/json Copy Ok.

```
{
 "message": "created",
 "transaction_id": "01H1KQAXKB77A2PA1QSS1YEDQD",
 "collection_id": "01H1KQAXXWA6CR4ZSJPSHCGDGB"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Request data invalid

```
{
 "message": "Request body is not valid JSON."
}
```

<!--/source-->

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Request data invalid
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message<!--/source--> |

##### Other responses

`200`

`GET` `/configurations/{configuration_id}`

<!--source:api-specifications-->

#### Get configuration
<!--/source-->

`get_configurations`

##### Response

<!--source:api-specifications-->
application/json Copy Ok.

```
{
 "collections": [
 {
 "metadata": {
 "serialise_to_graph": true,
 "fuzzy_searchable": false,
 "validation": true,
 "version": 3,
 "created_at": "2023-05-26T02:09:23.253331-04:00"
 },
 "collection_id": "01H1BAT4SNVDE9HYEBZD04MNEH",
 "data": {
 "companies": [
 {
 "@id": "01H1BAT4TZW1HXZ0RZPYK52VFV",
 "@type": "company",
 "company_identifier": "grate-company-id"
 },
 {
 "@id": "01H1BAT4TZ7T9THN4MEZ9E4MMV",
 "@type": "company",
 "company_identifier": "staircase-company-id"
 },
 {
 "@id": "01H1BAT4TZ6FB1ZABFM8MQGFTH",
 "@type": "company",
 "company_identifier": "ice-company-id"
 },
 {
 "@id": "01H1BAT4TZ45T2C6K39CMGQQKB",
 "@type": "company",
 "company_identifier": "ice-company-id"
 },
 {
 "@id": "01H1BAT4TZJ01KM1WEPRZEZHKM",
 "@type": "company"
 }
 ],
 "consoles": [
 {
 "@id": "01H1BAT4TYBW7FJQNSB9KXXB28",
 "@type": "console",
 "console_configuration_type": "listView",
 "datocms_class_name": "TeamVelocity",
 "datocms_identifier": "123456789",
 "has_permission": [
 "01H1BAT4TZNZSWRWX738J7KJ96",
 "01H1BAT4TZCRVFH26GS24DMCQG",
 "01H1BAT4TZAGXKEG5N4Z3STD30",
 "01H1BAT4TZ9XSSYVRC35APTJ51",
 "01H1BAT4TZ1ECXC6FM40W98VVR"
 ],
 "title": "Team Velocity List View"
 }
 ],
 "permissions": [
 {
 "@id": "01H1BAT4TZNZSWRWX738J7KJ96",
 "@type": "permission",
 "company_contact_role_type": "CFO",
 "has_company": "01H1BAT4TZ6FB1ZABFM8MQGFTH"
 },
 {
 "@id": "01H1BAT4TZAGXKEG5N4Z3STD30",
 "@type": "permission",
 "company_contact_role_type": "CFO",
 "has_company": "01H1BAT4TZJ01KM1WEPRZEZHKM"
 },
 {
 "@id": "01H1BAT4TZCRVFH26GS24DMCQG",
 "@type": "permission",
 "has_company": "01H1BAT4TZW1HXZ0RZPYK52VFV"
 },
 {
 "@id": "01H1BAT4TZ1ECXC6FM40W98VVR",
 "@type": "permission",
 "has_company": "01H1BAT4TZ7T9THN4MEZ9E4MMV"
 },
 {
 "@id": "01H1BAT4TZ9XSSYVRC35APTJ51",
 "@type": "permission",
 "company_contact_role_type": "CEO",
 "has_company": "01H1BAT4TZ45T2C6K39CMGQQKB"
 }
 ],
 "product_configurations": [
 {
 "@type": "product_configuration",
 "product_configuration_identifier": "marketpace-ontology-configuration-id-of-the-screen",
 "@id": "01H1BAT4TZC99WK5CWFMJZ3G9H"
 }
 ]
 },
 "transaction_id": "01H1BAT4G004ZKK5DXF1GB87YV"
 }
 ],
 "next_token": null
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
1
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `configuration_id` required | `string` path | `product_configuration_identifier` | <!--source:api-specifications-->querying by $.product_configurations[*].product_configuration_identifier<!--/source--> |

##### Other responses

`200`

<!--source:api-specifications-->

### Dashboard
<!--/source-->

`PUT` `/dashboard/dashboards/costs-and-revenue`

<!--source:api-specifications-->

#### Update Costs/Revenue Dashboard
<!--/source-->

`updateCostsRevenueDashboard`

<!--source:api-specifications-->
Starts the update of the GTL costs/revenue dashboard with metrics from Health and costs from AWS Cost Explorer.

<!--/source-->

##### Response `202``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Update is started.
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Message about update is started.<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Missing API key
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `422``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Unprocessable entity
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Message<!--/source--> |

<!--source:api-specifications-->

### Dashboards
<!--/source-->

`GET` `/dashboards`

<!--source:api-specifications-->

#### Get Dashboards
<!--/source-->

`get_all_dashboards`

<!--source:api-specifications-->
Get embedded link for all dashboards. Going to return all the links to all the dashboards.

Response includes:

- `id` - Dashboard ID
- `name` - Dashboard name
- `embedded_url` - Embedded URL. Links are QuickSight native with a temporary authentication token. So they can not be used for permanent share.
- `public_url` - Public URL. This is a permanent link that can be used to share Dashboard outside the Staircase.

It is good idea to use `embedded_link` inside a web page or web application that have authentication.

Important, `public_url` can be used without `API_KEY`. Please do not share it if Dashboard has sensitive data.

<!--/source-->

##### Response

<!--source:api-specifications-->
400403
<!--/source-->

<!--source:api-specifications-->
application/json Copy Bad Request

```
{
 "message": "Bad Request!"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Invalid key for service

```
{
 "message": "Please check the key you used to call this service",
 "url": "https://staircase.stoplight.io/docs/api-reference/customer-account-manager-service.yml/paths/~1products~1refresh/post"
}
```

<!--/source-->

##### Response `200``application/json`

<!--source:api-specifications-->
4 fields
<!--/source-->
<!--source:api-specifications-->
Success
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `id`required | `string` | <!--source:api-specifications-->Dashboard ID<!--/source--> |
| `name`required | `string` | <!--source:api-specifications-->Dashboard name<!--/source--> |
| `embedded_url`required | `string` | <!--source:api-specifications-->Embedded URL<!--/source--> |
| `public_url`required | `string` | <!--source:api-specifications-->Public URL<!--/source--> |

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Bad Request
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
Invalid key for service
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | — |
| `url` | `string` | — |

##### Other responses

`404`

`GET` `/dashboards/{dashboard_id}/public-url`

<!--source:api-specifications-->

#### Get Public Url
<!--/source-->

`get_gashboard_public_url`

<!--source:api-specifications-->
Get Public URL
<!--/source-->

<!--source:api-specifications-->
Get dashboard public URL. It is required to specify:

- `dashboard_id` - Dashboard ID from the Get Dashboards

As it can be invoked without API_KEY only, it can NOT be used to share sensitive data.

For now, this is the only endpoint that can be used for permanent share.

<!--/source-->

##### Response

<!--source:api-specifications-->
application/json Copy Bad Request

```
{
 "message": "Bad Request!"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
1
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `dashboard_id` required | `string` path | `dashboard_id` | <!--source:api-specifications-->Dashboard ID<!--/source--> |

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Bad Request
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message<!--/source--> |

##### Other responses

`307``404`

<!--source:api-specifications-->

### Datalakes
<!--/source-->

`PUT` `/datalakes`

<!--source:api-specifications-->

#### Create or Update
<!--/source-->

`create_datalake`

<!--source:api-specifications-->
Create or Update Datalake

<!--/source-->

##### Request

<!--source:api-specifications-->
application/json Copy
```
{
 "name": "pipe01",
 "verbose_name": "Pipeline 01",
 "dataset": {
 "columns": [
 {
 "Name": "IMPORT_COMPLETED",
 "Type": "int"
 },
 {
 "Name": "ONBOARDING_STARTED",
 "Type": "int"
 },
 {
 "Name": "CLASSIFICATION_STARTED",
 "Type": "int"
 },
 {
 "Name": "CLASSIFICATION_COMPLETED",
 "Type": "int"
 },
 {
 "Name": "EXTRACTION_COMPLETED",
 "Type": "int"
 },
 {
 "Name": "ONBOARDING_COMPLETED",
 "Type": "int"
 },
 {
 "Name": "EXPORT_COMPLETED",
 "Type": "int"
 },
 {
 "Name": "DELIVER_COMPLETED",
 "Type": "int"
 },
 {
 "Name": "date",
 "Type": "timestamp"
 }
 ]
 }
}
```

<!--/source-->

##### Response

<!--source:api-specifications-->
application/json Copy Invalid key for service

```
{
 "message": "Please check the key you used to call this service",
 "url": "https://staircase.stoplight.io/docs/api-reference/customer-account-manager-service.yml/paths/~1products~1refresh/post"
}
```

<!--/source-->

##### Request body`application/json`

<!--source:api-specifications-->
7 fields
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `name` | `string` | <!--source:api-specifications-->Pipeline Name<!--/source--> |
| `verbose_name` | `string` | <!--source:api-specifications-->Pipeline Verbose Name<!--/source--> |
| `description` | `string` | <!--source:api-specifications-->Pipeline Description<!--/source--> |
| `job` | `object` | <!--source:api-specifications-->Pipeline Job<!--/source--> |
| `definition`required | `object` | <!--source:api-specifications-->Job Definition<!--/source--> |
| `StartAt`required | `string` | <!--source:api-specifications-->The first state<!--/source--> |
| `States`required | `object` | <!--source:api-specifications-->Job States<!--/source--> |
| `STATE_NAME` | `object` | <!--source:api-specifications-->Name of the State<!--/source--> |
| `trigger_schedule_expression`required | `string` | <!--source:api-specifications-->Pipeline Trigger Schedule Expression<!--/source--> |
| `triggers` | `array` | <!--source:api-specifications-->Triggers<!--/source--> |
| `dataset` | `object` | <!--source:api-specifications-->Pipeline Dataset<!--/source--> |
| `columns`required | `array` | <!--source:api-specifications-->Columns<!--/source--> |
| `calculated_columns` | `array` | <!--source:api-specifications-->Calculated Columns<!--/source--> |
| `datasets` | `object` | <!--source:api-specifications-->Pipeline Datasets<!--/source--> |
| `DATASET_NAME` | `object` | <!--source:api-specifications-->Pipeline Dataset<!--/source--> |
| `columns`required | `array` | <!--source:api-specifications-->Columns<!--/source--> |
| `calculated_columns` | `array` | <!--source:api-specifications-->Calculated Columns<!--/source--> |
| `product_name` | `string` | <!--source:api-specifications-->Staircase product name<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
Invalid key for service
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | — |
| `url` | `string` | — |

##### Other responses

`200`

`GET` `/datalakes`

<!--source:api-specifications-->

#### Get All
<!--/source-->

`get_datalakes`

<!--source:api-specifications-->
Get All Datalakes

<!--/source-->

##### Response

<!--source:api-specifications-->
400403
<!--/source-->

<!--source:api-specifications-->
application/json Copy Bad Request

```
{
 "message": "Bad Request!"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Invalid key for service

```
{
 "message": "Please check the key you used to call this service",
 "url": "https://staircase.stoplight.io/docs/api-reference/customer-account-manager-service.yml/paths/~1products~1refresh/post"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
1
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `product_name` | `string` query | `Product Name` | <!--source:api-specifications-->Product Name<!--/source--> |

##### Response `200``application/json`

<!--source:api-specifications-->
9 fields
<!--/source-->
<!--source:api-specifications-->
Success
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `name` | `string` | <!--source:api-specifications-->Pipeline Name<!--/source--> |
| `status` | `string` | <!--source:api-specifications-->Pipeline status<!--/source-->`COMPLETED``FAILED``IN_PROGRESS` |
| `operation` | `string` | <!--source:api-specifications-->Pipeline operation<!--/source-->`CREATE``DELETE``REVIEW``ROLLBACK``UPDATE``UPDATE_ROLLBACK` |
| `product_name` | `string` | <!--source:api-specifications-->Product name<!--/source--> |
| `verbose_name` | `string` | <!--source:api-specifications-->Pipeline Verbose name<!--/source--> |
| `job_name` | `string` | <!--source:api-specifications-->Pipeline Job name<!--/source--> |
| `job_trigger_names` | `string[]` | <!--source:api-specifications-->Pipeline Job Trigger name<!--/source--> |
| `created_at` | `string` | <!--source:api-specifications-->Pipeline create date<!--/source--> |
| `updated_at` | `string` | <!--source:api-specifications-->Pipeline Success update date<!--/source--> |

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Bad Request
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
Invalid key for service
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | — |
| `url` | `string` | — |

##### Other responses

`404`

<!--source:api-specifications-->

### Datalake
<!--/source-->

`GET` `/datalakes/{name}`

<!--source:api-specifications-->

#### Get One
<!--/source-->

`get_datalake`

<!--source:api-specifications-->
Get pipeline
<!--/source-->

<!--source:api-specifications-->
Retrieve datalake information, such as:

- `status`

<!--/source-->

##### Response

<!--source:api-specifications-->
400403
<!--/source-->

<!--source:api-specifications-->
application/json Copy Bad Request

```
{
 "message": "Bad Request!"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Invalid key for service

```
{
 "message": "Please check the key you used to call this service",
 "url": "https://staircase.stoplight.io/docs/api-reference/customer-account-manager-service.yml/paths/~1products~1refresh/post"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
1
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `name` required | `string` path | `pipeline_name` | <!--source:api-specifications-->Pipeline Name<!--/source--> |

##### Response `200``application/json`

<!--source:api-specifications-->
9 fields
<!--/source-->
<!--source:api-specifications-->
Success
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `name` | `string` | <!--source:api-specifications-->Pipeline Name<!--/source--> |
| `status` | `string` | <!--source:api-specifications-->Pipeline status<!--/source-->`COMPLETED``FAILED``IN_PROGRESS` |
| `operation` | `string` | <!--source:api-specifications-->Pipeline operation<!--/source-->`CREATE``DELETE``REVIEW``ROLLBACK``UPDATE``UPDATE_ROLLBACK` |
| `product_name` | `string` | <!--source:api-specifications-->Product name<!--/source--> |
| `verbose_name` | `string` | <!--source:api-specifications-->Pipeline Verbose name<!--/source--> |
| `job_name` | `string` | <!--source:api-specifications-->Pipeline Job name<!--/source--> |
| `job_trigger_names` | `string[]` | <!--source:api-specifications-->Pipeline Job Trigger name<!--/source--> |
| `created_at` | `string` | <!--source:api-specifications-->Pipeline create date<!--/source--> |
| `updated_at` | `string` | <!--source:api-specifications-->Pipeline Success update date<!--/source--> |

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Bad Request
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
Invalid key for service
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | — |
| `url` | `string` | — |

##### Other responses

`404`

`DELETE` `/datalakes/{name}`

<!--source:api-specifications-->

#### Delete One
<!--/source-->

`delete_datalake`

<!--source:api-specifications-->
Delete datalake
<!--/source-->

##### Response

<!--source:api-specifications-->
400403
<!--/source-->

<!--source:api-specifications-->
application/json Copy Bad Request

```
{
 "message": "Bad Request!"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Invalid key for service

```
{
 "message": "Please check the key you used to call this service",
 "url": "https://staircase.stoplight.io/docs/api-reference/customer-account-manager-service.yml/paths/~1products~1refresh/post"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
1
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `name` required | `string` path | `pipeline_name` | <!--source:api-specifications-->Pipeline Name<!--/source--> |

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Bad Request
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
Invalid key for service
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | — |
| `url` | `string` | — |

##### Other responses

`200``404`

`GET` `/datalakes/{name}/config`

<!--source:api-specifications-->

#### Get Config
<!--/source-->

`get_datalake_config`

<!--source:api-specifications-->
Retrieve Datalake configuration.

<!--/source-->

##### Response

<!--source:api-specifications-->
application/json Copy Bad Request

```
{
 "message": "Bad Request!"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
1
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `name` required | `string` path | `pipeline_name` | <!--source:api-specifications-->Pipeline Name<!--/source--> |

##### Response `200``application/json`

<!--source:api-specifications-->
7 fields
<!--/source-->
<!--source:api-specifications-->
Success
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `name` | `string` | <!--source:api-specifications-->Pipeline Name<!--/source--> |
| `verbose_name` | `string` | <!--source:api-specifications-->Pipeline Verbose Name<!--/source--> |
| `description` | `string` | <!--source:api-specifications-->Pipeline Description<!--/source--> |
| `job` | `object` | <!--source:api-specifications-->Pipeline Job<!--/source--> |
| `definition`required | `object` | <!--source:api-specifications-->Job Definition<!--/source--> |
| `StartAt`required | `string` | <!--source:api-specifications-->The first state<!--/source--> |
| `States`required | `object` | <!--source:api-specifications-->Job States<!--/source--> |
| `STATE_NAME` | `object` | <!--source:api-specifications-->Name of the State<!--/source--> |
| `trigger_schedule_expression`required | `string` | <!--source:api-specifications-->Pipeline Trigger Schedule Expression<!--/source--> |
| `triggers` | `array` | <!--source:api-specifications-->Triggers<!--/source--> |
| `dataset` | `object` | <!--source:api-specifications-->Pipeline Dataset<!--/source--> |
| `columns`required | `array` | <!--source:api-specifications-->Columns<!--/source--> |
| `calculated_columns` | `array` | <!--source:api-specifications-->Calculated Columns<!--/source--> |
| `datasets` | `object` | <!--source:api-specifications-->Pipeline Datasets<!--/source--> |
| `DATASET_NAME` | `object` | <!--source:api-specifications-->Pipeline Dataset<!--/source--> |
| `columns`required | `array` | <!--source:api-specifications-->Columns<!--/source--> |
| `calculated_columns` | `array` | <!--source:api-specifications-->Calculated Columns<!--/source--> |
| `product_name` | `string` | <!--source:api-specifications-->Staircase product name<!--/source--> |

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Bad Request
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message<!--/source--> |

##### Other responses

`404`

<!--source:api-specifications-->

### Pipelines
<!--/source-->

`PUT` `/pipelines`

<!--source:api-specifications-->

#### Create or Update
<!--/source-->

`create_pipeline`

<!--source:api-specifications-->
Create or Update Pipeline will enable creation of a new pipeline or update of existing one. To create a new pipeline, you need to provide the below information:

- `name`
- `description` (Optional)
- `product_name` (Optional)
- `job` (Optional)
- `dataset` (Deprecated)
- `datasets`

One of `dataset` or `datasets` is Required.

Show the rest

#### Job

`job` consist of:

- `definition` Definition of a job as it is described in Job documentation. Job Definition
- `trigger_schedule_expression` (Deprecated) Trigger schedule expression. Create Trigger
- `triggers` Triggers definition, that contains `trigger_schedule_expression` and `request_payload`.

`trigger_schedule_expression` and `triggers` are optional. Only one of `trigger_schedule_expression` or `triggers` can be used.

If `job` not specified, it is required to use Put Data operation

##### `definition`

Job definition as it is described in the Create Job

There are few recommendations to consider:

###### Save Data

As of now, Job definition should contain a step that saves data to a pipeline

Save data example

```
{
 "SaveData": {
 "End": true,
 "Method": "POST",
 "Path": "console-pipeline/pipelines/{pipeline_name}/data",
 "PathParameters": {
 "pipeline_name": "$.outputs.Start.pipeline_name"
 },
 "RequestPayload": "$.outputs.Health.response_payload.metrics",
 "Type": "InvokeProduct"
 }
 }
```

###### Get Latest from a pipeline

it is also recommended to start job definition from getting latest data from a pipeline Get Latest data example

```
{
 "LatestData": {
 "ExceptNext": "Health",
 "Method": "GET",
 "Next": "Health",
 "Path": "console-pipeline/pipelines/{pipeline_name}/data/latest?sort_column=created_at",
 "PathParameters": {
 "pipeline_name": "$.outputs.Start.pipeline_name"
 },
 "Projection": {
 "created_at": "$jmespath.created_at | date_format(@, '%Y-%m-%d %H:%M:%S.%f', '%Y-%m-%d')"
 },
 "Type": "InvokeProduct"
 } 
 }
```

###### Use `pipeline_name` from request_payload

Dashboard Pipeline will Execute Job with `request_payload`, where `pipeline_name` equals Dashboard Pipeline `name`.

To be able to run

```
PathParameters:
 pipeline_name: $.request_payload.pipeline_name
```

##### `trigger_schedule_expression`

A rate expression starts when you create the pipeline, and then runs on its defined schedule. Rate expressions have two required fields. Fields are separated by white space.

Syntax `rate(value unit)`

Where:

- `value` a positive number
- `unit` the unit of time.

Different units are required for values of 1, such as minute, and values over 1, such as minutes. Valid values: `minute` | `minutes` | `hour` | `hours` | `day` | `days`

Example of `trigger_schedule_expression` definition

```
{
 "trigger_schedule_expression": "rate(1 day)"
}
```

##### `triggers`

Allow to specify one or more executions for the pipeline. Can be used to run pipeline many times with different `request_payload`.

Consist of:

- `trigger_schedule_expression`. For more information please see `trigger_schedule_expression` documentation
- `request_payload` (Optional)

`triggers` can be used to collection data from different Staircase accounts by specifying host and api_key in the `request_payload`.

Maximum number of `triggers` is 100.

Example of `triggers` definition

```
{
 "triggers": [
 {
 "trigger_schedule_expression": "rate(1 day)",
 "request_payload": {
 "Host": "documentation.staicaseapi.com",
 "ApiKey": "API_KEY"
 }
 }
 ]
}
```

Another example a `trigger` with custom payload, containing some data and some Staircase environment informations.

```
{
 "triggers": [
 {
 
 "trigger_schedule_expression": "rate(1 day)",
 "request_payload": {
 "my_custom_data": {
 "foo": "bar"
 },
 "Env_A": {
 "my_host": "A.staicaseapi.com",
 "my_api_key": "API_KEY"
 },
 "Env_B": {
 "my_host": "B.staicaseapi.com",
 "my_api_key": "API_KEY"
 }
 }
 }
 ]
 }
```

#### Datasets

Allow to define more than one dataset in a Pipeline. Datasets definition contains Dataset Name and Dataset Configuration in a form of JSON object `key` and `value`

Example of a Pipeline that have 2 datasets

```
{
 "datasets": {
 "sales": {
 "columns": [
 {
 "Name": "start_date",
 "Type": "timestamp"
 },
 {
 "Name": "transaction_id",
 "Type": "string"
 }
 ]
 },
 "communications": {
 "columns": [
 {
 "Name": "sent_date",
 "Type": "timestamp"
 },
 {
 "Name": "transaction_id",
 "Type": "string"
 } 
 ]
 }
 } 
}
```

#### Dataset

`dataset` consist of:

- `columns`
- `calculated_columns` (Optional)

##### `columns`

Is an array of column definitions. Columns from this array will be available in the QuickSight dataset. At least one column is required in `columns` array.

Column definition consist of:

- `Name`
- `Type` one of the following types: `int`, `float`, `string`, `timestamp` The following example creates pipeline with `job` and `dataset`. It will run pipeline every 5 mins. Will generate some random data for "metric_number", "metric_status" and "date".

```
{
 "name": "pipe1",
 "verbose_name": "Pipe 1",
 "job": {
 "definition": {
 "StartAt": "StartFrom",
 "States": {
 "StartFrom": {
 "Type": "InvokeProduct",
 "Method": "POST",
 "Path": "console-pipeline/generate_data_example",
 "Next":"SaveRandomData"
 },
 "SaveRandomData": {
 "Type": "InvokeProduct",
 "Method": "POST",
 "Path": "console-pipeline/pipelines/{pipeline_name}/data",
 "PathParameters": {
 "pipeline_name": "pipe1"
 },
 "RequestPayload": "$.outputs.StartFrom.response_payload",
 "End": true
 }
 
 }
 },
 "trigger_schedule_expression": "rate(5 minutes)"
 },
 "dataset": {
 "columns": [
 {
 "Name": "metric_number",
 "Type": "int"
 },
 {
 "Name": "metric_status",
 "Type": "string"
 },
 {
 "Name": "date",
 "Type": "timestamp"
 }
 ]
 }
 }
```

##### `calculated_columns`

It is an array of QuickSight Calculated Columns.

Calculated column definition consists of:

- `Name`
- `Expression` - Calculated Columns expression to calculate a value

`Expression` transform `columns` by using one or more of the following:

- Operators
- Functions
- Aggregate functions (you can only add these to an analysis)
- Fields that contain data
- Other calculated fields

```
{
 "calculated_columns": [
 {
 "Name":"status_len",
 "Expression": "strlen({status})"
 },
 {
 "Name":"now",
 "Expression": "now"
 } 
 ]
}
```

<!--/source-->

##### Request

<!--source:api-specifications-->
ExamplePipelineDatasetOnlyHealthIntegration
<!--/source-->

<!--source:api-specifications-->
application/json Copy
```
{
 "name": "pipe1",
 "verbose_name": "Pipe 1",
 "job": {
 "definition": {
 "StartAt": "StartFrom",
 "States": {
 "StartFrom": {
 "Type": "InvokeProduct",
 "Method": "POST",
 "Path": "console-pipeline/generate_data_example",
 "Next": "SaveRandomData"
 },
 "SaveRandomData": {
 "Type": "InvokeProduct",
 "Method": "POST",
 "Path": "console-pipeline/pipelines/{pipeline_name}/data",
 "PathParameters": {
 "pipeline_name": "pipe1"
 },
 "RequestPayload": "$.outputs.StartFrom.response_payload",
 "End": true
 }
 }
 },
 "trigger_schedule_expression": "rate(5 minutes)"
 },
 "dataset": {
 "columns": [
 {
 "Name": "metric_number",
 "Type": "int"
 },
 {
 "Name": "metric_status",
 "Type": "string"
 },
 {
 "Name": "date",
 "Type": "timestamp"
 }
 ]
 }
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy
```
{
 "name": "pipe01",
 "verbose_name": "Pipeline 01",
 "dataset": {
 "columns": [
 {
 "Name": "IMPORT_COMPLETED",
 "Type": "int"
 },
 {
 "Name": "ONBOARDING_STARTED",
 "Type": "int"
 },
 {
 "Name": "CLASSIFICATION_STARTED",
 "Type": "int"
 },
 {
 "Name": "CLASSIFICATION_COMPLETED",
 "Type": "int"
 },
 {
 "Name": "EXTRACTION_COMPLETED",
 "Type": "int"
 },
 {
 "Name": "ONBOARDING_COMPLETED",
 "Type": "int"
 },
 {
 "Name": "EXPORT_COMPLETED",
 "Type": "int"
 },
 {
 "Name": "DELIVER_COMPLETED",
 "Type": "int"
 },
 {
 "Name": "date",
 "Type": "timestamp"
 }
 ]
 }
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy
```
{
 "name": "myhealth01",
 "verbose_name": "My Health 01",
 "job": {
 "definition": {
 "StartAt": "Start",
 "States": {
 "Start": {
 "Data": {
 "date": "2022-08-18",
 "pipeline_name": "myhealth01",
 "product_name": "Pre-Approval"
 },
 "Next": "LatestData",
 "Type": "MockData"
 },
 "LatestData": {
 "ExceptNext": "Health",
 "Method": "GET",
 "Next": "Health",
 "Path": "console-pipeline/pipelines/{pipeline_name}/data/latest?sort_column=created_at",
 "PathParameters": {
 "pipeline_name": "$.outputs.Start.pipeline_name"
 },
 "Projection": {
 "created_at": "$jmespath.created_at | date_format(@, '%Y-%m-%d %H:%M:%S.%f', '%Y-%m-%d')"
 },
 "Type": "InvokeProduct"
 },
 "Health": {
 "Method": "GET",
 "Next": "SaveData",
 "Path": "code-health-checker/performance/metrics/products/{product_name}?start_date={start_date}&amp;end_date={end_date}&amp;status=failed",
 "PathParameters": {
 "end_date": "$jmespath.outputs.LatestData.response_payload.created_at || outputs.Start.date",
 "product_name": "$.outputs.Start.product_name",
 "start_date": "$jmespath.outputs.LatestData.response_payload.created_at || outputs.Start.date"
 },
 "Projection": {
 "metrics": "$jmespath.metrics[*].{created_at: date_format(created_at, '%Y-%m-%dT%H:%M:%S.%f','%Y-%m-%d %H:%M:%S'), transaction_id: transaction_id}",
 "next": "$.next_token"
 },
 "Type": "InvokeProduct"
 },
 "SaveData": {
 "End": true,
 "Method": "POST",
 "Path": "console-pipeline/pipelines/{pipeline_name}/data",
 "PathParameters": {
 "pipeline_name": "$.outputs.Start.pipeline_name"
 },
 "RequestPayload": "$.outputs.Health.response_payload.metrics",
 "Type": "InvokeProduct"
 }
 }
 },
 "trigger_schedule_expression": "rate(1 day)"
 },
 "dataset": {
 "columns": [
 {
 "Name": "transaction_id",
 "Type": "string"
 },
 {
 "Name": "created_at",
 "Type": "timestamp"
 }
 ]
 }
}
```

<!--/source-->

##### Response

<!--source:api-specifications-->
application/json Copy Invalid key for service

```
{
 "message": "Please check the key you used to call this service",
 "url": "https://staircase.stoplight.io/docs/api-reference/customer-account-manager-service.yml/paths/~1products~1refresh/post"
}
```

<!--/source-->

##### Request body`application/json`

<!--source:api-specifications-->
7 fields
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `name` | `string` | <!--source:api-specifications-->Pipeline Name<!--/source--> |
| `verbose_name` | `string` | <!--source:api-specifications-->Pipeline Verbose Name<!--/source--> |
| `description` | `string` | <!--source:api-specifications-->Pipeline Description<!--/source--> |
| `job` | `object` | <!--source:api-specifications-->Pipeline Job<!--/source--> |
| `definition`required | `object` | <!--source:api-specifications-->Job Definition<!--/source--> |
| `StartAt`required | `string` | <!--source:api-specifications-->The first state<!--/source--> |
| `States`required | `object` | <!--source:api-specifications-->Job States<!--/source--> |
| `STATE_NAME` | `object` | <!--source:api-specifications-->Name of the State<!--/source--> |
| `trigger_schedule_expression`required | `string` | <!--source:api-specifications-->Pipeline Trigger Schedule Expression<!--/source--> |
| `triggers` | `array` | <!--source:api-specifications-->Triggers<!--/source--> |
| `dataset` | `object` | <!--source:api-specifications-->Pipeline Dataset<!--/source--> |
| `columns`required | `array` | <!--source:api-specifications-->Columns<!--/source--> |
| `calculated_columns` | `array` | <!--source:api-specifications-->Calculated Columns<!--/source--> |
| `datasets` | `object` | <!--source:api-specifications-->Pipeline Datasets<!--/source--> |
| `DATASET_NAME` | `object` | <!--source:api-specifications-->Pipeline Dataset<!--/source--> |
| `columns`required | `array` | <!--source:api-specifications-->Columns<!--/source--> |
| `calculated_columns` | `array` | <!--source:api-specifications-->Calculated Columns<!--/source--> |
| `product_name` | `string` | <!--source:api-specifications-->Staircase product name<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
Invalid key for service
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | — |
| `url` | `string` | — |

##### Other responses

`200`

`GET` `/pipelines`

<!--source:api-specifications-->

#### Get All
<!--/source-->

`get_pipelines`

<!--source:api-specifications-->
Get All Pipelines

<!--/source-->

##### Response

<!--source:api-specifications-->
400403
<!--/source-->

<!--source:api-specifications-->
application/json Copy Bad Request

```
{
 "message": "Bad Request!"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Invalid key for service

```
{
 "message": "Please check the key you used to call this service",
 "url": "https://staircase.stoplight.io/docs/api-reference/customer-account-manager-service.yml/paths/~1products~1refresh/post"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
1
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `product_name` | `string` query | `Product Name` | <!--source:api-specifications-->Product Name<!--/source--> |

##### Response `200``application/json`

<!--source:api-specifications-->
9 fields
<!--/source-->
<!--source:api-specifications-->
Success
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `name` | `string` | <!--source:api-specifications-->Pipeline Name<!--/source--> |
| `status` | `string` | <!--source:api-specifications-->Pipeline status<!--/source-->`COMPLETED``FAILED``IN_PROGRESS` |
| `operation` | `string` | <!--source:api-specifications-->Pipeline operation<!--/source-->`CREATE``DELETE``REVIEW``ROLLBACK``UPDATE``UPDATE_ROLLBACK` |
| `product_name` | `string` | <!--source:api-specifications-->Product name<!--/source--> |
| `verbose_name` | `string` | <!--source:api-specifications-->Pipeline Verbose name<!--/source--> |
| `job_name` | `string` | <!--source:api-specifications-->Pipeline Job name<!--/source--> |
| `job_trigger_names` | `string[]` | <!--source:api-specifications-->Pipeline Job Trigger name<!--/source--> |
| `created_at` | `string` | <!--source:api-specifications-->Pipeline create date<!--/source--> |
| `updated_at` | `string` | <!--source:api-specifications-->Pipeline Success update date<!--/source--> |

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Bad Request
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
Invalid key for service
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | — |
| `url` | `string` | — |

##### Other responses

`404`

<!--source:api-specifications-->

### Pipeline
<!--/source-->

`GET` `/pipelines/{name}`

<!--source:api-specifications-->

#### Get One
<!--/source-->

`get_pipeline`

<!--source:api-specifications-->
Get pipeline
<!--/source-->

<!--source:api-specifications-->
Retrieve pipeline information, such as:

- `status`
- `job_name`
- `job_trigger_names`

<!--/source-->

##### Response

<!--source:api-specifications-->
400403
<!--/source-->

<!--source:api-specifications-->
application/json Copy Bad Request

```
{
 "message": "Bad Request!"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Invalid key for service

```
{
 "message": "Please check the key you used to call this service",
 "url": "https://staircase.stoplight.io/docs/api-reference/customer-account-manager-service.yml/paths/~1products~1refresh/post"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
1
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `name` required | `string` path | `pipeline_name` | <!--source:api-specifications-->Pipeline Name<!--/source--> |

##### Response `200``application/json`

<!--source:api-specifications-->
9 fields
<!--/source-->
<!--source:api-specifications-->
Success
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `name` | `string` | <!--source:api-specifications-->Pipeline Name<!--/source--> |
| `status` | `string` | <!--source:api-specifications-->Pipeline status<!--/source-->`COMPLETED``FAILED``IN_PROGRESS` |
| `operation` | `string` | <!--source:api-specifications-->Pipeline operation<!--/source-->`CREATE``DELETE``REVIEW``ROLLBACK``UPDATE``UPDATE_ROLLBACK` |
| `product_name` | `string` | <!--source:api-specifications-->Product name<!--/source--> |
| `verbose_name` | `string` | <!--source:api-specifications-->Pipeline Verbose name<!--/source--> |
| `job_name` | `string` | <!--source:api-specifications-->Pipeline Job name<!--/source--> |
| `job_trigger_names` | `string[]` | <!--source:api-specifications-->Pipeline Job Trigger name<!--/source--> |
| `created_at` | `string` | <!--source:api-specifications-->Pipeline create date<!--/source--> |
| `updated_at` | `string` | <!--source:api-specifications-->Pipeline Success update date<!--/source--> |

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Bad Request
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
Invalid key for service
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | — |
| `url` | `string` | — |

##### Other responses

`404`

`DELETE` `/pipelines/{name}`

<!--source:api-specifications-->

#### Delete One
<!--/source-->

`delete_pipeline`

<!--source:api-specifications-->
Delete pipeline
<!--/source-->

##### Response

<!--source:api-specifications-->
400403
<!--/source-->

<!--source:api-specifications-->
application/json Copy Bad Request

```
{
 "message": "Bad Request!"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Invalid key for service

```
{
 "message": "Please check the key you used to call this service",
 "url": "https://staircase.stoplight.io/docs/api-reference/customer-account-manager-service.yml/paths/~1products~1refresh/post"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
1
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `name` required | `string` path | `pipeline_name` | <!--source:api-specifications-->Pipeline Name<!--/source--> |

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Bad Request
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
Invalid key for service
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | — |
| `url` | `string` | — |

##### Other responses

`200``404`

`GET` `/pipelines/{name}/config`

<!--source:api-specifications-->

#### Get Config
<!--/source-->

`get_pipeline_config`

<!--source:api-specifications-->
Retrieve Pipeline configuration.

Can and should be used to be able to Update Pipeline.

<!--/source-->

##### Response

<!--source:api-specifications-->
application/json Copy Bad Request

```
{
 "message": "Bad Request!"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
1
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `name` required | `string` path | `pipeline_name` | <!--source:api-specifications-->Pipeline Name<!--/source--> |

##### Response `200``application/json`

<!--source:api-specifications-->
7 fields
<!--/source-->
<!--source:api-specifications-->
Success
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `name` | `string` | <!--source:api-specifications-->Pipeline Name<!--/source--> |
| `verbose_name` | `string` | <!--source:api-specifications-->Pipeline Verbose Name<!--/source--> |
| `description` | `string` | <!--source:api-specifications-->Pipeline Description<!--/source--> |
| `job` | `object` | <!--source:api-specifications-->Pipeline Job<!--/source--> |
| `definition`required | `object` | <!--source:api-specifications-->Job Definition<!--/source--> |
| `StartAt`required | `string` | <!--source:api-specifications-->The first state<!--/source--> |
| `States`required | `object` | <!--source:api-specifications-->Job States<!--/source--> |
| `STATE_NAME` | `object` | <!--source:api-specifications-->Name of the State<!--/source--> |
| `trigger_schedule_expression`required | `string` | <!--source:api-specifications-->Pipeline Trigger Schedule Expression<!--/source--> |
| `triggers` | `array` | <!--source:api-specifications-->Triggers<!--/source--> |
| `dataset` | `object` | <!--source:api-specifications-->Pipeline Dataset<!--/source--> |
| `columns`required | `array` | <!--source:api-specifications-->Columns<!--/source--> |
| `calculated_columns` | `array` | <!--source:api-specifications-->Calculated Columns<!--/source--> |
| `datasets` | `object` | <!--source:api-specifications-->Pipeline Datasets<!--/source--> |
| `DATASET_NAME` | `object` | <!--source:api-specifications-->Pipeline Dataset<!--/source--> |
| `columns`required | `array` | <!--source:api-specifications-->Columns<!--/source--> |
| `calculated_columns` | `array` | <!--source:api-specifications-->Calculated Columns<!--/source--> |
| `product_name` | `string` | <!--source:api-specifications-->Staircase product name<!--/source--> |

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Bad Request
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message<!--/source--> |

##### Other responses

`404`

`GET` `/pipelines/{name}/datasets`

<!--source:api-specifications-->

#### Get Datasets
<!--/source-->

`get_pipeline_datasets`

<!--source:api-specifications-->
Retrieve Pipeline datasets

<!--/source-->

##### Response

<!--source:api-specifications-->
application/json Copy Bad Request

```
{
 "message": "Bad Request!"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
1
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `name` required | `string` path | `pipeline_name` | <!--source:api-specifications-->Pipeline Name<!--/source--> |

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Bad Request
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message<!--/source--> |

##### Other responses

`200``404`

<!--source:api-specifications-->

### Pipeline Dashboards
<!--/source-->

`GET` `/pipelines/{name}/dashboards`

<!--source:api-specifications-->

#### Get Dashboards
<!--/source-->

`get_pipeline_dashboards`

<!--source:api-specifications-->
Get embedded link for pipeline dashboards. Going to return pipeline the links to all the dashboards.

Response includes:

- `id` - Dashboard ID
- `name` - Dashboard name
- `embedded_url` - Embedded URL. Links are QuickSight native with a temporary authentication token. So they can not be used for permanent share.
- `public_url` - Public URL. This is a permanent link that can be used to share Dashboard outside the Staircase.

It is good idea to use `embedded_link` inside a web page or web application that have authentication.

Important, `public_url` can be used without `API_KEY`. Please do not share it if Dashboard has sensitive data.

<!--/source-->

##### Response

<!--source:api-specifications-->
400403
<!--/source-->

<!--source:api-specifications-->
application/json Copy Bad Request

```
{
 "message": "Bad Request!"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Invalid key for service

```
{
 "message": "Please check the key you used to call this service",
 "url": "https://staircase.stoplight.io/docs/api-reference/customer-account-manager-service.yml/paths/~1products~1refresh/post"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
1
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `name` required | `string` path | `pipeline_name` | <!--source:api-specifications-->Pipeline Name<!--/source--> |

##### Response `200``application/json`

<!--source:api-specifications-->
4 fields
<!--/source-->
<!--source:api-specifications-->
Success
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `id`required | `string` | <!--source:api-specifications-->Dashboard ID<!--/source--> |
| `name`required | `string` | <!--source:api-specifications-->Dashboard name<!--/source--> |
| `embedded_url`required | `string` | <!--source:api-specifications-->Embedded URL<!--/source--> |
| `public_url`required | `string` | <!--source:api-specifications-->Public URL<!--/source--> |

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Bad Request
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
Invalid key for service
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | — |
| `url` | `string` | — |

##### Other responses

`404`

<!--source:api-specifications-->

### Pipeline Data
<!--/source-->

`DELETE` `/pipelines/{name}/data`

<!--source:api-specifications-->

#### Delete Data
<!--/source-->

`delete_data`

<!--source:api-specifications-->
Delete Data from the Pipeline. After this operation Count Data should return zero.

<!--/source-->

##### Response

<!--source:api-specifications-->
400403
<!--/source-->

<!--source:api-specifications-->
application/json Copy Bad Request

```
{
 "message": "Bad Request!"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Invalid key for service

```
{
 "message": "Please check the key you used to call this service",
 "url": "https://staircase.stoplight.io/docs/api-reference/customer-account-manager-service.yml/paths/~1products~1refresh/post"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
1
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `name` required | `string` path | `pipeline_name` | <!--source:api-specifications-->Pipeline Name<!--/source--> |

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Bad Request
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
Invalid key for service
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | — |
| `url` | `string` | — |

##### Other responses

`200``404`

`POST` `/pipelines/{name}/data`

<!--source:api-specifications-->

#### Put Data
<!--/source-->

`put_data`

<!--source:api-specifications-->
Put data
<!--/source-->

<!--source:api-specifications-->
Put data will take an array of objects and push them into the pipeline. This endpoint is an alias of Pipeline Datasets Data / Put Data where `dataset_name` is `main`. Put Data endpoint does NOT override data. Instead, it is going to append data in the request payload with the data present in the pipeline. There is no predefined JSON schema for this operation. Objects that are in the arrays should be:

Show the rest
- Plain objects
- Should correspond to `dataset` columns definition of the Pipeline

Only data that is defined in the `dataset` columns will be saved in the pipeline.

Known limits are:

- Put data MAX array size 500 elements

Example of data being generated

```
curl --location --request POST '' \
 --header 'Content-Type: application/json' \
 --header 'Accept: application/json' \
 --header 'x-api-key: <redacted>'
```

#### Default values for columns

It is possible to specify default values for columns. Can be provider as a `key=value` in the query parameters For examplem having dataset specified as

```
{
 "columns": [
 {
 "Name": "start_date",
 "Type": "timestamp"
 },
 {
 "Name": "stop_date",
 "Type": "timestamp"
 },
 {
 "Name": "transaction_id",
 "Type": "string"
 },
 {
 "Name": "time_spent_seconds",
 "Type": "float"
 },
 {
 "Name": "status",
 "Type": "string"
 },
 {
 "Name": "name",
 "Type": "string"
 },
 {
 "Name": "flow_name",
 "Type": "string"
 }
 ]
 }
```

It is possible to set `flow_name` be `$.request_payload.pipeline_name` if it is null

```
{
 "Method": "POST",
 "End": true,
 "Path": "console-pipeline/pipelines/{pipeline_name}/data?flow_name={flow_name}",
 "PathParameters": {
 "pipeline_name": "$.request_payload.pipeline_name",
 "flow_name": "$.outputs.Start.flow_names[0]"
 },
 "RequestPayload": "$jmespath.outputs.response_payload.results",
 "Type": "InvokeProduct"
 }
```

#### Savings one row

Pipeline Put Data accepts an array of objects. To save one row it is possible to do one of following:

- Prepare data as an array of one object
- Use JMESPath Pipe expressions and arrays, for example `$jmespath.outputs.Pipelines.response_payload | [@]`

Example of SaveData, saving only one row to a Pipeline

```
{
 "Save": {
 "Type": "InvokeProduct",
 "Method": "POST",
 "Path": "console-pipeline/pipelines/{pipeline_name}/data",
 "PathParameters": {
 "pipeline_name": "$.request_payload.pipeline_name"
 },
 "RequestPayload": "$jmespath.outputs.Pipelines.response_payload | [@]",
 "End": true
 }
 }
```

#### Returns

This operation usually returns:

```
{
 "message": "ok"
 }
```

This means data was accepted by the pipeline, but it does NOT guarantee data will be saved in the Dataset. If data was not saved to Dataset:

- most probably, there are problems with data format
- `timestamp` fields have wrong formats
- `int` fields be a string instead on integer

Important note, it may take 10-30 seconds for pipeline to consume and save data.

<!--/source-->

##### Request

<!--source:api-specifications-->
PutDemoDataPutDemoDataWithMilliseconds
<!--/source-->

<!--source:api-specifications-->
application/json Copy
```
[
 {
 "metric_number": 100,
 "metric_status": "SUCCESS",
 "date": "2022-08-15 23:23:23"
 }
]
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy
```
[
 {
 "metric_number": 100,
 "metric_status": "SUCCESS",
 "date": "2022-08-15 23:23:23.123"
 }
]
```

<!--/source-->

##### Response

<!--source:api-specifications-->
400403
<!--/source-->

<!--source:api-specifications-->
application/json Copy Bad Request

```
{
 "message": "Bad Request!"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Invalid key for service

```
{
 "message": "Please check the key you used to call this service",
 "url": "https://staircase.stoplight.io/docs/api-reference/customer-account-manager-service.yml/paths/~1products~1refresh/post"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
2
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `name` required | `string` path | `pipeline_name` | <!--source:api-specifications-->Pipeline Name<!--/source--> |
| `column_name` | `string` query | `Value` | <!--source:api-specifications-->Column default value<!--/source--> |

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Bad Request
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
Invalid key for service
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | — |
| `url` | `string` | — |

##### Other responses

`200``404`

`GET` `/pipelines/{name}/data/count`

<!--source:api-specifications-->

#### Count Data
<!--/source-->

`count_data`

<!--source:api-specifications-->
Get data count in the pipeline

<!--/source-->

##### Response

<!--source:api-specifications-->
400403
<!--/source-->

<!--source:api-specifications-->
application/json Copy Bad Request

```
{
 "message": "Bad Request!"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Invalid key for service

```
{
 "message": "Please check the key you used to call this service",
 "url": "https://staircase.stoplight.io/docs/api-reference/customer-account-manager-service.yml/paths/~1products~1refresh/post"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
1
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `name` required | `string` path | `pipeline_name` | <!--source:api-specifications-->Pipeline Name<!--/source--> |

##### Response `200``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Success
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `count`required | `integer` | <!--source:api-specifications-->Count<!--/source--> |

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Bad Request
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
Invalid key for service
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | — |
| `url` | `string` | — |

##### Other responses

`404`

`GET` `/pipelines/{name}/data/latest`

<!--source:api-specifications-->

#### Latest Data
<!--/source-->

`latest_data`

<!--source:api-specifications-->
Get the latest data object from the pipeline. It is required to specify `sort_column` to allow data be sorted and latest be returned.

To avoid data duplicates and unnecessary operations, it is a good practice to use The Latest Data endpoint inside a Job before extracting data from a Staircase product. It is a good idea to filter data by date when extracting it from a Staircase product.

<!--/source-->

##### Response

<!--source:api-specifications-->
400403
<!--/source-->

<!--source:api-specifications-->
application/json Copy Bad Request

```
{
 "message": "Bad Request!"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Invalid key for service

```
{
 "message": "Please check the key you used to call this service",
 "url": "https://staircase.stoplight.io/docs/api-reference/customer-account-manager-service.yml/paths/~1products~1refresh/post"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
2
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `sort_column` required | `string` query | `date` | <!--source:api-specifications-->Sort Column<!--/source--> |
| `name` required | `string` path | `pipeline_name` | <!--source:api-specifications-->Pipeline Name<!--/source--> |

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Bad Request
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
Invalid key for service
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | — |
| `url` | `string` | — |

##### Other responses

`200``404`

<!--source:api-specifications-->

### Pipeline Dataset Data
<!--/source-->

`POST` `/pipelines/{name}/datasets/{dataset_name}/data`

<!--source:api-specifications-->

#### Put Data
<!--/source-->

`put_dataset_data`

<!--source:api-specifications-->
Put data
<!--/source-->

<!--source:api-specifications-->
Put data to a dataset. Dataset should be defined in the Pipeline configuration in the `datasets`. Read Pipeline Put Data for more information.

<!--/source-->

##### Request

<!--source:api-specifications-->
PutDemoDataPutDemoDataWithMilliseconds
<!--/source-->

<!--source:api-specifications-->
application/json Copy
```
[
 {
 "metric_number": 100,
 "metric_status": "SUCCESS",
 "date": "2022-08-15 23:23:23"
 }
]
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy
```
[
 {
 "metric_number": 100,
 "metric_status": "SUCCESS",
 "date": "2022-08-15 23:23:23.123"
 }
]
```

<!--/source-->

##### Response

<!--source:api-specifications-->
400403
<!--/source-->

<!--source:api-specifications-->
application/json Copy Bad Request

```
{
 "message": "Bad Request!"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Invalid key for service

```
{
 "message": "Please check the key you used to call this service",
 "url": "https://staircase.stoplight.io/docs/api-reference/customer-account-manager-service.yml/paths/~1products~1refresh/post"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
3
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `name` required | `string` path | `pipeline_name` | <!--source:api-specifications-->Pipeline Name<!--/source--> |
| `dataset_name` required | `string` path | `ExampleDatasetName` | <!--source:api-specifications-->Dataset Name<!--/source--> |
| `column_name` | `string` query | `Value` | <!--source:api-specifications-->Column default value<!--/source--> |

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Bad Request
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
Invalid key for service
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | — |
| `url` | `string` | — |

##### Other responses

`200``404`

`DELETE` `/pipelines/{name}/datasets/{dataset_name}/data`

<!--source:api-specifications-->

#### Delete Data
<!--/source-->

`delete_dataset_data`

<!--source:api-specifications-->
Delete Data from the Pipeline dataset. Read Pipeline Delete Data for more information.

<!--/source-->

##### Response

<!--source:api-specifications-->
400403
<!--/source-->

<!--source:api-specifications-->
application/json Copy Bad Request

```
{
 "message": "Bad Request!"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Invalid key for service

```
{
 "message": "Please check the key you used to call this service",
 "url": "https://staircase.stoplight.io/docs/api-reference/customer-account-manager-service.yml/paths/~1products~1refresh/post"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
2
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `name` required | `string` path | `pipeline_name` | <!--source:api-specifications-->Pipeline Name<!--/source--> |
| `dataset_name` required | `string` path | `ExampleDatasetName` | <!--source:api-specifications-->Dataset Name<!--/source--> |

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Bad Request
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
Invalid key for service
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | — |
| `url` | `string` | — |

##### Other responses

`200``404`

`GET` `/pipelines/{name}/datasets/{dataset_name}/data/count`

<!--source:api-specifications-->

#### Count Data
<!--/source-->

`count_dataset_data`

<!--source:api-specifications-->
Get data count in the pipeline dataset. Read Pipeline Count Data for more information.

<!--/source-->

##### Response

<!--source:api-specifications-->
400403
<!--/source-->

<!--source:api-specifications-->
application/json Copy Bad Request

```
{
 "message": "Bad Request!"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Invalid key for service

```
{
 "message": "Please check the key you used to call this service",
 "url": "https://staircase.stoplight.io/docs/api-reference/customer-account-manager-service.yml/paths/~1products~1refresh/post"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
2
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `name` required | `string` path | `pipeline_name` | <!--source:api-specifications-->Pipeline Name<!--/source--> |
| `dataset_name` required | `string` path | `ExampleDatasetName` | <!--source:api-specifications-->Dataset Name<!--/source--> |

##### Response `200``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Success
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `count`required | `integer` | <!--source:api-specifications-->Count<!--/source--> |

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Bad Request
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
Invalid key for service
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | — |
| `url` | `string` | — |

##### Other responses

`404`

`GET` `/pipelines/{name}/datasets/{dataset_name}/data/latest`

<!--source:api-specifications-->

#### Latest Data
<!--/source-->

`latest_dataset_data`

<!--source:api-specifications-->
Get the latest data object from the pipeline dataset. Read Pipeline The Latest Data for more information.

<!--/source-->

##### Response

<!--source:api-specifications-->
400403
<!--/source-->

<!--source:api-specifications-->
application/json Copy Bad Request

```
{
 "message": "Bad Request!"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Invalid key for service

```
{
 "message": "Please check the key you used to call this service",
 "url": "https://staircase.stoplight.io/docs/api-reference/customer-account-manager-service.yml/paths/~1products~1refresh/post"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
3
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `sort_column` required | `string` query | `date` | <!--source:api-specifications-->Sort Column<!--/source--> |
| `name` required | `string` path | `pipeline_name` | <!--source:api-specifications-->Pipeline Name<!--/source--> |
| `dataset_name` required | `string` path | `ExampleDatasetName` | <!--source:api-specifications-->Dataset Name<!--/source--> |

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Bad Request
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
Invalid key for service
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | — |
| `url` | `string` | — |

##### Other responses

`200``404`

<!--source:api-specifications-->

### Pipeline Debug
<!--/source-->

`POST` `/pipelines/{name}/run-job`

<!--source:api-specifications-->

#### Run Pipeline Job
<!--/source-->

`run_pipeline_job`

<!--source:api-specifications-->
Run Pipeline Job.

It is possible to run pipeline job with `pipeline_name`. `requestBody` is optional, but can contain data similar to `triggers` request_payload

<!--/source-->

##### Request

<!--source:api-specifications-->
application/json Copy
```
{
 "mp_host": "marketplace.staircaseapi.com",
 "mp_key": "API_KEY",
 "comply_auth": "TOKEN",
 "comply_host": "compliance-auth.comply-authentication.staircaseapi.com"
}
```

<!--/source-->

##### Response

<!--source:api-specifications-->
200400403
<!--/source-->

<!--source:api-specifications-->
application/json Copy Success

```
{
 "execution_id": "01F0KHK7DN3H5JZ4QJKMYAM6GB",
 "job_name": "job_name"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Bad Request

```
{
 "message": "Bad Request!"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Invalid key for service

```
{
 "message": "Please check the key you used to call this service",
 "url": "https://staircase.stoplight.io/docs/api-reference/customer-account-manager-service.yml/paths/~1products~1refresh/post"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
1
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `name` required | `string` path | `pipeline_name` | <!--source:api-specifications-->Pipeline Name<!--/source--> |

##### Response `200``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
Success
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `execution_id` | `string (ulid)` | <!--source:api-specifications-->Job Execution ID<!--/source-->Example `01F0KHK7DN3H5JZ4QJKMYAM6GB` |
| `job_name` | `string` | <!--source:api-specifications-->Job Name<!--/source--> |

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Bad Request
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
Invalid key for service
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | — |
| `url` | `string` | — |

##### Other responses

`404`

`GET` `/pipelines/{name}/error-logs`

<!--source:api-specifications-->

#### Get Error Logs
<!--/source-->

`get_pipeline_error-logs`

<!--source:api-specifications-->
Retrieve Pipeline Error Logs

<!--/source-->

##### Response

<!--source:api-specifications-->
application/json Copy Bad Request

```
{
 "message": "Bad Request!"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
1
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `name` required | `string` path | `pipeline_name` | <!--source:api-specifications-->Pipeline Name<!--/source--> |

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Bad Request
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message<!--/source--> |

##### Other responses

`200``404`

<!--source:api-specifications-->

### Account
<!--/source-->

`GET` `/quicksight`

<!--source:api-specifications-->

#### Status
<!--/source-->

`quicksight_get`

<!--source:api-specifications-->
Get QuickSight status

Expected response

```
{
 "status": "ACCOUNT_CREATED"
 }
```

<!--/source-->

##### Response

<!--source:api-specifications-->
400403
<!--/source-->

<!--source:api-specifications-->
application/json Copy Bad Request

```
{
 "message": "Bad Request!"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Invalid key for service

```
{
 "message": "Please check the key you used to call this service",
 "url": "https://staircase.stoplight.io/docs/api-reference/customer-account-manager-service.yml/paths/~1products~1refresh/post"
}
```

<!--/source-->

##### Response `200``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Success
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `status` | `string` | <!--source:api-specifications-->QuickSight Status<!--/source--> |

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Bad Request
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
Invalid key for service
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | — |
| `url` | `string` | — |

##### Other responses

`404`

`POST` `/quicksight`

<!--source:api-specifications-->

#### Activate
<!--/source-->

`quicksight_activate`

<!--source:api-specifications-->
Activate QuickSight account

<!--/source-->

##### Response

<!--source:api-specifications-->
400403
<!--/source-->

<!--source:api-specifications-->
application/json Copy Bad Request

```
{
 "message": "Bad Request!"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Invalid key for service

```
{
 "message": "Please check the key you used to call this service",
 "url": "https://staircase.stoplight.io/docs/api-reference/customer-account-manager-service.yml/paths/~1products~1refresh/post"
}
```

<!--/source-->

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Bad Request
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
Invalid key for service
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | — |
| `url` | `string` | — |

##### Other responses

`200``404`

`DELETE` `/quicksight`

<!--source:api-specifications-->

#### Delete
<!--/source-->

`quicksight_delete`

<!--source:api-specifications-->
Delete QuickSight account

<!--/source-->

##### Response

<!--source:api-specifications-->
400403
<!--/source-->

<!--source:api-specifications-->
application/json Copy Bad Request

```
{
 "message": "Bad Request!"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Invalid key for service

```
{
 "message": "Please check the key you used to call this service",
 "url": "https://staircase.stoplight.io/docs/api-reference/customer-account-manager-service.yml/paths/~1products~1refresh/post"
}
```

<!--/source-->

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Bad Request
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
Invalid key for service
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | — |
| `url` | `string` | — |

##### Other responses

`200``404`

<!--source:api-specifications-->

### Chat
<!--/source-->

`POST` `/service-message`

<!--source:api-specifications-->

#### Send message to Chat
<!--/source-->

`sendMessage`

<!--source:api-specifications-->
Chat
<!--/source-->

<!--source:api-specifications-->
This endpoint allows to send a message to user in Chat product.

<!--/source-->

##### Request

<!--source:api-specifications-->
application/json Copy
```
{
 "connection_id": "WbETDfY8IAMCE8A=",
 "message_id": "b2QlQarRO8"
}
```

<!--/source-->

##### Request body`application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `connection_id` | `string` | <!--source:api-specifications-->The identifier of connection<!--/source--> |
| `message_id` | `string` | <!--source:api-specifications-->The message identifier<!--/source--> |

##### Response `201``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
Assistant created
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `connection_id` | `string` | <!--source:api-specifications-->The identifier of connection<!--/source--> |
| `message_id` | `string` | <!--source:api-specifications-->The message identifier<!--/source--> |

##### Other responses

`400``403``404`

<!--source:api-specifications-->

### Setup
<!--/source-->

`POST` `/sign_in`

<!--source:api-specifications-->

#### Sign In
<!--/source-->

`sign-in`

<!--source:api-specifications-->
Sign in.
<!--/source-->

<!--source:api-specifications-->
Sign in the credentials

<!--/source-->

##### Request

<!--source:api-specifications-->
application/json Copy An example of a payload.

```
{
 "email": "john.doe@company.com",
 "password": "XXXXX"
}
```

<!--/source-->

##### Response

<!--source:api-specifications-->
200400401403500502
<!--/source-->

<!--source:api-specifications-->
application/json Copy OK.

```
{
 "id_token": "xxxxxx",
 "refresh_token": "<redacted>",
 "token_type": "yyyyyy"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Request data failed validation

```
{
 "message": "{'data': ['Missing data for required field.']}"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Unauthorized validation

```
{
 "message": "{'data': ['Unauthorized.']}"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Invalid key for service

```
{
 "message": "Please check the key you used to call this service",
 "url": "https://staircase.stoplight.io/docs/api-reference/customer-account-manager-service.yml/paths/~1products~1refresh/post"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy The product has encountered an internal server error

```
{
 "message": "The product has encountered an internal server error"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy While acting as a gateway or proxy, received an invalid response from the upstream server.

```
{
 "message": "The product has encountered an bad gateway error"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
2
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `x-api-key` required | `string` header | `<redacted>` | <!--source:api-specifications-->Key used to identify the API usage plan<!--/source--> |
| `Content-Type` required | `string` header | `application/json` | <!--source:api-specifications-->The content type.<!--/source--> |

##### Request body`application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `email`required | `string` | <!--source:api-specifications-->Email of account<!--/source-->Example `john.doe@company.com` |
| `password`required | `string` | <!--source:api-specifications-->Password of account<!--/source-->Example `XXXXX` |

##### Response `200``application/json`

<!--source:api-specifications-->
3 fields
<!--/source-->
<!--source:api-specifications-->
OK.
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `id_token` | `string` | <!--source:api-specifications-->The ID token.<!--/source--> |
| `refresh_token` | `string` | <!--source:api-specifications-->The refresh token.<!--/source--> |
| `token_type` | `string` | <!--source:api-specifications-->The token type.<!--/source--> |

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Request data failed validation
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `401``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Unauthorized validation
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
Invalid key for service
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | — |
| `url` | `string` | — |

##### Response `500``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
The product has encountered an internal server error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error Message<!--/source--> |

##### Response `502``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
While acting as a gateway or proxy, received an invalid response from the upstream server.
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error Message<!--/source--> |

<!--source:api-specifications-->

### Proxy
<!--/source-->

`POST` `/trust_score`

<!--source:api-specifications-->

#### Get Trust Score
<!--/source-->

`get_configuration`

<!--source:api-specifications-->
This endpoint serves as a proxy to the Get Trust Score api that allows bypassing api_key authorization, yet, is limited in domains that can access it.

<!--/source-->

##### Request

<!--source:api-specifications-->
application/json Copy
```
{
 "phone_number": "8167434789",
 "transaction_id": "01H3YA4JVJ3ZF3M41NXK9PA27T"
}
```

<!--/source-->

##### Response

<!--source:api-specifications-->
application/json Copy 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."
 }
}
```

<!--/source-->

##### Request body`application/json`

<!--source:api-specifications-->
4 fields
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `phone_number`required | `string` | <!--source:api-specifications-->Valid Phone Number<!--/source--> |
| `birth_date` | `string` | <!--source:api-specifications-->Should follow YYYY-MM-DD format.<!--/source--> |
| `transaction_id`required | `string` | <!--source:api-specifications-->Transaction ID<!--/source--> |
| `console_configuration_id` | `string` | <!--source:api-specifications-->Console app configuration ID<!--/source--> |

##### Response `200``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Success
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `id`required | `string` | <!--source:api-specifications-->Invocation ID<!--/source--> |

##### Other responses

`403``422`

`POST` `/identity`

<!--source:api-specifications-->

#### Get Identity
<!--/source-->

`get_identity`

<!--source:api-specifications-->
This endpoint serves as a proxy to the Get Identity api that allows bypassing api_key authorization, yet, is limited in domains that can access it.

<!--/source-->

##### Request

<!--source:api-specifications-->
application/json Copy
```
{
 "phone_number": "8167434789",
 "birth_date": "1990-01-01",
 "transaction_id": "01H3YA4JVJ3ZF3M41NXK9PA27T"
}
```

<!--/source-->

##### Response

<!--source:api-specifications-->
application/json Copy 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."
 }
}
```

<!--/source-->

##### Request body`application/json`

<!--source:api-specifications-->
4 fields
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `phone_number`required | `string` | <!--source:api-specifications-->Valid Phone Number<!--/source--> |
| `birth_date`required | `string` | <!--source:api-specifications-->Should follow YYYY-MM-DD format.<!--/source--> |
| `transaction_id`required | `string` | <!--source:api-specifications-->Transaction ID<!--/source--> |
| `console_configuration_id` | `string` | <!--source:api-specifications-->Console app configuration ID<!--/source--> |

##### Response `200``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Success
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `id`required | `string` | <!--source:api-specifications-->Invocation ID<!--/source--> |

##### Other responses

`403``422`

`POST` `/{api_name}/invocations/{id}`

<!--source:api-specifications-->

#### Get Invocation Status
<!--/source-->

`get_invocation_status`

<!--source:api-specifications-->
This endpoint serves as a proxy to the Get Invocation Status of Identity apis, referenced by the api_name and identifer of the invocation. `api_name` should be one of ['trust_score', 'identity'].

<!--/source-->

##### Response

<!--source:api-specifications-->
application/json Copy 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."
 }
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
2
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `api_name` required | `string` path | `trust_score` | <!--source:api-specifications-->Identity api name<!--/source--> |
| `id` required | `string` path | `01H3FP37TVHBY7R9C1013BDGM5` | <!--source:api-specifications-->Invocation ID<!--/source--> |

##### Other responses

`200``403``422`

<!--source:api-specifications-->

### Connection Proxy
<!--/source-->

`POST` `/vendors/{vendor_name}/flows/{flow_name}/jobs`

<!--source:api-specifications-->

#### Invoke Connection Flow
<!--/source-->

`invoke_connection_flow`

<!--source:api-specifications-->
This endpoint serves as a proxy to the Invoke Partner Flow api that allows bypassing api_key authorization, yet, is limited in domains that can access it. List of flows that can be invoked with this proxy is also limited and pre-defined. Please, refer to documentation of original endpoint for the request and response schemas.

<!--/source-->

##### Request

<!--source:api-specifications-->
application/json Copy
```
{
 "transaction_id": "01F7S0N7CQ31DZQYVSVPN66GNK",
 "callback_url": "https://webhook.site/2c40525f-69ec-485f-a79a-7256406e8da4",
 "request_payload": {}
}
```

<!--/source-->

##### Response

<!--source:api-specifications-->
application/json Copy 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."
 }
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
2
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `vendor_name` required | `string` path | `prove` | <!--source:api-specifications-->Vendor name<!--/source--> |
| `flow_name` required | `string` path | `get_trust_score` | <!--source:api-specifications-->Flow name<!--/source--> |

##### Response `202``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
Success
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `job_id` | `string` | <!--source:api-specifications-->Invocation ID<!--/source--> |
| `job_status` | `string` | <!--source:api-specifications-->Job status<!--/source--> |

##### Other responses

`403``422`

`POST` `/vendors/{vendor_name}/flows/{flow_name}/jobs/{job_id}`

<!--source:api-specifications-->

#### Get Invocation Status
<!--/source-->

`get_invocation_status`

<!--source:api-specifications-->
This endpoint serves as a proxy to the Retrieve Flow Execution Status. Please, refer to original documentation for request and response schemas.

<!--/source-->

##### Response

<!--source:api-specifications-->
application/json Copy 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."
 }
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
3
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `vendor_name` required | `string` path | `prove` | <!--source:api-specifications-->Vendor name<!--/source--> |
| `flow_name` required | `string` path | `get_trust_score` | <!--source:api-specifications-->Flow name<!--/source--> |
| `job_id` required | `string (uuid)` path | `7c668252-d2ba-job-id-896d-1f73236287d9` | <!--source:api-specifications-->Job invocation ID<!--/source--> |

##### Other responses

`200``403``422`

<!--source:api-specifications-->

### Datalake Data
<!--/source-->

`POST` `/datalakes/{name}/data`

<!--source:api-specifications-->

#### Put Data
<!--/source-->

`put_datalake_data`

<!--source:api-specifications-->
Put data
<!--/source-->

<!--source:api-specifications-->
Put data will the data from valid Staircase collection.

Known limits are:

- Put data MAX array size 500 elements

Important note, it may take 10-30 seconds for pipeline to consume and save data.

<!--/source-->

##### Request

<!--source:api-specifications-->
application/json Copy
```
[
 {
 "metric_number": 100,
 "metric_status": "SUCCESS",
 "date": "2022-08-15 23:23:23"
 }
]
```

<!--/source-->

##### Response

<!--source:api-specifications-->
400403
<!--/source-->

<!--source:api-specifications-->
application/json Copy Bad Request

```
{
 "message": "Bad Request!"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Invalid key for service

```
{
 "message": "Please check the key you used to call this service",
 "url": "https://staircase.stoplight.io/docs/api-reference/customer-account-manager-service.yml/paths/~1products~1refresh/post"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
1
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `name` required | `string` path | `pipeline_name` | <!--source:api-specifications-->Pipeline Name<!--/source--> |

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Bad Request
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
Invalid key for service
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | — |
| `url` | `string` | — |

##### Other responses

`200``404`

## Errors

`400``401``403``404``422``500``502`

## Notes

The catalogue records no narrative row for this slot. What appears above is read from the recorded build documentation and from the operation set. The component inventories — several hundred records naming each component, its properties and its content-system shape — are internal build material and are not published.

## More in Distribution

- Previous product: Access
- Next product: Environment
