Introduction

The Stitch Connect API enables users to programmatically access and manage their Stitch accounts, or Stitch partners to seamlessly integrate Stitch’s data pipleine functionality into their own platforms.

This API is a RESTful, resource-oriented API that allows you to programmatically provision Stitch accounts, create and modify data sources, and configure destination connections.

Each endpoint uses standard HTTP verbs like GET and POST, and will return standard HTTP response codes to indicate request status or errors.

We built the API to accept and return JSON in all responses, including errors.

API functionality

Using the API, you can:

  • Create Stitch client accounts (Partners only)

  • Access Stitch client accounts

  • Retrieve configuration info for destinations

  • Create, update, and delete destinations

  • Retrieve configuration info for data sources

  • Create, update, pause, unpause, and delete data sources

  • Retrieve connection check results for a data source

  • Select and configure streams and fields from data sources for replication

  • Start and stop replication jobs

  • Create, pause, unpause, and delete notification settings for a Stitch client account

Check out the tutorials and resources to learn more about using Stitch Connect.

Accessing the API

To use the API, you’ll need to obtain an API access token. This is necessary for authenticating successfully. Refer to the Authentication section for more info.

Terminology

Partner

An organization that utilizes Stitch Connect to programmatically create and/or manage Stitch client accounts on behalf of their users.

Stitch client account

An individual account for the Stitch web application.

Destination

Destination is the Stitch word for ‘data warehouse.’ A data warehouse is a central repository for data accumulated from a variety of sources.

Session

A browser session in the Stitch web application.

Source

A database, API, or other data application that Stitch replicates data from. Outside of Connect, known as an ‘integration’.

Stream

A table in a data source.

Connection check

A test performed by Stitch that checks the configuration of a source’s connection parameters.

Replication job

The three-step process by which Stitch replicates data. A replication job includes three distinct steps: Extraction, preparation, and loading.

Structure sync

The first step in the replication process, this process takes place during the Extraction phase of a replication job. A structure sync detects the tables and columns available in the source, along with any changes to the structure of those tables and columns. This is also referred to as discovery.

Quick Start

Step 1: Obtain an access token

Stitch authenticates requests to the API using an API access token. How you obtain an access token depends on the type of user you are:

  • Individual Stitch user: You will be using the API to programmatically control your own Stitch client account. You can create, revoke, and delete API access tokens on the Account Settings page of your Stitch client account.

  • Stitch partner: You will be performing actions in Stitch client accounts on behalf of users who authorize your API client. You’ll need to register as an API client and refer to the Partner API Authentication guide for instructions.

After you obtain an API access token, it should be stored somewhere safe and passed into the header of every API request made for the Stitch client account. This token will never expire, but it may be revoked at any time.

Step 2: Make a test API request

To check that your access token is working correctly, send a test request to the Source Types endpoint and retrieve configuration info about the platform.hubspot source:

curl -X GET https://api.stitchdata.com/v4/source-types/platform.hubspot
     -H "Authorization: Bearer <ACCESS_TOKEN>" 
     -H "Content-Type: application/json"

If successful, the API will return a status of 200 OK and a Source Report Card object corresponding to platform.hubspot.

Authentication

Authenticate your calls to the API by providing an access token in your requests. Each access token is associated with a single Stitch client account. Access tokens do not expire, but they may be revoked by the user at any time.

Additionally, each request’s permissions are limited to that Stitch client account.

In the examples in this documentation, we use bearer auth:

curl -X GET https://api.stitchdata.com/v4/sources
     -H "Authorization: Bearer <ACCESS_TOKEN>"

All requests must be made over HTTPS or they will fail. API requests that don’t contain authentication will also fail.

Obtain an API access token

How you obtain an access token depends on the type of user you are:

  • Individual Stitch user: You will be using the API to programmatically control your own Stitch client account. You can create, revoke, and delete API access tokens on the Account Settings page of your Stitch client account.

  • Stitch partner: You will be performing actions in Stitch client accounts on behalf of users who authorize your API client. You’ll need to register as an API client and refer to the Partner API Authentication guide for instructions.

Response Codes

The API will attempt to return HTTP status codes for every request.

Code Text Description
200

OK

Success!

400

Bad Request

The request is invalid, contains malformed data, or otherwise cannot be served. The reasons for invalid requests can vary by endpoint. An accompanying message will provide detail about the reason for failure.

401

Unauthorized

The request doesn’t have a valid API access token. Verify your token is correct and re-try the request.

404

Not Found

Potential causes:

  • The URI requested is invalid
  • The requested resource, such as a specific source, doesn’t exist
  • Method is not allowed by the endpoint
500

Internal Server Error

The API is experiencing problems. Try again later.

502

Bad Gateway

The API is experiencing problems. Try again later.

Error message format

The API will return error messages in JSON format. Some error messages may be returned as strings:

an account can have at most one destination

While others may be JSON objects:

{
  "code":"ExistingUser",
  "message":"This email address is already associated with an active user."
}

Error message text

The text in error messages will vary by root cause and endpoint.

Each endpoint section contains a rollup of the errors specific to that endpoint. Refer to the documentation for the endpoint for specifics on errors, their possible causes, and the messages the API will return.

Versioning

The API is currently versioned by object. The table below lists the core objects, all available versions, and the endpoints available for each version.

ACCOUNT
Version Endpoints
v3 (latest)
SESSION
Version Endpoints
v3 (latest)
DESTINATION TYPE
Version Endpoints
v4 (latest)
DESTINATION
Version Endpoints
v4 (latest)
v3
SOURCE TYPE
Version Endpoints
v4 (latest)
SOURCE
Version Endpoints
v4 (latest)
CONNECTION CHECK
Version Endpoints
v4 (latest)
STREAM
Version Endpoints
v4 (latest)
REPLICATION JOB
Version Endpoints
v4 (latest)
NOTIFICATION
Version Endpoints
v1 (latest)

Core Objects

Accounts

OBJECT Account Object

An object representing a Stitch client account.

POST Create an account

Creates a new Stitch client account and receives an API access token in return.

Note: This endpoint is available only to Stitch Partners. Before creating a Stitch account, you’ll need to request access to the API and obtain partner credentials by submitting this form to our team.


OBJECT

The Account Object

An object representing a Stitch client account.

company
STRING

A name for the Stitch client. This is typically the name of the company using the Stitch client account.

email
STRING

The email address of the user signing up for a Stitch client account. Upon successful account creation, Stitch will send an email to this address with instructions for completing the setup.

first_name
STRING

The first name of the user signing up for a Stitch client account.

last_name
STRING

The last name of the user signing up for a Stitch client account.

partner_id
STRING

The unique ID for your API client, obtained when you register to use the API.

partner_secret
STRING

The secret for your API client, obtained when you registered to use the API.


POST

Create an account

Creates a new Stitch client account and receives an API access token in return.

Note: This endpoint is available only to Stitch Partners. Before creating a Stitch account, you’ll need to request access to the API and obtain partner credentials by submitting this form to our team.

Resource List
Request Method

POST

Resource URL

/v3/accounts

Authorization

Required. The request header must contain Authorization and your access token.

Request Header

The request header must contain the following:

  • Authorization: Must specify Bearer Auth, e.g. Bearer: <ACCESS_TOKEN>
  • Content-Type: Must specify JSON, e.g. application/json

See the Request tab below for an example request.

Request Body

The request body must be valid JSON and contain the required arguments.

Response Format

Whether the request succeeds or fails, the API will return JSON.

Arguments

This endpoint accepts the following parameters:

company
STRING
REQUIRED

A name for the Stitch client. This is typically the name of the company using the Stitch client account.

email
STRING
REQUIRED

The email address of the user signing up for a Stitch client account. Upon successful account creation, Stitch will send an email to this address with instructions for completing the setup.

first_name
STRING
REQUIRED

The first name of the user signing up for a Stitch client account.

last_name
STRING
REQUIRED

The last name of the user signing up for a Stitch client account.

partner_id
STRING
REQUIRED

The unique ID for your API client, obtained when you register to use the API.

partner_secret
STRING
REQUIRED

The secret for your API client, obtained when you registered to use the API.

Returns

If successful, the API will return a status of 200 OK and an object with access_token and stitch_account_id properties.

Otherwise, an error will be returned. For example: If a Stitch client account associated with the user already exists, the request will return This email address is already associated with an active user. See the Errors tab below for additional possibilities.

curl -X POST https://api.stitchdata.com/v3/accounts
     -H "Content-Type: application/json"
     -d "{
          "partner_id": "<PARTNER_ID>",
          "partner_secret": "<PARTNER_SECRET>",
          "first_name": "Stitch",
          "last_name": "Product Team",
          "company": "Stitch Product Team",
          "email": "stitch-api-test@stitchdata.com"
        }"
{
  "access_token": "at_<ACCESS_TOKEN>",
  "stitch_account_id": 136715
}
Code Condition Response Body
400

A Stitch account is already associated with the provided email address.

{
  "code":"ExistingUser",
  "message":"This email address is already associated with an active user."
}
400

Request body contains malformed data.

{
  "code":"BadRequest",
  "message":"Invalid form data.",
  "errors":{}
}
400

Missing or invalid partner_id.

{
  "code": "BadRequest",
  "message": "Invalid form data.",
  "errors": {
    "partner_id": "required"
  }
}
400

Missing or invalid partner_secret.

{
  "code": "BadRequest",
  "message": "Invalid form data.",
  "errors": {
    "partner_secret": "required"
  }
}


Sessions

OBJECT Session Object

This object represents a browser session in the Stitch web application.

POST Create a session

Generates an ephemeral token to create a session in the Stitch web application. Ephemeral tokens expire after one hour.


OBJECT

The Session Object

This object represents a browser session in the Stitch web application.

ephemeral_token
STRING

A token that is passed to the Connect JavaScript Client to create a session.


POST

Create a session

Generates an ephemeral token to create a session in the Stitch web application. Ephemeral tokens expire after one hour.

Ephemeral tokens are used to create a session with the Connect JavaScript client. The session will be for the user for whom the API access token was created.

After the ephemeral token is used to create a session, the created session will expire once terminated or after 12 hours.

Resource List
Request Method

POST

Resource URL

/v3/sessions/ephemeral

Authorization

Required. The request header must contain Authorization and your access token.

Request Header

The request header must contain the following:

  • Authorization: Must specify Bearer Auth, e.g. Bearer: <ACCESS_TOKEN>
  • Content-Type: Must specify JSON, e.g. application/json

See the Request tab below for an example request.

Response Format

Whether the request succeeds or fails, the API will return JSON.

Returns

If successful, the API will return a status of 200 OK and a Session object.

curl -X POST https://api.stitchdata.com/v3/sessions/ephemeral
     -H "Authorization: Bearer <ACCESS_TOKEN>" 
     -H "Content-Type: application/json"
HTTP/1.1 200 OK
Content-Type: application/json;charset=ISO-8859-1

{
  "ephemeral_token":"<EPHEMERAL_TOKEN>"
}


Destination Types

OBJECT Destination Type Object

The Destination Type object contains the information needed to configure a destination.

GET Get a destination type

Retrieves general information about the configuration required for a destination type.

GET List all destination types

Retrieves general information about the configuration required for all supported destination types.


OBJECT

The Destination Type Object

The Destination Type object contains the information needed to configure a destination.

report_card
OBJECT (DESTINATION REPORT CARD)

The destination Report Card object corresponding to the destination’s type. For example: s3 or snowflake.


GET

Get a destination type

Retrieves general information about the configuration required for a destination type.

Note: This endpoint doesn’t retrieve information about the specific configuration of a destination in a single account. Instead, it will return general configuration information for the specified destination type.

To retrieve specific information about the destination for an account, use the List Destinations endpoint.

Resource List
Request Method

GET

Resource URL

/v4/destination-types/{destination_type}

Authorization

Required. The request header must contain Authorization and your access token.

Request Header

The request header must contain the following:

  • Authorization: Must specify Bearer Auth, e.g. Bearer: <ACCESS_TOKEN>
  • Content-Type: Must specify JSON, e.g. application/json

See the Request tab below for an example request.

Request Body

The request body must be valid JSON and contain the required arguments.

Response Format

Whether the request succeeds or fails, the API will return JSON.

Arguments

This endpoint accepts the following parameters:

destination_type
STRING
REQUIRED

A path parameter indicating the type of destination to retrieve, such as s3 or redshift.

Returns

If successful, the API will return a status of 200 OK and a Destination Report Card object corresponding to type.

curl -X GET https://api.stitchdata.com/v4/destination-types/redshift
     -H "Authorization: Bearer <ACCESS_TOKEN>" 
     -H "Content-Type: application/json"
{
  "type": "redshift",
  "current_step": 1,
  "current_step_type": "form",
  "steps": [
    {
      "type": "form",
      "properties": [
        {
          "name": "database",
          "is_required": true,
          "is_credential": false,
          "system_provided": false,
          "property_type": "user_provided",
          "json_schema": {
            "type": "string"
          },
          "provided": false
        },
        {
          "name": "encryption_host",
          "is_required": false,
          "is_credential": false,
          "system_provided": false,
          "property_type": "user_provided",
          "json_schema": {
            "anyOf": [
              {
                "type": "string",
                "format": "ipv4"
              },
              {
                "type": "string",
                "format": "ipv6"
              },
              {
                "type": "string",
                "format": "hostname"
              }
            ]
          },
          "provided": false
        },
        {
          "name": "encryption_port",
          "is_required": false,
          "is_credential": false,
          "system_provided": false,
          "property_type": "user_provided",
          "json_schema": {
            "type": "string",
            "pattern": "^\\d+$"
          },
          "provided": false
        },
        {
          "name": "encryption_type",
          "is_required": true,
          "is_credential": false,
          "system_provided": false,
          "property_type": "user_provided",
          "json_schema": {
            "type": "string",
            "pattern": "^(ssh|none)$"
          },
          "provided": false
        },
        {
          "name": "encryption_username",
          "is_required": false,
          "is_credential": false,
          "system_provided": false,
          "property_type": "user_provided",
          "json_schema": {
            "type": "string"
          },
          "provided": false
        },
        {
          "name": "host",
          "is_required": true,
          "is_credential": false,
          "system_provided": false,
          "property_type": "user_provided",
          "json_schema": {
            "anyOf": [
              {
                "type": "string",
                "format": "ipv4"
              },
              {
                "type": "string",
                "format": "ipv6"
              },
              {
                "type": "string",
                "format": "hostname"
              }
            ]
          },
          "provided": false
        },
        {
          "name": "password",
          "is_required": true,
          "is_credential": true,
          "system_provided": false,
          "property_type": "user_provided",
          "json_schema": {
            "type": "string"
          },
          "provided": false
        },
        {
          "name": "port",
          "is_required": true,
          "is_credential": false,
          "system_provided": false,
          "property_type": "user_provided",
          "json_schema": {
            "type": "string",
            "pattern": "^\\d+$"
          },
          "provided": false
        },
        {
          "name": "username",
          "is_required": true,
          "is_credential": false,
          "system_provided": false,
          "property_type": "user_provided",
          "json_schema": {
            "type": "string"
          },
          "provided": false
        }
      ]
    },
    {
      "type": "fully_configured",
      "properties": []
    }
  ],
  "details": {
    "pricing_tier": "standard",
    "pipeline_state": "released",
    "protocol": "redshift",
    "access": true
  }
}

GET

List all destination types

Retrieves general information about the configuration required for all supported destination types.

Note: This endpoint doesn’t retrieve information about the specific configuration of a destination in a single account. Instead, it will return general configuration information for all supported destination types.

To retrieve specific information about the destination for an account, use the List Destinations endpoint.

Resource List
Request Method

GET

Resource URL

/v4/destination-types

Authorization

Required. The request header must contain Authorization and your access token.

Request Header

The request header must contain the following:

  • Authorization: Must specify Bearer Auth, e.g. Bearer: <ACCESS_TOKEN>
  • Content-Type: Must specify JSON, e.g. application/json

See the Request tab below for an example request.

Response Format

Whether the request succeeds or fails, the API will return JSON.

Returns

If successful, the API will return a status of 200 OK and an array of Destination Report Card objects, one for each supported destination type.

curl -X GET https://api.stitchdata.com/v4/destination-types
     -H "Authorization: Bearer <ACCESS_TOKEN>" 
     -H "Content-Type: application/json"
[
  {
    "type": "azure_sqldw",
    "current_step": 1,
    "current_step_type": "form",
    "steps": [
      {
        "type": "form",
        "properties": [
          {
            "name": "host",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "ipv4"
                },
                {
                  "type": "string",
                  "format": "ipv6"
                },
                {
                  "type": "string",
                  "format": "hostname"
                }
              ]
            },
            "provided": false
          },
          {
            "name": "port",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^\\d+$"
            },
            "provided": false
          },
          {
            "name": "username",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false
          },
          {
            "name": "password",
            "is_required": true,
            "is_credential": true,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false
          },
          {
            "name": "azure_storage_account_token",
            "is_required": true,
            "is_credential": true,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false
          },
          {
            "name": "azure_storage_sas_url",
            "is_required": true,
            "is_credential": true,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "format": "uri"
            },
            "provided": false
          },
          {
            "name": "database",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false
          },
          {
            "name": "encryption_type",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^(ssh|none)$"
            },
            "provided": false
          },
          {
            "name": "encryption_host",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "ipv4"
                },
                {
                  "type": "string",
                  "format": "ipv6"
                },
                {
                  "type": "string",
                  "format": "hostname"
                }
              ]
            },
            "provided": false
          },
          {
            "name": "encryption_port",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^\\d+$"
            },
            "provided": false
          },
          {
            "name": "encryption_username",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false
          }
        ]
      },
      {
        "type": "fully_configured",
        "properties": []
      }
    ],
    "details": {
      "pricing_tier": "standard",
      "pipeline_state": "beta",
      "protocol": "azure_sqldw",
      "access": true
    }
  },
  {
    "type": "redshift",
    "current_step": 1,
    "current_step_type": "form",
    "steps": [
      {
        "type": "form",
        "properties": [
          {
            "name": "database",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false
          },
          {
            "name": "encryption_host",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "ipv4"
                },
                {
                  "type": "string",
                  "format": "ipv6"
                },
                {
                  "type": "string",
                  "format": "hostname"
                }
              ]
            },
            "provided": false
          },
          {
            "name": "encryption_port",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^\\d+$"
            },
            "provided": false
          },
          {
            "name": "encryption_type",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^(ssh|none)$"
            },
            "provided": false
          },
          {
            "name": "encryption_username",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false
          },
          {
            "name": "host",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "ipv4"
                },
                {
                  "type": "string",
                  "format": "ipv6"
                },
                {
                  "type": "string",
                  "format": "hostname"
                }
              ]
            },
            "provided": false
          },
          {
            "name": "password",
            "is_required": true,
            "is_credential": true,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false
          },
          {
            "name": "port",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^\\d+$"
            },
            "provided": false
          },
          {
            "name": "username",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false
          }
        ]
      },
      {
        "type": "fully_configured",
        "properties": []
      }
    ],
    "details": {
      "pricing_tier": "standard",
      "pipeline_state": "released",
      "protocol": "redshift",
      "access": true
    }
  },
  {
    "type": "postgres",
    "current_step": 1,
    "current_step_type": "form",
    "steps": [
      {
        "type": "form",
        "properties": [
          {
            "name": "database",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false
          },
          {
            "name": "encryption_host",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "ipv4"
                },
                {
                  "type": "string",
                  "format": "ipv6"
                },
                {
                  "type": "string",
                  "format": "hostname"
                }
              ]
            },
            "provided": false
          },
          {
            "name": "encryption_port",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^\\d+$"
            },
            "provided": false
          },
          {
            "name": "encryption_type",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^(ssh|none)$"
            },
            "provided": false
          },
          {
            "name": "encryption_username",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false
          },
          {
            "name": "host",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "ipv4"
                },
                {
                  "type": "string",
                  "format": "ipv6"
                },
                {
                  "type": "string",
                  "format": "hostname"
                }
              ]
            },
            "provided": false
          },
          {
            "name": "password",
            "is_required": true,
            "is_credential": true,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false
          },
          {
            "name": "port",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^\\d+$"
            },
            "provided": false
          },
          {
            "name": "ssl",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "boolean"
            },
            "provided": false
          },
          {
            "name": "sslrootcert",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false
          },
          {
            "name": "username",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false
          }
        ]
      },
      {
        "type": "fully_configured",
        "properties": []
      }
    ],
    "details": {
      "pricing_tier": "standard",
      "pipeline_state": "released",
      "protocol": "postgres",
      "access": true
    }
  },
  {
    "type": "snowflake",
    "current_step": 1,
    "current_step_type": "form",
    "steps": [
      {
        "type": "form",
        "properties": [
          {
            "name": "database",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false
          },
          {
            "name": "host",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "ipv4"
                },
                {
                  "type": "string",
                  "format": "ipv6"
                },
                {
                  "type": "string",
                  "format": "hostname"
                }
              ]
            },
            "provided": false
          },
          {
            "name": "password",
            "is_required": true,
            "is_credential": true,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false
          },
          {
            "name": "port",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^\\d+$"
            },
            "provided": false
          },
          {
            "name": "role",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false
          },
          {
            "name": "username",
            "is_required": true,
            "is_credential": true,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false
          },
          {
            "name": "warehouse",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false
          }
        ]
      },
      {
        "type": "fully_configured",
        "properties": []
      }
    ],
    "details": {
      "pricing_tier": "standard",
      "pipeline_state": "released",
      "protocol": "snowflake",
      "access": true
    }
  },
  {
    "type": "s3",
    "current_step": 1,
    "current_step_type": "form",
    "steps": [
      {
        "type": "form",
        "properties": [
          {
            "name": "csv_delimiter",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false
          },
          {
            "name": "csv_force_quote",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^(true|false)$"
            },
            "provided": false
          },
          {
            "name": "output_file_format",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^(csv|jsonl)$"
            },
            "provided": false
          },
          {
            "name": "s3_bucket",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false
          },
          {
            "name": "s3_key_format_string",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false
          },
          {
            "name": "sentinel_key",
            "is_required": true,
            "is_credential": true,
            "system_provided": false,
            "property_type": "system_provided_by_default",
            "json_schema": {
              "type": "string",
              "pattern": "^stitch-challenge-file-.*$"
            },
            "provided": false
          }
        ]
      },
      {
        "type": "fully_configured",
        "properties": []
      }
    ],
    "details": {
      "pricing_tier": "standard",
      "pipeline_state": "released",
      "protocol": "s3",
      "access": true
    }
  },
  {
    "type": "storagegrid",
    "current_step": 1,
    "current_step_type": "form",
    "steps": [
      {
        "type": "form",
        "properties": [
          {
            "name": "access_key_id",
            "is_required": true,
            "is_credential": true,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false
          },
          {
            "name": "csv_delimiter",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false
          },
          {
            "name": "csv_force_quote",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^(true|false)$"
            },
            "provided": false
          },
          {
            "name": "endpoint",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "ipv4"
                },
                {
                  "type": "string",
                  "format": "ipv6"
                },
                {
                  "type": "string",
                  "format": "hostname"
                }
              ]
            },
            "provided": false
          },
          {
            "name": "output_file_format",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^(csv|jsonl)$"
            },
            "provided": false
          },
          {
            "name": "port",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^\\d+$"
            },
            "provided": false
          },
          {
            "name": "s3_bucket",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false
          },
          {
            "name": "s3_key_format_string",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false
          },
          {
            "name": "secret_access_key",
            "is_required": true,
            "is_credential": true,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false
          },
          {
            "name": "sentinel_key",
            "is_required": true,
            "is_credential": true,
            "system_provided": false,
            "property_type": "system_provided_by_default",
            "json_schema": {
              "type": "string",
              "pattern": "^stitch-challenge-file-.*$"
            },
            "provided": false
          }
        ]
      },
      {
        "type": "fully_configured",
        "properties": []
      }
    ],
    "details": {
      "pricing_tier": "enterprise",
      "pipeline_state": "alpha",
      "protocol": "storagegrid",
      "access": false
    }
  }
]


Destinations

OBJECT Destination Object

An object representing a destination. Destinations are the data warehouses into which Stitch writes data.

POST Create a destination

Creates a new destination. Only a single destination is supported per Stitch client account.

PUT Update a destination

Updates an existing destination. Modifications to the type attribute are not supported.

GET List destinations

Lists the destination currently in use for a Stitch account. Only a single data warehouse is supported per Stitch client account.

DELETE Delete a destination

Deletes an existing destination.

Note: Stitch requires a destination to replicate data. Replication will be paused until a new destination is created and has a successful connection.


OBJECT

The Destination Object

An object representing a destination. Destinations are the data warehouses into which Stitch writes data.

created_at
TIMESTAMP

The time at which the destination object was created.

deleted_at
TIMESTAMP

The time at which the destination object was deleted.

id
INTEGER

A unique identifier for this destination.

name
STRING

The name for the destination.

paused_at
TIMESTAMP

If the connection was paused by the user, the time the pause began. Otherwise, or if the connection is active, this will be null.

properties
OBJECT (DESTINATION FORM PROPERTIES)

Parameters for connecting to the destination, excluding any sensitive credentials. The parameters must adhere to the type of destination.

Note: When included in responses, this object will contain the current values for the destination’s form properties. If an optional property (is_required: false) has not been provided, it will not be present in this object.

report_card
OBJECT (DESTINATION REPORT CARD)

The Report Card object corresponding to the destination’s type. For example: postgres or redshift.

stitch_client_id
INTEGER

The ID of the Stitch client account.

system_paused_at
TIMESTAMP

If the connection was paused by the system, the time the pause began. Otherwise, or if the connection is active, this will be null.

type
STRING

The destination type. Must be one of:

  • azure_sqldw

  • bigquery_v2

  • postgres

  • redshift

  • s3

  • snowflake

updated_at
TIMESTAMP

The time at which the destination object was last updated.

connection
OBJECT (DESTINATION FORM PROPERTIES)

Parameters for connecting to the destination, excluding any sensitive credentials.

The parameters must adhere to the type of destination.

Note: This has been renamed to properties in v4 of the Destinations endpoint.

created_at
TIMESTAMP

The time at which the destination object was created.

id
INTEGER

A unique identifier for this destination.

last_check
TIMESTAMP

The time the last connection check to the destination completed.

Note: This field has been deprecated in v4 of the Destinations endpoint.

type
STRING

The destination type. Must be one of:

  • azure_sqldw

  • bigquery_v2

  • postgres

  • redshift

  • s3

  • snowflake

updated_at
TIMESTAMP

The time at which the destination object was last updated.


POST

Create a destination

Creates a new destination. Only a single destination is supported per Stitch client account.

Resource List
Request Method

POST

Resource URL

/v4/destinations

Authorization

Required. The request header must contain Authorization and your access token.

Request Header

The request header must contain the following:

  • Authorization: Must specify Bearer Auth, e.g. Bearer: <ACCESS_TOKEN>
  • Content-Type: Must specify JSON, e.g. application/json

See the Request tab below for an example request.

Request Body

The request body must be valid JSON and contain the required arguments.

Response Format

Whether the request succeeds or fails, the API will return JSON.

Arguments

This endpoint accepts the following parameters:

type
STRING
REQUIRED

The destination type. Must be one of:

  • azure_sqldw

  • bigquery_v2

  • postgres

  • redshift

  • s3

  • snowflake

properties
OBJECT
REQUIRED

A Destination Form Properties object corresponding to the value of type.

Returns

If successful, the API will return a status of 200 OK and a Destination object with a report_card property.

The report_card property contains the Destination Report Card object for the destination’s configuration status.

Create a PostgreSQL destination:

curl -X POST https://api.stitchdata.com/v4/destinations
     -H "Authorization: Bearer <ACCESS_TOKEN>" 
     -H "Content-Type: application/json"
     -d "{
          "type":"postgres",
          "properties": {
            "host":"<HOST>",
            "port":"5432",
            "username":"stitch",
            "database":"demni2mf59dt10",
            "password":"<PASSWORD>",
            "ssl":false
            }
         }"

PostgreSQL destination response:

{
  "properties": {
    "database": "demni2mf59dt10",
    "encryption_type": "none",
    "host": "<HOST>",
    "port": "5432",
    "ssl": "true",
    "status": "1",
    "username": "stitch"
  },
  "updated_at": "2019-05-24T18:04:08Z",
  "name": "Default Warehouse",
  "type": "postgres",
  "deleted_at": null,
  "system_paused_at": null,
  "stitch_client_id": 116078,
  "paused_at": null,
  "id": 155582,
  "display_name": null,
  "created_at": "2019-05-24T18:03:50Z",
  "report_card": {
    "type": "postgres",
    "current_step": 2,
    "current_step_type": "fully_configured",
    "steps": [
      {
        "type": "form",
        "properties": [
          {
            "name": "database",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": true
          },
          {
            "name": "encryption_host",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "ipv4"
                },
                {
                  "type": "string",
                  "format": "ipv6"
                },
                {
                  "type": "string",
                  "format": "hostname"
                }
              ]
            },
            "provided": false
          },
          {
            "name": "encryption_port",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^\\d+$"
            },
            "provided": false
          },
          {
            "name": "encryption_type",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^(ssh|none)$"
            },
            "provided": true
          },
          {
            "name": "encryption_username",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false
          },
          {
            "name": "host",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "ipv4"
                },
                {
                  "type": "string",
                  "format": "ipv6"
                },
                {
                  "type": "string",
                  "format": "hostname"
                }
              ]
            },
            "provided": true
          },
          {
            "name": "password",
            "is_required": true,
            "is_credential": true,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": true
          },
          {
            "name": "port",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^\\d+$"
            },
            "provided": true
          },
          {
            "name": "ssl",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "boolean"
            },
            "provided": true
          },
          {
            "name": "sslrootcert",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false
          },
          {
            "name": "username",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": true
          }
        ]
      },
      {
        "type": "fully_configured",
        "properties": []
      }
    ]
  }
}
Code Condition Response Body
400

Accounts can have one destination

an account can have at most one destination

400

Missing or prohibited arguments

POST body may only include a type and map of properties

Resource List
Request Method

POST

Resource URL

/v3/destinations

Authorization

Required. The request header must contain Authorization and your access token.

Request Header

The request header must contain the following:

  • Authorization: Must specify Bearer Auth, e.g. Bearer: <ACCESS_TOKEN>
  • Content-Type: Must specify JSON, e.g. application/json

See the Request tab below for an example request.

Request Body

The request body must be valid JSON and contain the required arguments.

Response Format

Whether the request succeeds or fails, the API will return JSON.

Arguments

This endpoint accepts the following parameters:

type
STRING
REQUIRED

The destination type. Must be one of:

  • azure_sqldw

  • bigquery_v2

  • postgres

  • redshift

  • s3

  • snowflake

connection
OBJECT
REQUIRED

A Destination Form Properties object corresponding to the value of type.

Returns

If successful, the API will return a status of 200 OK and a Destination object.

Create an Amazon S3 destination:

curl -X POST https://api.stitchdata.com/v3/destinations
     -H "Authorization: Bearer <ACCESS_TOKEN>" 
     -H "Content-Type: application/json"
     -d "{
          "type":"s3",
          "connection": {
            "s3_bucket":"com-stitch-test-bucket",
            "output_file_format":"csv",
            "s3_key_format_string":"[integration_name]/[table_name]/[table_version]_[timestamp_loaded].csv",
            "csv_delimiter":",",
            "csv_force_quote":true
            }
         }"

Create an Amazon Redshift destination:

curl -X POST https://api.stitchdata.com/v3/destinations
     -H "Authorization: Bearer <ACCESS_TOKEN>" 
     -H "Content-Type: application/json"
     -d "{
          "type":"redshift",
          "connection": {
            "host":"<HOST>",
            "port":5439,
            "username":"<USERNAME>",
            "database":"<DATABASE>",
            "password":"<PASSWORD>",
            "ssl":false
            }
         }"

Create a PostgreSQL destination:

curl -X POST https://api.stitchdata.com/v3/destinations
     -H "Authorization: Bearer <ACCESS_TOKEN>" 
     -H "Content-Type: application/json"
     -d "{
          "type":"postgres",
          "connection": {
            "host":"<HOST>",
            "port":5432,
            "username":"<USERNAME>",
            "database":"<DATABASE>",
            "password":"<PASSWORD>",
            "ssl":false
            }
         }"

Create a Snowflake destination:

curl -X POST https://api.stitchdata.com/v3/destinations
     -H "Authorization: Bearer <ACCESS_TOKEN>" 
     -H "Content-Type: application/json"
     -d "{
          "type":"snowflake",
          "connection": {
            "host":"<HOST>",
            "port":443,
            "user":"<USERNAME>",
            "warehouse":"<WAREHOUSE>",
            "database":"<DATABASE>",
            "password":"<PASSWORD>",
            "role":"<OPTIONAL_ROLE>",
            "ssl":false
            }
         }"

Amazon S3 destination response:

Note: There are additional steps to creating an Amazon S3 destination beyond submitting a successful request to this endpoint. Refer to the Amazon S3 Destination Form Property documentation for more info.

HTTP/1.1 200 OK
Content-Type: application/json;charset=ISO-8859-1

{
  "id":"<DESTINATION_ID>",
  "type":"s3",
  "created_at":"2018-02-06T15:36:36Z",
  "updated_at":"2018-02-06T15:36:36Z",
  "connection": {
      "s3_bucket":"com-stitch-test-bucket",
      "output_file_format":"csv",
      "s3_key_format_string":"[integration_name]/[table_name]/[table_version]_[timestamp_loaded].csv",
      "csv_delimiter":",",
      "csv_force_quote":true,
      "sentinel_key":"stitch-challenge-file-af295ad1-7a4b-4881-89dc-c9be27de13a5"
  },

  "last_check":{
      "error":false,
      "started_at":"2018-02-06T16:15:19Z",
      "completed_at":"2018-02-06T16:16:21Z"
  }
}

Amazon Redshift destination response:

HTTP/1.1 200 OK
Content-Type: application/json;charset=ISO-8859-1

{
  "id":"<DESTINATION_ID>",
  "type":"redshift",
  "created_at":"2018-02-06T15:36:36Z",
  "updated_at":"2018-02-06T15:36:36Z",
  "connection": {
      "host":"<HOST>",
      "port":5439,
      "username":"<USERNAME>",
      "database":"<DATABASE>",
      "password":"<PASSWORD>",
      "ssl":false
  },

  "last_check":{
      "error":false,
      "started_at":"2018-02-06T16:15:19Z",
      "completed_at":"2018-02-06T16:16:21Z"
  }
}

PostgreSQL destination response:

HTTP/1.1 200 OK
Content-Type: application/json;charset=ISO-8859-1

{
  "id":"<DESTINATION_ID>",
  "type":"postgres",
  "created_at":"2018-02-06T15:36:36Z",
  "updated_at":"2018-02-06T15:36:36Z",
  "connection": {
      "host":"<HOST>",
      "port":5432,
      "username":"<USERNAME>",
      "database":"<DATABASE>",
      "password":"<PASSWORD>",
      "ssl":false
  },

  "last_check":{
      "error":false,
      "started_at":"2018-02-06T16:15:19Z",
      "completed_at":"2018-02-06T16:16:21Z"
  }
}

Snowflake destination response:

HTTP/1.1 200 OK
Content-Type: application/json;charset=ISO-8859-1

{
  "id":"<DESTINATION_ID>",
  "type":"snowflake",
  "created_at":"2018-02-06T15:36:36Z",
  "updated_at":"2018-02-06T15:36:36Z",
  "connection": {
      "host":"<HOST>",
      "port":443,
      "user":"<USERNAME>",
      "warehouse":"<WAREHOUSE>",
      "database":"<DATABASE>",
      "password":"<PASSWORD>",
      "role":"<OPTIONAL_ROLE>",
      "ssl":false
  },

  "last_check":{
      "error":false,
      "started_at":"2018-02-06T16:15:19Z",
      "completed_at":"2018-02-06T16:16:21Z"
  }
}
Code Condition Response Body
400

Accounts can have one destination

an account can have at most one destination

400

Missing or prohibited arguments

body must be a map with type = redshift, postgres, or snowflake. required-keys = type, connection


PUT

Update a destination

Updates an existing destination. Modifications to the type attribute are not supported.

Resource List
Request Method

PUT

Resource URL

/v4/destinations/{destination_id}

Authorization

Required. The request header must contain Authorization and your access token.

Request Header

The request header must contain the following:

  • Authorization: Must specify Bearer Auth, e.g. Bearer: <ACCESS_TOKEN>
  • Content-Type: Must specify JSON, e.g. application/json

See the Request tab below for an example request.

Request Body

The request body must be valid JSON and contain the required arguments.

Response Format

Whether the request succeeds or fails, the API will return JSON.

Arguments

This endpoint accepts the following parameters:

destination_id
PATH PARAMETER
REQUIRED

A path parameter corresponding to the unique ID of the destination to be updated.

properties
OBJECT
REQUIRED

A Destination Form Properties object corresponding to the value of type.

Returns

If successful, the API will return a status of 200 OK and a Destination object with a report_card property.

curl -X PUT https://api.stitchdata.com/v4/destinations/155582
     -H "Authorization: Bearer <ACCESS_TOKEN>" 
     -H "Content-Type: application/json"
     -d "{
          "properties": {
            "username": "stitch_admin"
            }
        }"
{
  "properties": {
    "database": "demni2mf59dt10",
    "encryption_type": "none",
    "host": "<HOST>",
    "port": "5432",
    "ssl": "true",
    "status": "1",
    "username": "stitch_admin"
  },
  "updated_at": "2019-05-28T15:37:37Z",
  "check_job_name": "116078.155582.check.859f4746-815e-11e9-bb8e-0693226a5168",
  "name": "Default Warehouse",
  "type": "postgres",
  "deleted_at": null,
  "system_paused_at": null,
  "stitch_client_id": 116078,
  "paused_at": null,
  "id": 155582,
  "display_name": null,
  "created_at": "2019-05-24T18:03:50Z",
  "report_card": {
    "type": "postgres",
    "current_step": 2,
    "current_step_type": "fully_configured",
    "steps": [
      {
        "type": "form",
        "properties": [
          {
            "name": "database",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": true
          },
          {
            "name": "encryption_host",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "ipv4"
                },
                {
                  "type": "string",
                  "format": "ipv6"
                },
                {
                  "type": "string",
                  "format": "hostname"
                }
              ]
            },
            "provided": false
          },
          {
            "name": "encryption_port",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^\\d+$"
            },
            "provided": false
          },
          {
            "name": "encryption_type",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^(ssh|none)$"
            },
            "provided": true
          },
          {
            "name": "encryption_username",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false
          },
          {
            "name": "host",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "ipv4"
                },
                {
                  "type": "string",
                  "format": "ipv6"
                },
                {
                  "type": "string",
                  "format": "hostname"
                }
              ]
            },
            "provided": true
          },
          {
            "name": "password",
            "is_required": true,
            "is_credential": true,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": true
          },
          {
            "name": "port",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^\\d+$"
            },
            "provided": true
          },
          {
            "name": "ssl",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "boolean"
            },
            "provided": true
          },
          {
            "name": "sslrootcert",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false
          },
          {
            "name": "username",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": true
          }
        ]
      },
      {
        "type": "fully_configured",
        "properties": []
      }
    ]
  }
}
Code Condition Response Body
400

Modifications to type are unsupported

this API endpoint does not support modifying destination type

400

Invalid destination ID

invalid connection id

Resource List
Request Method

PUT

Resource URL

/v3/destinations/{destination_id}

Authorization

Required. The request header must contain Authorization and your access token.

Request Header

The request header must contain the following:

  • Authorization: Must specify Bearer Auth, e.g. Bearer: <ACCESS_TOKEN>
  • Content-Type: Must specify JSON, e.g. application/json

See the Request tab below for an example request.

Request Body

The request body must be valid JSON and contain the required arguments.

Response Format

Whether the request succeeds or fails, the API will return JSON.

Arguments

This endpoint accepts the following parameters:

destination_id
PATH PARAMETER
REQUIRED

A path parameter corresponding to the unique ID of the destination to be updated.

type
STRING
REQUIRED

The destination type. Must be one of:

  • azure_sqldw

  • bigquery_v2

  • postgres

  • redshift

  • s3

  • snowflake

connection
OBJECT
REQUIRED

A Destination Form Properties object corresponding to the value of type.

Returns

If successful, the API will return a status of 200 OK and a Destination object.

curl -X PUT https://api.stitchdata.com/v3/destinations/86741
     -H "Authorization: Bearer <ACCESS_TOKEN>" 
     -H "Content-Type: application/json"
     -d "{
          "type":"postgres",
          "connection": {
            "host": "<HOST>",
            "port": 5432,
            "username": "<USERNAME>",
            "database": "<DATABASE>",
            "password": "<PASSWORD>",
            "ssl": false
            }
        }"
HTTP/1.1 200 OK
Content-Type: application/json;charset=ISO-8859-1

{
  "id":"<DESTINATION_ID>",
  "type":"postgres",
  "created_at":"2018-02-06T15:36:36Z",
  "updated_at":"2018-02-06T18:55:43Z",
  "connection": {
      "host":"<HOST>",
      "port":5432,
      "username":"<USERNAME>",
      "database":"<DATABASE>",
      "password":"<PASSWORD>",
      "ssl":false
  },
  "last_check":{
      "error": false,
      "started_at":"2018-02-06T16:15:19Z",
      "completed_at":"2018-02-06T16:16:21Z"
  }
}
Code Condition Response Body
400

Modifications to type are unsupported

this API endpoint does not support modifying destination type

400

Invalid destination ID

invalid connection id


GET

List destinations

Lists the destination currently in use for a Stitch account. Only a single data warehouse is supported per Stitch client account.

Resource List
Request Method

GET

Resource URL

/v4/destinations

Authorization

Required. The request header must contain Authorization and your access token.

Request Header

The request header must contain the following:

  • Authorization: Must specify Bearer Auth, e.g. Bearer: <ACCESS_TOKEN>
  • Content-Type: Must specify JSON, e.g. application/json

See the Request tab below for an example request.

Response Format

Whether the request succeeds or fails, the API will return JSON.

Returns

If successful, the API will return a status of 200 OK and an array of Destination objects, one for each destination connected to the account.

Note: Stitch currently supports only one destination per account.

curl -X GET https://api.stitchdata.com/v4/destinations
     -H "Authorization: Bearer <ACCESS_TOKEN>" 
     -H "Content-Type: application/json"
[
   {
      "properties":{
         "database":"demni2mf59dt10",
         "encryption_type":"none",
         "host":"<HOST>",
         "port":"5432",
         "ssl":"true",
         "status":"1",
         "username":"stitch"
      },
      "updated_at":"2019-05-24T18:04:08Z",
      "name":"Default Warehouse",
      "type":"postgres",
      "deleted_at":null,
      "system_paused_at":null,
      "stitch_client_id":116078,
      "paused_at":null,
      "id":155582,
      "display_name":null,
      "created_at":"2019-05-24T18:03:50Z",
      "report_card":{
         "type":"postgres",
         "current_step":2,
         "current_step_type":"fully_configured",
         "steps":[
            {
               "type":"form",
               "properties":[
                  {
                     "name":"database",
                     "is_required":true,
                     "is_credential":false,
                     "system_provided":false,
                     "property_type":"user_provided",
                     "json_schema":{
                        "type":"string"
                     },
                     "provided":true
                  },
                  {
                     "name":"encryption_host",
                     "is_required":false,
                     "is_credential":false,
                     "system_provided":false,
                     "property_type":"user_provided",
                     "json_schema":{
                        "anyOf":[
                           {
                              "type":"string",
                              "format":"ipv4"
                           },
                           {
                              "type":"string",
                              "format":"ipv6"
                           },
                           {
                              "type":"string",
                              "format":"hostname"
                           }
                        ]
                     },
                     "provided":false
                  },
                  {
                     "name":"encryption_port",
                     "is_required":false,
                     "is_credential":false,
                     "system_provided":false,
                     "property_type":"user_provided",
                     "json_schema":{
                        "type":"string",
                        "pattern":"^\\d+$"
                     },
                     "provided":false
                  },
                  {
                     "name":"encryption_type",
                     "is_required":true,
                     "is_credential":false,
                     "system_provided":false,
                     "property_type":"user_provided",
                     "json_schema":{
                        "type":"string",
                        "pattern":"^(ssh|none)$"
                     },
                     "provided":true
                  },
                  {
                     "name":"encryption_username",
                     "is_required":false,
                     "is_credential":false,
                     "system_provided":false,
                     "property_type":"user_provided",
                     "json_schema":{
                        "type":"string"
                     },
                     "provided":false
                  },
                  {
                     "name":"host",
                     "is_required":true,
                     "is_credential":false,
                     "system_provided":false,
                     "property_type":"user_provided",
                     "json_schema":{
                        "anyOf":[
                           {
                              "type":"string",
                              "format":"ipv4"
                           },
                           {
                              "type":"string",
                              "format":"ipv6"
                           },
                           {
                              "type":"string",
                              "format":"hostname"
                           }
                        ]
                     },
                     "provided":true
                  },
                  {
                     "name":"password",
                     "is_required":true,
                     "is_credential":true,
                     "system_provided":false,
                     "property_type":"user_provided",
                     "json_schema":{
                        "type":"string"
                     },
                     "provided":true
                  },
                  {
                     "name":"port",
                     "is_required":true,
                     "is_credential":false,
                     "system_provided":false,
                     "property_type":"user_provided",
                     "json_schema":{
                        "type":"string",
                        "pattern":"^\\d+$"
                     },
                     "provided":true
                  },
                  {
                     "name":"ssl",
                     "is_required":true,
                     "is_credential":false,
                     "system_provided":false,
                     "property_type":"user_provided",
                     "json_schema":{
                        "type":"boolean"
                     },
                     "provided":true
                  },
                  {
                     "name":"sslrootcert",
                     "is_required":false,
                     "is_credential":false,
                     "system_provided":false,
                     "property_type":"user_provided",
                     "json_schema":{
                        "type":"string"
                     },
                     "provided":false
                  },
                  {
                     "name":"username",
                     "is_required":true,
                     "is_credential":false,
                     "system_provided":false,
                     "property_type":"user_provided",
                     "json_schema":{
                        "type":"string"
                     },
                     "provided":true
                  }
               ]
            },
            {
               "type":"fully_configured",
               "properties":[

               ]
            }
         ]
      }
   }
]
Resource List
Request Method

GET

Resource URL

/v3/destinations

Authorization

Required. The request header must contain Authorization and your access token.

Request Header

The request header must contain the following:

  • Authorization: Must specify Bearer Auth, e.g. Bearer: <ACCESS_TOKEN>
  • Content-Type: Must specify JSON, e.g. application/json

See the Request tab below for an example request.

Response Format

Whether the request succeeds or fails, the API will return JSON.

Returns

If successful, the API will return a status of 200 OK and an array (of length zero or one) of Destination objects.

curl -X GET https://api.stitchdata.com/v3/destinations
     -H "Authorization: Bearer <ACCESS_TOKEN>" 
     -H "Content-Type: application/json"
HTTP/1.1 200 OK
Content-Type: application/json;charset=ISO-8859-1

[
  {  
    "id":"<DESTINATION_ID>",
    "type":"redshift",
    "created_at":"2018-02-06T15:36:36Z",
    "updated_at":"2018-02-06T15:36:36Z",
    "connection": {  
        "host":"<HOST>",
        "port":5439,
        "username":"<USERNAME>",
        "database":"<DATABASE>",
        "password":"<PASSWORD>",
        "ssl":false
    },
    "last_check":{
      "error": false,
      "started_at":"2018-02-06T16:15:19Z",
      "completed_at":"2018-02-06T16:16:21Z"
    }
  }
]

DELETE

Delete a destination

Deletes an existing destination.

Note: Stitch requires a destination to replicate data. Replication will be paused until a new destination is created and has a successful connection.

Resource List
Request Method

DELETE

Resource URL

/v4/destinations/{destination_id}

Authorization

Required. The request header must contain Authorization and your access token.

Request Header

The request header must contain the following:

  • Authorization: Must specify Bearer Auth, e.g. Bearer: <ACCESS_TOKEN>
  • Content-Type: Must specify JSON, e.g. application/json

See the Request tab below for an example request.

Request Body

The request body must be valid JSON and contain the required arguments.

Response Format

Whether the request succeeds or fails, the API will return JSON.

Arguments

This endpoint accepts the following parameters:

destination_id
PATH PARAMETER
REQUIRED

A path parameter corresponding to the unique ID of the destination to be deleted.

Returns

If successful, the API will return a status of 200 OK and an empty body.

curl -X DELETE https://api.stitchdata.com/v4/destinations/155582
     -H "Authorization: Bearer <ACCESS_TOKEN>" 
     -H "Content-Type: application/json"
{}
Code Condition Response Body
400

Invalid destination ID

Unable to locate dest (<DESTINATION_ID>) for client (<ACCOUNT_ID>) to delete

May result from an incorrect destination ID, or if the destination has already been deleted.

502

Destination ID not provided

Occurs when a destination ID argument isn’t included in the request URL. Below is an incorrectly formatted request URL:

https://api.stitchdata.com/v4/destinations/{destination_id

This is correct:

https://api.stitchdata.com/v4/destinations/{destination_id
502

Destination ID contains illegal characters

Occurs when a destination ID argument includes illegal characters, such as letters. For example:

https://api.stitchdata.com/v4/destinations/{destination_id


Source Types

OBJECT Source Type Object

The Source Type object contains the information needed to configure a data source.

GET Get a source type

Retrieves general information about the configuration required for a data source type.

GET List all source types

Retrieves general information about the configuration required for all supported data source types.


OBJECT

The Source Type Object

The Source Type object contains the information needed to configure a data source.

report_card
OBJECT (SOURCE REPORT CARD)

The Source Report Card object corresponding to the source’s type. For example: platform.marketo or platform.hubspot.


GET

Get a source type

Retrieves general information about the configuration required for a data source type.

Note: This endpoint doesn’t retrieve information about the specific configuration of sources in a single account. Instead, it will return general configuration information for the specified source source_type.

To retrieve information about a specific data source, use the Get a Source endpoint.

Resource List
Request Method

GET

Resource URL

/v4/source-types/{source_type}

Authorization

Required. The request header must contain Authorization and your access token.

Request Header

The request header must contain the following:

  • Authorization: Must specify Bearer Auth, e.g. Bearer: <ACCESS_TOKEN>
  • Content-Type: Must specify JSON, e.g. application/json

See the Request tab below for an example request.

Request Body

The request body must be valid JSON and contain the required arguments.

Response Format

Whether the request succeeds or fails, the API will return JSON.

Arguments

This endpoint accepts the following parameters:

source_type
STRING
REQUIRED

A path parameter indicating the type of source to retrieve, such as platform.hubspot or platform.marketo.

Returns

If successful, the API will return a status of 200 OK and a Source Report Card object corresponding to type.

curl -X GET https://api.stitchdata.com/v4/source-types/platform.hubspot
     -H "Authorization: Bearer <ACCESS_TOKEN>" 
     -H "Content-Type: application/json"
{
  "type": "platform.hubspot",
  "current_step": 1,
  "current_step_type": "form",
  "steps": [
    {
      "type": "form",
      "properties": [
        {
          "name": "anchor_time",
          "is_required": false,
          "is_credential": false,
          "system_provided": false,
          "property_type": "user_provided",
          "json_schema": {
            "type": "string",
            "format": "date-time"
          },
          "provided": false,
          "tap_mutable": false
        },
        {
          "name": "cron_expression",
          "is_required": false,
          "is_credential": false,
          "system_provided": false,
          "property_type": "user_provided",
          "json_schema": null,
          "provided": false,
          "tap_mutable": false
        },
        {
          "name": "frequency_in_minutes",
          "is_required": false,
          "is_credential": false,
          "system_provided": false,
          "property_type": "user_provided",
          "json_schema": {
            "type": "string",
            "pattern": "^1$|^30$|^60$|^360$|^720$|^1440$"
          },
          "provided": false,
          "tap_mutable": false
        },
        {
          "name": "image_version",
          "is_required": true,
          "is_credential": false,
          "system_provided": true,
          "property_type": "read_only",
          "json_schema": null,
          "provided": false,
          "tap_mutable": false
        },
        {
          "name": "start_date",
          "is_required": true,
          "is_credential": false,
          "system_provided": false,
          "property_type": "user_provided",
          "json_schema": {
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}T00:00:00Z$"
          },
          "provided": false,
          "tap_mutable": false
        }
      ]
    },
    {
      "type": "oauth",
      "properties": [
        {
          "name": "client_id",
          "is_required": true,
          "is_credential": true,
          "system_provided": true,
          "property_type": "system_provided_by_default",
          "json_schema": {
            "type": "string"
          },
          "provided": false,
          "tap_mutable": false
        },
        {
          "name": "client_secret",
          "is_required": true,
          "is_credential": true,
          "system_provided": true,
          "property_type": "system_provided_by_default",
          "json_schema": {
            "type": "string"
          },
          "provided": false,
          "tap_mutable": false
        },
        {
          "name": "redirect_uri",
          "is_required": true,
          "is_credential": true,
          "system_provided": true,
          "property_type": "system_provided_by_default",
          "json_schema": {
            "type": "string",
            "format": "uri"
          },
          "provided": false,
          "tap_mutable": false
        },
        {
          "name": "refresh_token",
          "is_required": true,
          "is_credential": true,
          "system_provided": true,
          "property_type": "system_provided_by_default",
          "json_schema": {
            "type": "string"
          },
          "provided": false,
          "tap_mutable": false
        }
      ]
    },
    {
      "type": "discover_schema",
      "properties": []
    },
    {
      "type": "field_selection",
      "properties": []
    },
    {
      "type": "fully_configured",
      "properties": []
    }
  ],
  "details": {
    "pricing_tier": "premium",
    "pipeline_state": "released",
    "default_scheduling_interval": 30,
    "default_start_date": "-30 days",
    "protocol": "platform.hubspot",
    "access": true
  }
}

GET

List all source types

Retrieves general information about the configuration required for all supported data source types.

Note: This endpoint doesn’t retrieve information about the specific configuration of sources in a single account. Instead, it will return general configuration information for all supported source types.

To retrieve specific information about all data sources for an account, use the List Sources endpoint.

Resource List
Request Method

GET

Resource URL

/v4/source-types

Authorization

Required. The request header must contain Authorization and your access token.

Request Header

The request header must contain the following:

  • Authorization: Must specify Bearer Auth, e.g. Bearer: <ACCESS_TOKEN>
  • Content-Type: Must specify JSON, e.g. application/json

See the Request tab below for an example request.

Response Format

Whether the request succeeds or fails, the API will return JSON.

Returns

If successful, the API will return a status of 200 OK and an array of Source Report Card objects, one for each supported source type.

curl -X GET https://api.stitchdata.com/v4/source-types
     -H "Authorization: Bearer <ACCESS_TOKEN>" 
     -H "Content-Type: application/json"
[
  {
    "type": "platform.closeio",
    "current_step": 1,
    "current_step_type": "form",
    "steps": [
      {
        "type": "form",
        "properties": [
          {
            "name": "anchor_time",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "format": "date-time"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "api_key",
            "is_required": true,
            "is_credential": true,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "cron_expression",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": null,
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "frequency_in_minutes",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^1$|^30$|^60$|^360$|^720$|^1440$"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "image_version",
            "is_required": true,
            "is_credential": false,
            "system_provided": true,
            "property_type": "read_only",
            "json_schema": null,
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "start_date",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}T00:00:00Z$"
            },
            "provided": false,
            "tap_mutable": false
          }
        ]
      },
      {
        "type": "discover_schema",
        "properties": []
      },
      {
        "type": "field_selection",
        "properties": []
      },
      {
        "type": "fully_configured",
        "properties": []
      }
    ],
    "details": {
      "pricing_tier": "premium",
      "pipeline_state": "released",
      "default_start_date": "-1 year",
      "default_scheduling_interval": 30,
      "protocol": "platform.closeio",
      "access": true
    }
  },
  {
    "type": "platform.hubspot",
    "current_step": 1,
    "current_step_type": "form",
    "steps": [
      {
        "type": "form",
        "properties": [
          {
            "name": "anchor_time",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "format": "date-time"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "cron_expression",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": null,
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "frequency_in_minutes",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^1$|^30$|^60$|^360$|^720$|^1440$"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "image_version",
            "is_required": true,
            "is_credential": false,
            "system_provided": true,
            "property_type": "read_only",
            "json_schema": null,
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "start_date",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}T00:00:00Z$"
            },
            "provided": false,
            "tap_mutable": false
          }
        ]
      },
      {
        "type": "oauth",
        "properties": [
          {
            "name": "client_id",
            "is_required": true,
            "is_credential": true,
            "system_provided": true,
            "property_type": "system_provided_by_default",
            "json_schema": {
              "type": "string"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "client_secret",
            "is_required": true,
            "is_credential": true,
            "system_provided": true,
            "property_type": "system_provided_by_default",
            "json_schema": {
              "type": "string"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "redirect_uri",
            "is_required": true,
            "is_credential": true,
            "system_provided": true,
            "property_type": "system_provided_by_default",
            "json_schema": {
              "type": "string",
              "format": "uri"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "refresh_token",
            "is_required": true,
            "is_credential": true,
            "system_provided": true,
            "property_type": "system_provided_by_default",
            "json_schema": {
              "type": "string"
            },
            "provided": false,
            "tap_mutable": false
          }
        ]
      },
      {
        "type": "discover_schema",
        "properties": []
      },
      {
        "type": "field_selection",
        "properties": []
      },
      {
        "type": "fully_configured",
        "properties": []
      }
    ],
    "details": {
      "pricing_tier": "premium",
      "pipeline_state": "released",
      "default_scheduling_interval": 30,
      "default_start_date": "-30 days",
      "protocol": "platform.hubspot",
      "access": true
    }
  },
  {
    "type": "platform.marketo",
    "current_step": 1,
    "current_step_type": "form",
    "steps": [
      {
        "type": "form",
        "properties": [
          {
            "name": "anchor_time",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "format": "date-time"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "client_id",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "client_secret",
            "is_required": true,
            "is_credential": true,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "cron_expression",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": null,
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "endpoint",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "format": "uri"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "frequency_in_minutes",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^1$|^30$|^60$|^360$|^720$|^1440$"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "identity",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "format": "uri"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "image_version",
            "is_required": true,
            "is_credential": false,
            "system_provided": true,
            "property_type": "read_only",
            "json_schema": null,
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "max_daily_calls",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^\\d+$"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "start_date",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}T00:00:00Z$"
            },
            "provided": false,
            "tap_mutable": false
          }
        ]
      },
      {
        "type": "fully_configured",
        "properties": []
      }
    ],
    "details": {
      "pricing_tier": "premium",
      "pipeline_state": "deprecated",
      "default_scheduling_interval": 30,
      "default_start_date": "-1 year",
      "protocol": "platform.marketo",
      "access": false
    }
  },
  {
    "type": "platform.facebook",
    "current_step": 1,
    "current_step_type": "form",
    "steps": [
      {
        "type": "form",
        "properties": [
          {
            "name": "aggregate_level",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": null,
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "anchor_time",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "format": "date-time"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "attribution_window",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": null,
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "cron_expression",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": null,
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "frequency_in_minutes",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^1$|^30$|^60$|^360$|^720$|^1440$"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "image_version",
            "is_required": true,
            "is_credential": false,
            "system_provided": true,
            "property_type": "read_only",
            "json_schema": null,
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "include_deleted",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^(true|false)$"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "insights_buffer_days",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": null,
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "start_date",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}T00:00:00Z$"
            },
            "provided": false,
            "tap_mutable": false
          }
        ]
      },
      {
        "type": "oauth",
        "properties": [
          {
            "name": "access_token",
            "is_required": true,
            "is_credential": true,
            "system_provided": true,
            "property_type": "system_provided_by_default",
            "json_schema": {
              "type": "string"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "account_id",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false,
            "tap_mutable": false
          }
        ]
      },
      {
        "type": "discover_schema",
        "properties": []
      },
      {
        "type": "field_selection",
        "properties": []
      },
      {
        "type": "fully_configured",
        "properties": []
      }
    ],
    "details": {
      "pricing_tier": "standard",
      "pipeline_state": "released",
      "default_scheduling_interval": 30,
      "default_start_date": "-1 year",
      "protocol": "platform.facebook",
      "access": true
    }
  },
  {
    "type": "platform.adwords",
    "current_step": 1,
    "current_step_type": "form",
    "steps": [
      {
        "type": "form",
        "properties": [
          {
            "name": "anchor_time",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "format": "date-time"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "cron_expression",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": null,
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "frequency_in_minutes",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^1$|^30$|^60$|^360$|^720$|^1440$"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "image_version",
            "is_required": true,
            "is_credential": false,
            "system_provided": true,
            "property_type": "read_only",
            "json_schema": null,
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "start_date",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}T00:00:00Z$"
            },
            "provided": false,
            "tap_mutable": false
          }
        ]
      },
      {
        "type": "oauth",
        "properties": [
          {
            "name": "customer_ids",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "developer_token",
            "is_required": true,
            "is_credential": true,
            "system_provided": true,
            "property_type": "system_provided_by_default",
            "json_schema": {
              "type": "string"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "oauth_client_id",
            "is_required": true,
            "is_credential": true,
            "system_provided": true,
            "property_type": "system_provided_by_default",
            "json_schema": {
              "type": "string"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "oauth_client_secret",
            "is_required": true,
            "is_credential": true,
            "system_provided": true,
            "property_type": "system_provided_by_default",
            "json_schema": {
              "type": "string"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "refresh_token",
            "is_required": true,
            "is_credential": true,
            "system_provided": true,
            "property_type": "system_provided_by_default",
            "json_schema": {
              "type": "string"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "user_id",
            "is_required": true,
            "is_credential": false,
            "system_provided": true,
            "property_type": "system_provided_by_default",
            "json_schema": {
              "type": "string"
            },
            "provided": false,
            "tap_mutable": false
          }
        ]
      },
      {
        "type": "discover_schema",
        "properties": []
      },
      {
        "type": "field_selection",
        "properties": []
      },
      {
        "type": "fully_configured",
        "properties": []
      }
    ],
    "details": {
      "pricing_tier": "standard",
      "pipeline_state": "released",
      "default_scheduling_interval": 1440,
      "default_start_date": "-1 year",
      "protocol": "platform.adwords",
      "access": true
    }
  },
  {
    "type": "platform.zuora",
    "current_step": 1,
    "current_step_type": "form",
    "steps": [
      {
        "type": "form",
        "properties": [
          {
            "name": "anchor_time",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "format": "date-time"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "api_type",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^(AQUA|REST)$"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "cron_expression",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": null,
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "european",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^(true|false)$"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "frequency_in_minutes",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^1$|^30$|^60$|^360$|^720$|^1440$"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "image_version",
            "is_required": true,
            "is_credential": false,
            "system_provided": true,
            "property_type": "read_only",
            "json_schema": null,
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "partner_id",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "password",
            "is_required": true,
            "is_credential": true,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "sandbox",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^(true|false)$"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "start_date",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}T00:00:00Z$"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "username",
            "is_required": true,
            "is_credential": true,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false,
            "tap_mutable": false
          }
        ]
      },
      {
        "type": "discover_schema",
        "properties": []
      },
      {
        "type": "field_selection",
        "properties": []
      },
      {
        "type": "fully_configured",
        "properties": []
      }
    ],
    "details": {
      "pricing_tier": "premium",
      "pipeline_state": "released",
      "default_scheduling_interval": 30,
      "default_start_date": "-1 year",
      "protocol": "platform.zuora",
      "access": true
    }
  },
  {
    "type": "platform.mysql",
    "current_step": 1,
    "current_step_type": "form",
    "steps": [
      {
        "type": "form",
        "properties": [
          {
            "name": "allow_non_auto_increment_pks",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^(true|false)$"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "anchor_time",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "format": "date-time"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "check_hostname",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^(true|false)"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "cron_expression",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": null,
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "database",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "filter_dbs",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "frequency_in_minutes",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^1$|^30$|^60$|^360$|^720$|^1440$"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "host",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "anyOf": [
                {
                  "format": "hostname"
                },
                {
                  "format": "ipv4"
                }
              ]
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "image_version",
            "is_required": true,
            "is_credential": false,
            "system_provided": true,
            "property_type": "read_only",
            "json_schema": null,
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "password",
            "is_required": true,
            "is_credential": true,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "port",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^\\d+"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "server_id",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^\\d+$"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "ssh",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^(true|false)"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "ssh_host",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "anyOf": [
                {
                  "format": "hostname"
                },
                {
                  "format": "ipv4"
                }
              ]
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "ssh_port",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^\\d+"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "ssh_user",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "ssl",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^(true|false)"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "ssl_ca",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "ssl_cert",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "ssl_client_auth_enabled",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^(true|false)"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "ssl_key",
            "is_required": false,
            "is_credential": true,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "user",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "use_log_based_replication",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^(true|false)$"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "verify_mode",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^(true|false)"
            },
            "provided": false,
            "tap_mutable": false
          }
        ]
      },
      {
        "type": "discover_schema",
        "properties": []
      },
      {
        "type": "field_selection",
        "properties": []
      },
      {
        "type": "fully_configured",
        "properties": []
      }
    ],
    "details": {
      "pricing_tier": "standard",
      "pipeline_state": "released",
      "default_scheduling_interval": 30,
      "default_start_date": null,
      "protocol": "platform.mysql",
      "access": true
    }
  },
  {
    "type": "platform.fullstory",
    "current_step": 1,
    "current_step_type": "form",
    "steps": [
      {
        "type": "form",
        "properties": [
          {
            "name": "anchor_time",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "format": "date-time"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "api_key",
            "is_required": true,
            "is_credential": true,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "cron_expression",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": null,
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "frequency_in_minutes",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^1$|^30$|^60$|^360$|^720$|^1440$"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "image_version",
            "is_required": true,
            "is_credential": false,
            "system_provided": true,
            "property_type": "read_only",
            "json_schema": null,
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "start_date",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}T00:00:00Z$"
            },
            "provided": false,
            "tap_mutable": false
          }
        ]
      },
      {
        "type": "fully_configured",
        "properties": []
      }
    ],
    "details": {
      "pricing_tier": "standard",
      "pipeline_state": "released",
      "default_scheduling_interval": 30,
      "default_start_date": "-1 year",
      "protocol": "platform.fullstory",
      "access": true
    }
  },
  {
    "type": "platform.aurora",
    "current_step": 1,
    "current_step_type": "form",
    "steps": [
      {
        "type": "form",
        "properties": [
          {
            "name": "allow_non_auto_increment_pks",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^(true|false)$"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "anchor_time",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "format": "date-time"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "cron_expression",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": null,
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "database",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "frequency_in_minutes",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^1$|^30$|^60$|^360$|^720$|^1440$"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "host",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "anyOf": [
                {
                  "format": "hostname"
                },
                {
                  "format": "ipv4"
                }
              ]
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "image_version",
            "is_required": true,
            "is_credential": false,
            "system_provided": true,
            "property_type": "read_only",
            "json_schema": null,
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "password",
            "is_required": true,
            "is_credential": true,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "port",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^\\d+"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "server_id",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^\\d+$"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "ssh",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^(true|false)"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "ssh_host",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "anyOf": [
                {
                  "format": "hostname"
                },
                {
                  "format": "ipv4"
                }
              ]
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "ssh_port",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^\\d+"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "ssh_user",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "ssl",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^(true|false)"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "user",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "use_log_based_replication",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^(true|false)$"
            },
            "provided": false,
            "tap_mutable": false
          }
        ]
      },
      {
        "type": "discover_schema",
        "properties": []
      },
      {
        "type": "field_selection",
        "properties": []
      },
      {
        "type": "fully_configured",
        "properties": []
      }
    ],
    "details": {
      "pricing_tier": "standard",
      "pipeline_state": "released",
      "default_scheduling_interval": 30,
      "default_start_date": null,
      "protocol": "platform.mysql",
      "access": true
    }
  },
  {
    "type": "platform.mariadb",
    "current_step": 1,
    "current_step_type": "form",
    "steps": [
      {
        "type": "form",
        "properties": [
          {
            "name": "allow_non_auto_increment_pks",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^(true|false)$"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "anchor_time",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "format": "date-time"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "cron_expression",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": null,
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "database",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "frequency_in_minutes",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^1$|^30$|^60$|^360$|^720$|^1440$"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "host",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "anyOf": [
                {
                  "format": "hostname"
                },
                {
                  "format": "ipv4"
                }
              ]
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "image_version",
            "is_required": true,
            "is_credential": false,
            "system_provided": true,
            "property_type": "read_only",
            "json_schema": null,
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "password",
            "is_required": true,
            "is_credential": true,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "port",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^\\d+"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "server_id",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^\\d+$"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "ssh",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^(true|false)"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "ssh_host",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "anyOf": [
                {
                  "format": "hostname"
                },
                {
                  "format": "ipv4"
                }
              ]
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "ssh_port",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^\\d+"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "ssh_user",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "ssl",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^(true|false)"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "user",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "use_log_based_replication",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^(true|false)$"
            },
            "provided": false,
            "tap_mutable": false
          }
        ]
      },
      {
        "type": "discover_schema",
        "properties": []
      },
      {
        "type": "field_selection",
        "properties": []
      },
      {
        "type": "fully_configured",
        "properties": []
      }
    ],
    "details": {
      "pricing_tier": "standard",
      "pipeline_state": "released",
      "default_scheduling_interval": 30,
      "default_start_date": null,
      "protocol": "platform.mysql",
      "access": true
    }
  },
  {
    "type": "platform.cloudsql",
    "current_step": 1,
    "current_step_type": "form",
    "steps": [
      {
        "type": "form",
        "properties": [
          {
            "name": "allow_non_auto_increment_pks",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^(true|false)$"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "anchor_time",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "format": "date-time"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "check_hostname",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^(true|false)"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "cron_expression",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": null,
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "database",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "frequency_in_minutes",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^1$|^30$|^60$|^360$|^720$|^1440$"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "host",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "anyOf": [
                {
                  "format": "hostname"
                },
                {
                  "format": "ipv4"
                }
              ]
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "image_version",
            "is_required": true,
            "is_credential": false,
            "system_provided": true,
            "property_type": "read_only",
            "json_schema": null,
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "internal_hostname",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "anyOf": [
                {
                  "format": "hostname"
                },
                {
                  "format": "ipv4"
                }
              ]
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "password",
            "is_required": true,
            "is_credential": true,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "port",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^\\d+"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "server_id",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^\\d+$"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "ssh",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^(true|false)"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "ssh_host",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "anyOf": [
                {
                  "format": "hostname"
                },
                {
                  "format": "ipv4"
                }
              ]
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "ssh_port",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^\\d+"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "ssh_user",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "ssl",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^(true|false)"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "ssl_ca",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "ssl_cert",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "ssl_client_auth_enabled",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^(true|false)"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "ssl_key",
            "is_required": false,
            "is_credential": true,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "user",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "use_log_based_replication",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^(true|false)$"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "verify_mode",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^(true|false)"
            },
            "provided": false,
            "tap_mutable": false
          }
        ]
      },
      {
        "type": "discover_schema",
        "properties": []
      },
      {
        "type": "field_selection",
        "properties": []
      },
      {
        "type": "fully_configured",
        "properties": []
      }
    ],
    "details": {
      "pricing_tier": "standard",
      "pipeline_state": "released",
      "default_scheduling_interval": 30,
      "default_start_date": null,
      "protocol": "platform.mysql",
      "access": true
    }
  },
  {
    "type": "platform.xero",
    "current_step": 1,
    "current_step_type": "form",
    "steps": [
      {
        "type": "form",
        "properties": [
          {
            "name": "anchor_time",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "format": "date-time"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "cron_expression",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": null,
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "frequency_in_minutes",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^1$|^30$|^60$|^360$|^720$|^1440$"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "image_version",
            "is_required": true,
            "is_credential": false,
            "system_provided": true,
            "property_type": "read_only",
            "json_schema": null,
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "start_date",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}T00:00:00Z$"
            },
            "provided": false,
            "tap_mutable": false
          }
        ]
      },
      {
        "type": "oauth",
        "properties": [
          {
            "name": "consumer_key",
            "is_required": true,
            "is_credential": true,
            "system_provided": true,
            "property_type": "system_provided_by_default",
            "json_schema": null,
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "consumer_secret",
            "is_required": true,
            "is_credential": true,
            "system_provided": true,
            "property_type": "system_provided_by_default",
            "json_schema": null,
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "oauth_s3_bucket",
            "is_required": true,
            "is_credential": false,
            "system_provided": true,
            "property_type": "read_only",
            "json_schema": null,
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "oauth_s3_path",
            "is_required": true,
            "is_credential": false,
            "system_provided": true,
            "property_type": "read_only",
            "json_schema": null,
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "oauth_session_handle",
            "is_required": true,
            "is_credential": true,
            "system_provided": true,
            "property_type": "system_provided_by_default",
            "json_schema": null,
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "oauth_token",
            "is_required": true,
            "is_credential": true,
            "system_provided": true,
            "property_type": "system_provided_by_default",
            "json_schema": null,
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "oauth_token_secret",
            "is_required": true,
            "is_credential": true,
            "system_provided": true,
            "property_type": "system_provided_by_default",
            "json_schema": null,
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "organization_name",
            "is_required": false,
            "is_credential": false,
            "system_provided": true,
            "property_type": "system_provided_by_default",
            "json_schema": {
              "type": "string"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "rsa_key",
            "is_required": true,
            "is_credential": true,
            "system_provided": true,
            "property_type": "system_provided_by_default",
            "json_schema": null,
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "user_agent",
            "is_required": true,
            "is_credential": false,
            "system_provided": true,
            "property_type": "read_only",
            "json_schema": {
              "type": "string"
            },
            "provided": false,
            "tap_mutable": false
          }
        ]
      },
      {
        "type": "discover_schema",
        "properties": []
      },
      {
        "type": "field_selection",
        "properties": []
      },
      {
        "type": "fully_configured",
        "properties": []
      }
    ],
    "details": {
      "pricing_tier": "premium",
      "pipeline_state": "released",
      "default_scheduling_interval": 60,
      "default_start_date": "-1 year",
      "protocol": "platform.xero",
      "access": true
    }
  },
  {
    "type": "platform.jira",
    "current_step": 1,
    "current_step_type": "form",
    "steps": [
      {
        "type": "form",
        "properties": [
          {
            "name": "anchor_time",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "format": "date-time"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "base_url",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "cron_expression",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": null,
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "frequency_in_minutes",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^1$|^30$|^60$|^360$|^720$|^1440$"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "image_version",
            "is_required": true,
            "is_credential": false,
            "system_provided": true,
            "property_type": "read_only",
            "json_schema": null,
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "password",
            "is_required": true,
            "is_credential": true,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "start_date",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}T00:00:00Z$"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "username",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false,
            "tap_mutable": false
          }
        ]
      },
      {
        "type": "discover_schema",
        "properties": []
      },
      {
        "type": "field_selection",
        "properties": []
      },
      {
        "type": "fully_configured",
        "properties": []
      }
    ],
    "details": {
      "pricing_tier": "premium",
      "pipeline_state": "released",
      "default_scheduling_interval": 60,
      "default_start_date": "-1 year",
      "protocol": "platform.jira",
      "access": true
    }
  },
  {
    "type": "platform.salesforce",
    "current_step": 1,
    "current_step_type": "form",
    "steps": [
      {
        "type": "form",
        "properties": [
          {
            "name": "anchor_time",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "format": "date-time"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "api_type",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^(REST|BULK)$"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "cron_expression",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": null,
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "frequency_in_minutes",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^1$|^30$|^60$|^360$|^720$|^1440$"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "image_version",
            "is_required": true,
            "is_credential": false,
            "system_provided": true,
            "property_type": "read_only",
            "json_schema": null,
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "is_sandbox",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^(true|false)$"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "quota_percent_per_run",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^\\d+$"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "quota_percent_total",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^\\d+$"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "select_fields_by_default",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^(true|false)$"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "start_date",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}T00:00:00Z$"
            },
            "provided": false,
            "tap_mutable": false
          }
        ]
      },
      {
        "type": "oauth",
        "properties": [
          {
            "name": "client_id",
            "is_required": true,
            "is_credential": true,
            "system_provided": false,
            "property_type": "system_provided_by_default",
            "json_schema": {
              "type": "string"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "client_secret",
            "is_required": true,
            "is_credential": true,
            "system_provided": false,
            "property_type": "system_provided_by_default",
            "json_schema": {
              "type": "string"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "instance_url",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "system_provided_by_default",
            "json_schema": {
              "type": "string",
              "format": "uri"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "orgid",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "system_provided_by_default",
            "json_schema": {
              "type": "string"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "refresh_token",
            "is_required": true,
            "is_credential": true,
            "system_provided": false,
            "property_type": "system_provided_by_default",
            "json_schema": {
              "type": "string"
            },
            "provided": false,
            "tap_mutable": false
          }
        ]
      },
      {
        "type": "discover_schema",
        "properties": []
      },
      {
        "type": "field_selection",
        "properties": []
      },
      {
        "type": "fully_configured",
        "properties": []
      }
    ],
    "details": {
      "pricing_tier": "premium",
      "pipeline_state": "released",
      "default_scheduling_interval": 60,
      "default_start_date": "-1 year",
      "protocol": "platform.salesforce",
      "access": true
    }
  },
  {
    "type": "platform.pipedrive",
    "current_step": 1,
    "current_step_type": "form",
    "steps": [
      {
        "type": "form",
        "properties": [
          {
            "name": "anchor_time",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "format": "date-time"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "api_token",
            "is_required": true,
            "is_credential": true,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "cron_expression",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": null,
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "frequency_in_minutes",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^1$|^30$|^60$|^360$|^720$|^1440$"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "image_version",
            "is_required": true,
            "is_credential": false,
            "system_provided": true,
            "property_type": "read_only",
            "json_schema": null,
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "start_date",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}T00:00:00Z$"
            },
            "provided": false,
            "tap_mutable": false
          }
        ]
      },
      {
        "type": "fully_configured",
        "properties": []
      }
    ],
    "details": {
      "pricing_tier": "standard",
      "pipeline_state": "released",
      "default_scheduling_interval": 30,
      "default_start_date": "-1 year",
      "protocol": "platform.pipedrive",
      "access": true
    }
  },
  {
    "type": "platform.marketobulk",
    "current_step": 1,
    "current_step_type": "form",
    "steps": [
      {
        "type": "form",
        "properties": [
          {
            "name": "anchor_time",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "format": "date-time"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "client_id",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": null,
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "client_secret",
            "is_required": true,
            "is_credential": true,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": null,
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "cron_expression",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": null,
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "endpoint",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": null,
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "frequency_in_minutes",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^1$|^30$|^60$|^360$|^720$|^1440$"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "image_version",
            "is_required": true,
            "is_credential": false,
            "system_provided": true,
            "property_type": "read_only",
            "json_schema": null,
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "max_daily_calls",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "integer"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "max_export_days",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "integer"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "start_date",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}T00:00:00Z$"
            },
            "provided": false,
            "tap_mutable": false
          }
        ]
      },
      {
        "type": "discover_schema",
        "properties": []
      },
      {
        "type": "field_selection",
        "properties": []
      },
      {
        "type": "fully_configured",
        "properties": []
      }
    ],
    "details": {
      "pricing_tier": "premium",
      "pipeline_state": "released",
      "default_scheduling_interval": 720,
      "default_start_date": "-1 year",
      "protocol": "platform.marketo",
      "access": true
    }
  },
  {
    "type": "platform.listrak",
    "current_step": 1,
    "current_step_type": "form",
    "steps": [
      {
        "type": "form",
        "properties": [
          {
            "name": "anchor_time",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "format": "date-time"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "cron_expression",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": null,
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "frequency_in_minutes",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^1$|^30$|^60$|^360$|^720$|^1440$"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "image_version",
            "is_required": true,
            "is_credential": false,
            "system_provided": true,
            "property_type": "read_only",
            "json_schema": null,
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "password",
            "is_required": true,
            "is_credential": true,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "start_date",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}T00:00:00Z$"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "username",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false,
            "tap_mutable": false
          }
        ]
      },
      {
        "type": "discover_schema",
        "properties": []
      },
      {
        "type": "field_selection",
        "properties": []
      },
      {
        "type": "fully_configured",
        "properties": []
      }
    ],
    "details": {
      "pricing_tier": "standard",
      "pipeline_state": "released",
      "default_scheduling_interval": 60,
      "default_start_date": "-1 year",
      "protocol": "platform.listrak",
      "access": true
    }
  },
  {
    "type": "platform.bing-ads",
    "current_step": 1,
    "current_step_type": "form",
    "steps": [
      {
        "type": "form",
        "properties": [
          {
            "name": "anchor_time",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "format": "date-time"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "cron_expression",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": null,
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "frequency_in_minutes",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^1$|^30$|^60$|^360$|^720$|^1440$"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "image_version",
            "is_required": true,
            "is_credential": false,
            "system_provided": true,
            "property_type": "read_only",
            "json_schema": null,
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "start_date",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}T00:00:00Z$"
            },
            "provided": false,
            "tap_mutable": false
          }
        ]
      },
      {
        "type": "oauth",
        "properties": [
          {
            "name": "account_ids",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "customer_id",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "developer_token",
            "is_required": true,
            "is_credential": true,
            "system_provided": true,
            "property_type": "system_provided_by_default",
            "json_schema": {
              "type": "string"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "oauth_client_id",
            "is_required": true,
            "is_credential": true,
            "system_provided": true,
            "property_type": "system_provided_by_default",
            "json_schema": {
              "type": "string"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "oauth_client_secret",
            "is_required": true,
            "is_credential": true,
            "system_provided": true,
            "property_type": "system_provided_by_default",
            "json_schema": {
              "type": "string"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "refresh_token",
            "is_required": true,
            "is_credential": true,
            "system_provided": true,
            "property_type": "system_provided_by_default",
            "json_schema": {
              "type": "string"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "user_id",
            "is_required": false,
            "is_credential": false,
            "system_provided": true,
            "property_type": "system_provided_by_default",
            "json_schema": {
              "type": "string"
            },
            "provided": false,
            "tap_mutable": false
          }
        ]
      },
      {
        "type": "discover_schema",
        "properties": []
      },
      {
        "type": "field_selection",
        "properties": []
      },
      {
        "type": "fully_configured",
        "properties": []
      }
    ],
    "details": {
      "pricing_tier": "standard",
      "pipeline_state": "released",
      "default_scheduling_interval": 1440,
      "default_start_date": "-1 year",
      "protocol": "platform.bing-ads",
      "access": true
    }
  },
  {
    "type": "platform.yotpo",
    "current_step": 1,
    "current_step_type": "form",
    "steps": [
      {
        "type": "form",
        "properties": [
          {
            "name": "anchor_time",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "format": "date-time"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "api_key",
            "is_required": true,
            "is_credential": true,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "api_secret",
            "is_required": true,
            "is_credential": true,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "cron_expression",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": null,
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "frequency_in_minutes",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^1$|^30$|^60$|^360$|^720$|^1440$"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "image_version",
            "is_required": true,
            "is_credential": false,
            "system_provided": true,
            "property_type": "read_only",
            "json_schema": null,
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "start_date",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}T00:00:00Z$"
            },
            "provided": false,
            "tap_mutable": false
          }
        ]
      },
      {
        "type": "discover_schema",
        "properties": []
      },
      {
        "type": "field_selection",
        "properties": []
      },
      {
        "type": "fully_configured",
        "properties": []
      }
    ],
    "details": {
      "pricing_tier": "standard",
      "pipeline_state": "released",
      "default_scheduling_interval": 60,
      "default_start_date": "-1 year",
      "protocol": "platform.yotpo",
      "access": true
    }
  },
  {
    "type": "platform.sendgrid",
    "current_step": 1,
    "current_step_type": "form",
    "steps": [
      {
        "type": "form",
        "properties": [
          {
            "name": "anchor_time",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "format": "date-time"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "api_key",
            "is_required": true,
            "is_credential": true,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "cron_expression",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": null,
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "frequency_in_minutes",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^1$|^30$|^60$|^360$|^720$|^1440$"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "image_version",
            "is_required": true,
            "is_credential": false,
            "system_provided": true,
            "property_type": "read_only",
            "json_schema": null,
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "start_date",
            "is_required": true,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}T00:00:00Z$"
            },
            "provided": false,
            "tap_mutable": false
          }
        ]
      },
      {
        "type": "discover_schema",
        "properties": []
      },
      {
        "type": "field_selection",
        "properties": []
      },
      {
        "type": "fully_configured",
        "properties": []
      }
    ],
    "details": {
      "pricing_tier": "standard",
      "pipeline_state": "released",
      "default_scheduling_interval": 60,
      "default_start_date": "-1 year",
      "protocol": "platform.sendgrid",
      "access": true
    }
  },
  {
    "type": "platform.quickbase",
    "current_step": 1,
    "current_step_type": "form",
    "steps": [
      {
        "type": "form",
        "properties": [
          {
            "name": "anchor_time",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "format": "date-time"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "cron_expression",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": null,
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "frequency_in_minutes",
            "is_required": false,
            "is_credential": false,
            "system_provided": false,
            "property_type": "user_provided",
            "json_schema": {
              "type": "string",
              "pattern": "^1$|^30$|^60$|^360$|^720$|^1440$"
            },
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "image_version",
            "is_required": true,
            "is_credential": false,
            "system_provided": true,
            "property_type": "read_only",
            "json_schema": null,
            "provided": false,
            "tap_mutable": false
          },
          {
            "name": "qb_appid"