Introduction

The Stitch Connect API enables you to seamlessly integrate Stitch’s data pipeline functionality into your own platform. 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 and access Stitch client accounts
  • Create and update destinations
  • Create and update data sources

Accessing the API

To use the API, you’ll need partner credentials. These are necessary for authenticating successfully.

To request access, please complete and submit this form.

Terminology

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’.

Connection check

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

Structure sync

The first step in the replication process, this process will detect the tables and columns available in the source, along with any changes to the structure of those tables and columns.


Quick Start

Step 1: Register as an API client

Request access by completing this form. Once approved, you’ll receive a partner_id and partner_key for authenticating your API calls.

Step 2: Obtain an access token

After you receive your partner_id and partner_key, you’ll need to obtain an access token. Calls to the API are authenticated with an access token associated with a Stitch account. Your application can get an access token in one of two ways:

Either method will provide your application with an access token and a Stitch client ID. This information should be stored somewhere safe and passed into the header of every API request for the Stitch client’s account. The token will never expire, but the user may revoke access at any time.

Keep in mind that Stitch client accounts are both owned and managed by the users themselves. For more information on authenticating with the API, refer to the Authentication guide.

Step 3: Create a destination

If you’re providing a destination for the Stitch client’s account, we recommend connecting the destination immediately after the account is created. This ensures that Stitch will have a place to load replicated data as soon as data sources are added.

The first step to creating a destination is providing the attributes required for the destination’s configuration, or form. These attributes are passed in the body of your request as the properties argument, along with the destination’s type:

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

Refer to the Destination Form Properties object to retrieve the attributes required for the properties argument for each destination type. Note: Each destination has its own unique configuration and set of form attributes.

Step 4: Create a source

Source creation is performed through a sequence of connection steps. The required steps and the order of those steps are unique to the source type and are defined in its Report Card object. All source creation, however, begins at the form step.

In the example below, we’ll use the Source Types endpoint to retrieve the source form properties for HubSpot, which has a type of platform.hubspot.

Step 4.1: Get the source's Report Card

Using the Source Types endpoint, retrieve the report card for platform.hubspot:

curl -X GET https://api.stitchdata.com/v4/source-types/platform.hubspot
     -H 'Authorization: Bearer <ACCESS_TOKEN>'

The response, or the report card for platform.hubspot, will include HubSpot’s Source Form Properties. These are the parameters that are required to complete a source’s form step.

Step 4.2: Locate required form properties in the Report Card

Use the response from the previous step to locate the required properties for the form step.

Note: You do not have to provide system-provided properties to create a source.

{  
   "type":"platform.hubspot",
   "current_step":1
   "steps":[  
      {  
         "type":"form",                                 /* form step */
         "properties":[
            {  
               "name":"image_version",                  /* system-provided property */
               "required_to_be_fully_configured":true,
               "provided":false,
               "is_credential":false,
               "system_provided":true
            },
            {  
               "name":"frequency_in_minutes",           /* required property */
               "required_to_be_fully_configured":true,
               "provided":false,
               "is_credential":false,
               "system_provided":false
            },
            {  
               "name":"start_date",                     /* required property */
               "required_to_be_fully_configured":true,
               "provided":false,
               "is_credential":false,
               "system_provided":false
            }
         ]
      },
      {  
         "type":"oauth",
         "properties":[...]
      },
      {  
         "type":"discover_schema",
         "properties":[ ]
      },
      {  
         "type":"field_selection",
         "properties":[ ]
      },
      {  
         "type":"fully_configured",
         "properties":[ ]
      }
   ]
}

For platform.hubspot, the frequency_in_minutes and start_date properties must be provided to complete the form step.

Step 4.3: Create the source

Now that the required properties for HubSpot have been retrieved, we can create the HubSpot source:

  curl -X POST https://api.stitchdata.com/v4/sources
       -H "Authorization: Bearer <ACCESS_TOKEN>" 
       -H "Content-Type: application/json"
       -d "{  
               "type":"platform.hubspot",
               "display_name":"HubSpot",
               "properties":{  
                  "start_date":"2018-01-01T00:00:00Z",
                  "frequency_in_minutes":"30"
               }
            }"

If successful, the API will return a 200 OK status and a Source object with a report_card property:

{
   "properties":{
      "frequency_in_minutes":"30",
      "image_version":"1.latest",
      "start_date":"2018-01-01T00:00:00Z"
   },
   "updated_at":"2018-02-06T16:25:06Z",
   "check_job_name":null,
   "name":"hubspot",
   "type":"platform.hubspot",
   "deleted_at":null,
   "system_paused_at":null,
   "stitch_client_id":<ACCOUNT_ID>,
   "paused_at":null,
   "id":45612,
   "display_name":"HubSpot",
   "created_at":"2018-02-06T16:25:06Z",
   "report_card":{
      "type":"platform.hubspot",
      "current_step":2,
      "steps":[
         {
            "type":"form",
            "properties":[
               {
                  "name":"image_version",
                  "is_required":true,
                  "provided":true,
                  "is_credential":false,
                  "system_provided":true,
                  "json_schema":null
               },
               {
                  "name":"frequency_in_minutes",
                  "is_required":true,
                  "provided":true,
                  "is_credential":false,
                  "system_provided":false,
                  "json_schema":{
                     "type":"string",
                     "pattern":"^\\d+$"
                  }
               },
               {
                  "name":"start_date",
                  "is_required":true,
                  "provided":true,
                  "is_credential":false,
                  "system_provided":false,
                  "json_schema":{
                     "type":"string",
                     "pattern":"^\\d{4}-\\d{2}-\\d{2}T00:00:00Z$"
                  }
               }
            ]
         },
         {
            "type":"oauth",
            "properties":[
               {
                  "name":"client_id",
                  "is_required":true,
                  "provided":false,
                  "is_credential":true,
                  "system_provided":true,
                  "json_schema":{
                     "type":"string"
                  }
               },
               {
                  "name":"client_secret",
                  "is_required":true,
                  "provided":false,
                  "is_credential":true,
                  "system_provided":true,
                  "json_schema":{
                     "type":"string"
                  }
               },
               {
                  "name":"redirect_uri",
                  "is_required":true,
                  "provided":false,
                  "is_credential":true,
                  "system_provided":true,
                  "json_schema":{
                     "type":"string",
                     "format":"uri"
                  }
               },
               {
                  "name":"refresh_token",
                  "is_required":true,
                  "provided":false,
                  "is_credential":true,
                  "system_provided":true,
                  "json_schema":{
                     "type":"string"
                  }
               }
            ]
         },
         {
            "type":"discover_schema",
            "properties":[

            ]
         },
         {
            "type":"field_selection",
            "properties":[

            ]
         },
         {
            "type":"fully_configured",
            "properties":[

            ]
         }
      ]
   }
}

After a source’s form is created, the report_card object within the source should be used to complete its configuration.

Step 4.4: Identify the current step

The Source Report Card object provides information about the steps required to configure the connection, their sequence, and the progress towards completing the steps.

Looking at the report card for our HubSpot source, we can see that we’re now on step 2 of configuration, which is the oauth step:

{
   "report_card":{
      "type":"platform.hubspot",
      "current_step":2,                                           /* Current step */
      "steps":[
         {
            "type":"form",
            "properties":[ ... ]
         },
         {
            "type":"oauth",
            "properties":[
               {
                  "name":"client_id",
                  "is_required":true,
                  "provided":false,
                  "is_credential":true,
                  "system_provided":true,
                  "json_schema":{
                     "type":"string"
                  }
               },
               {
                  "name":"client_secret",
                  "is_required":true,
                  "provided":false,
                  "is_credential":true,
                  "system_provided":true,
                  "json_schema":{
                     "type":"string"
                  }
               },
               {
                  "name":"redirect_uri",
                  "is_required":true,
                  "provided":false,
                  "is_credential":true,
                  "system_provided":true,
                  "json_schema":{
                     "type":"string",
                     "format":"uri"
                  }
               },
               {
                  "name":"refresh_token",
                  "is_required":true,
                  "provided":false,
                  "is_credential":true,
                  "system_provided":true,
                  "json_schema":{
                     "type":"string"
                  }
               }
            ]
         },
         {
            "type":"discover_schema",
            "properties":[ ]
         },
         {
            "type":"field_selection",
            "properties":[ ]
         },
         {
            "type":"fully_configured",
            "properties":[ ]
         }
      ]
   }
}

Step 5: Use the Connect JavaScript Client to complete source configuration

To initiate the OAuth flow, use the authorizeSource function in the Connect JavaScript Client. This function expects an options argument containing the source’s id:

Stitch.authorizeSource({
    "id": 45612
}).then((result) => {
    console.log(`Integration created, type=${result.type}, id=${result.id}`);
}).catch((error) => {
    console.log("Integration not created.", error);
});

This function will send the user to Stitch, where they will be prompted to sign into their Stitch account and grant access to HubSpot.

After the user grants access, Stitch will automatically prompt the user to complete the remaining steps to configure the source, including selecting table and field for replication.


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>"

Before you can make requests, you must complete this form. Once approved, you’ll receive the credentials required to authenticate your API calls.

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

Generate access tokens

Access tokens are obtained by performing an OAuth2 handshake with an existing Stitch client account or by creating a new account via the API.

New Stitch clients

As an API client, you can create a new Stitch client account with the Create Account endpoint:

curl -X POST https://api.stitchdata.com/v3/accounts
     -H "Content-Type: application/json"
     -d "{
          "email": "stitch-api-test@stitchdata.com",
          "last_name": "Product Team",
          "partner_id": "<PARTNER_ID>",
          "first_name": "Stitch",
          "partner_secret": "<PARTNER_SECRET>",
          "company": "Stitch Product Team"
        }"

When successful, this endpoint returns a status of 200 OK and an access token:

{
  "access_token":"<ACCESS_TOKEN>"
}

The created account is owned and managed by the user it is created for, and that user will be able to login to the Stitch web interface and receive emails from Stitch.

Existing Stitch clients, using OAuth2

You can connect to a user’s existing Stitch client account by having the user complete a standard OAuth flow. Before generating OAuth tokens, registering your application with Stitch.

Then, follow these steps to complete the OAuth flow:

Step 1: Send the user to Stitch

To initiate the authorization flow, the user will click a link to Stitch that includes your application’s API client ID. This is the partner_id you obtained when you registered your application:

https://app.stitchdata.com/oauth/authorization?client_id={CLIENT_ID}

While only your client_id (partner_id) is required, the URL may also include the following parameters:

client_id
REQUIRED

Your application’s client ID. This is the partner_id that is obtained when your API access request is approved.

redirect_uri
OPTIONAL

The callback URL for your application, which will be used in Step 3.

Note: If provided in Step 1 as a URL parameter, then the value must match one of the redirect URIs provided with your application’s registration.

If not provided in Step 1 as a URL parameter, Stitch will fallback to the first redirect_uri associated with your API client.

email
OPTIONAL

The email address of the Stitch client owner. If provided, this value will be used to pre-populate the signup form.

first_name
OPTIONAL

The user’s first name. If provided, this value will be used to pre-populate the signup form.

last_name
OPTIONAL

The user’s last name. If provided, this value will be used to pre-populate the signup form.

company
OPTIONAL

The name of the company or organization to associate with the Stitch client account. If provided, this value will be used to pre-populate the signup form.

If the user isn’t already logged into their Stitch client account, they will be prompted to do so or create a new account, if need be.

Once logged in, the user will be shown a screen explaining that your application has requested access to their Stitch account. They will be prompted to accept or reject this request.

Step 3: Callback to your application

When the user accepts or denies the request, they will be re-directed to the callback URL you provided when you registered your application with Stitch.

If the user denies the request, Stitch will include error details:

https://yourapplication.com/callback?error=access_denied

If the user accepts the request, the callback will include a temporary authorization code to be used in the next step:

https://yourapplication.com/callback?code=AUTHORIZATION_CODE
Step 4: Exchange tokens

Lastly, when your application receives the user’s request to the callback URL, it should make a request to the Stitch OAuth URL to exchange the temporary authorization code for a permanent access token:

curl https://api.stitchdata.com/oauth/token 
     -d client_secret=<CLIENT_SECRET>
     -d code=<AUTHORIZATION_CODE>
     -d grant_type=authorization_code

Note: Each temporary authorization code can only be used once and will expire five minutes after creation.

If successful, Stitch will respond with the following:

{
  "token_type": "bearer",
  "access_token": <ACCESS_TOKEN>,
  "stitch_account_id": <STITCH_ACCOUNT_ID>
}

Your application should store the access_token and stitch_account_id somewhere secure, and use them to make calls to the API:

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

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
Version Endpoints
v4 (latest)
v3
SOURCE TYPE
Version Endpoints
v4 (latest)
DESTINATION TYPE
Version Endpoints
v4 (latest)
SOURCE
Version Endpoints
v4 (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.

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.

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.

Errors

See the Errors tab, below.

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 access_token property containing an API access token for the Stitch client’s account will be returned.

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 "{
          "email": "stitch-api-test@stitchdata.com",
          "last_name": "Product Team",
          "partner_id": "<PARTNER_ID>",
          "first_name": "Stitch",
          "partner_secret": "<PARTNER_SECRET>",
          "company": "Stitch Product Team"
        }"
HTTP/1.1 200 OK
Content-Type: application/json;charset=ISO-8859-1

{
  "access_token":"<ACCESS_TOKEN>"
}
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":{}
}


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>"
}


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.

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:

  • azuresql_dw

  • 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:

  • azuresql_dw

  • 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.

Errors

See the Errors tab, below.

Arguments

This endpoint accepts the following parameters:

type
STRING
REQUIRED

The destination type. Must be one of:

  • azuresql_dw

  • 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":"<USERNAME>",
            "database":"<DATABASE>",
            "password":"<PASSWORD>",
            "ssl":false
            }
         }"

PostgreSQL destination response:

{
  "properties": {
    "database": "<DATABASE>",
    "host": "<HOST>",
    "port": "5432",
    "username": "<USERNAME>"
  },
  "updated_at": "2019-01-09T22:16:23Z",
  "check_job_name": null,
  "name": "Default Warehouse",
  "type": "postgres",
  "deleted_at": null,
  "system_paused_at": null,
  "stitch_client_id": <CLIENT_ID>,
  "paused_at": null,
  "id": <DESTINATION_ID>,
  "created_at": "2019-01-09T22:16:23Z",
  "report_card": {
    "type": "postgres",
    "current_step": 1,
    "steps": [
      {
        "type": "form",
        "properties": [
          {
            "name": "database",
            "is_required": true,
            "provided": true,
            "is_credential": false,
            "system_provided": false,
            "json_schema": {
              "type": "string"
            }
          },
          {
            "name": "encryption_host",
            "is_required": false,
            "provided": false,
            "is_credential": false,
            "system_provided": false,
            "json_schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "ipv4"
                },
                {
                  "type": "string",
                  "format": "ipv6"
                },
                {
                  "type": "string",
                  "format": "hostname"
                }
              ]
            }
          },
          {
            "name": "encryption_port",
            "is_required": false,
            "provided": false,
            "is_credential": false,
            "system_provided": false,
            "json_schema": {
              "type": "string",
              "pattern": "^\\d+$"
            }
          },
          {
            "name": "encryption_type",
            "is_required": true,
            "provided": false,
            "is_credential": false,
            "system_provided": false,
            "json_schema": {
              "type": "string",
              "pattern": "^(ssh|none)$"
            }
          },
          {
            "name": "encryption_username",
            "is_required": false,
            "provided": false,
            "is_credential": false,
            "system_provided": false,
            "json_schema": {
              "type": "string"
            }
          },
          {
            "name": "host",
            "is_required": true,
            "provided": true,
            "is_credential": false,
            "system_provided": false,
            "json_schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "ipv4"
                },
                {
                  "type": "string",
                  "format": "ipv6"
                },
                {
                  "type": "string",
                  "format": "hostname"
                }
              ]
            }
          },
          {
            "name": "password",
            "is_required": true,
            "provided": true,
            "is_credential": true,
            "system_provided": false,
            "json_schema": {
              "type": "string"
            }
          },
          {
            "name": "port",
            "is_required": true,
            "provided": true,
            "is_credential": false,
            "system_provided": false,
            "json_schema": {
              "type": "string",
              "pattern": "^\\d+$"
            }
          },
          {
            "name": "ssl",
            "is_required": true,
            "provided": false,
            "is_credential": false,
            "system_provided": false,
            "json_schema": {
              "type": "boolean"
            }
          },
          {
            "name": "sslrootcert",
            "is_required": false,
            "provided": false,
            "is_credential": false,
            "system_provided": false,
            "json_schema": {
              "type": "string"
            }
          },
          {
            "name": "username",
            "is_required": true,
            "provided": true,
            "is_credential": false,
            "system_provided": false,
            "json_schema": {
              "type": "string"
            }
          }
        ]
      },
      {
        "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.

Errors

See the Errors tab, below.

Arguments

This endpoint accepts the following parameters:

type
STRING
REQUIRED

The destination type. Must be one of:

  • azuresql_dw

  • 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/{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.

Errors

See the Errors tab, below.

Arguments

This endpoint accepts the following parameters:

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:

  • azuresql_dw

  • 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.

curl -X PUT https://api.stitchdata.com/v4/destinations/{id}
     -H "Authorization: Bearer <ACCESS_TOKEN>" 
     -H "Content-Type: application/json"
     -d "{
          "type":"postgres",
          "properties": {
            "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

Resource List
Request Method

PUT

Resource URL

/v3/destinations/{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.

Errors

See the Errors tab, below.

Arguments

This endpoint accepts the following parameters:

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:

  • azuresql_dw

  • 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/{id}
     -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 a Destination object with a report_card property.

curl -X GET https://api.stitchdata.com/v4/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",
    "properties": {  
        "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"
    }
  }
]
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/{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.

Errors

See the Errors tab, below.

Arguments

This endpoint accepts the following parameters:

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/86741
     -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/

This is correct:

https://api.stitchdata.com/v4/destinations/86741
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/abc


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 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/{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:

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"
HTTP/1.1 200 OK
Content-Type: application/json;charset=ISO-8859-1

{  
   "type":"platform.hubspot",
   "current_step":1,
   "steps":[  
      {  
         "type":"form",
         "properties":[  
            {  
               "name":"image_version",
               "is_required":true,
               "provided":false,
               "is_credential":false,
               "system_provided":true,
               "json_schema":null
            },
            {  
               "name":"frequency_in_minutes",
               "is_required":true,
               "provided":false,
               "is_credential":false,
               "system_provided":false,
               "json_schema":{  
                  "type":"string",
                  "pattern":"^\\d+$"
               }
            },
            {  
               "name":"start_date",
               "is_required":true,
               "provided":false,
               "is_credential":false,
               "system_provided":false,
               "json_schema":{  
                  "type":"string",
                  "pattern":"^\\d{4}-\\d{2}-\\d{2}T00:00:00Z$"
               }
            }
         ]
      },
      {  
         "type":"oauth",
         "properties":[  
            {  
               "name":"client_id",
               "is_required":true,
               "provided":false,
               "is_credential":true,
               "system_provided":true,
               "json_schema":{  
                  "type":"string"
               }
            },
            {  
               "name":"client_secret",
               "is_required":true,
               "provided":false,
               "is_credential":true,
               "system_provided":true,
               "json_schema":{  
                  "type":"string"
               }
            },
            {  
               "name":"redirect_uri",
               "is_required":true,
               "provided":false,
               "is_credential":true,
               "system_provided":true,
               "json_schema":{  
                  "type":"string",
                  "format":"uri"
               }
            },
            {  
               "name":"refresh_token",
               "is_required":true,
               "provided":false,
               "is_credential":true,
               "system_provided":true,
               "json_schema":{  
                  "type":"string"
               }
            }
         ]
      },
      {  
         "type":"discover_schema",
         "properties":[  ]
      },
      {  
         "type":"field_selection",
         "properties":[  ]
      },
      {  
         "type":"fully_configured",
         "properties":[  ]
      }
   ]
}

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"
HTTP/1.1 200 OK
Content-Type: application/json;charset=ISO-8859-1

[  
   {  
      "type":"platform.hubspot",                                /* HubSpot source */
      "current_step":1,
      "steps":[  
         {  
            "type":"form",
            "properties":[  
               {  
                  "name":"image_version",
                  "is_required":true,
                  "provided":false,
                  "is_credential":false,
                  "system_provided":true,
                  "json_schema":null
               },
               {  
                  "name":"frequency_in_minutes",
                  "is_required":true,
                  "provided":false,
                  "is_credential":false,
                  "system_provided":false,
                  "json_schema":{  
                     "type":"string",
                     "pattern":"^\\d+$"
                  }
               },
               {  
                  "name":"start_date",
                  "is_required":true,
                  "provided":false,
                  "is_credential":false,
                  "system_provided":false,
                  "json_schema":{  
                     "type":"string",
                     "pattern":"^\\d{4}-\\d{2}-\\d{2}T00:00:00Z$"
                  }
               }
            ]
         },
         {  
            "type":"oauth",
            "properties":[  
               {  
                  "name":"client_id",
                  "is_required":true,
                  "provided":false,
                  "is_credential":true,
                  "system_provided":true,
                  "json_schema":{  
                     "type":"string"
                  }
               },
               {  
                  "name":"client_secret",
                  "is_required":true,
                  "provided":false,
                  "is_credential":true,
                  "system_provided":true,
                  "json_schema":{  
                     "type":"string"
                  }
               },
               {  
                  "name":"redirect_uri",
                  "is_required":true,
                  "provided":false,
                  "is_credential":true,
                  "system_provided":true,
                  "json_schema":{  
                     "type":"string",
                     "format":"uri"
                  }
               },
               {  
                  "name":"refresh_token",
                  "is_required":true,
                  "provided":false,
                  "is_credential":true,
                  "system_provided":true,
                  "json_schema":{  
                     "type":"string"
                  }
               }
            ]
         },
         {  
            "type":"discover_schema",
            "properties":[  ]
         },
         {  
            "type":"field_selection",
            "properties":[  ]
         },
         {  
            "type":"fully_configured",
            "properties":[  ]
         }
      ]
   },
   {  
      "type":"platform.marketo",                                /* Marketo source */
      "current_step":1,
      "steps":[  
         {  
            "type":"form",
            "properties":[  
               {  
                  "name":"image_version",
                  "is_required":true,
                  "provided":false,
                  "is_credential":false,
                  "system_provided":true,
                  "json_schema":null
               },
               {  
                  "name":"frequency_in_minutes",
                  "is_required":true,
                  "provided":false,
                  "is_credential":false,
                  "system_provided":false,
                  "json_schema":{  
                     "type":"string",
                     "pattern":"^\\d+$"
                  }
               },
               {  
                  "name":"client_id",
                  "is_required":true,
                  "provided":false,
                  "is_credential":false,
                  "system_provided":false,
                  "json_schema":{  
                     "type":"string"
                  }
               },
               {  
                  "name":"client_secret",
                  "is_required":true,
                  "provided":false,
                  "is_credential":true,
                  "system_provided":false,
                  "json_schema":{  
                     "type":"string"
                  }
               },
               {  
                  "name":"endpoint",
                  "is_required":true,
                  "provided":false,
                  "is_credential":false,
                  "system_provided":false,
                  "json_schema":{  
                     "type":"string",
                     "format":"uri"
                  }
               },
               {  
                  "name":"identity",
                  "is_required":true,
                  "provided":false,
                  "is_credential":false,
                  "system_provided":false,
                  "json_schema":{  
                     "type":"string",
                     "format":"uri"
                  }
               },
               {  
                  "name":"max_daily_calls",
                  "is_required":false,
                  "provided":false,
                  "is_credential":false,
                  "system_provided":false,
                  "json_schema":{  
                     "type":"string",
                     "pattern":"^\\d+$"
                  }
               },
               {  
                  "name":"start_date",
                  "is_required":true,
                  "provided":false,
                  "is_credential":false,
                  "system_provided":false,
                  "json_schema":{  
                     "type":"string",
                     "pattern":"^\\d{4}-\\d{2}-\\d{2}T00:00:00Z$"
                  }
               }
            ]
         },
         {  
            "type":"fully_configured",
            "properties":[  ]
         }
      ]
   },
   {  
      "type":"platform.zuora",                                  /* Zuora source */
      "current_step":1,
      "steps":[  
         {  
            "type":"form",
            "properties":[  
               {  
                  "name":"image_version",
                  "is_required":true,
                  "provided":false,
                  "is_credential":false,
                  "system_provided":true,
                  "json_schema":null
               },
               {  
                  "name":"frequency_in_minutes",
                  "is_required":true,
                  "provided":false,
                  "is_credential":false,
                  "system_provided":false,
                  "json_schema":{  
                     "type":"string",
                     "pattern":"^\\d+$"
                  }
               },
               {  
                  "name":"european",
                  "is_required":false,
                  "provided":false,
                  "is_credential":false,
                  "system_provided":false,
                  "json_schema":{  
                     "type":"string",
                     "pattern":"^(true|false)$"
                  }
               },
               {  
                  "name":"password",
                  "is_required":true,
                  "provided":false,
                  "is_credential":true,
                  "system_provided":false,
                  "json_schema":{  
                     "type":"string"
                  }
               },
               {  
                  "name":"sandbox",
                  "is_required":false,
                  "provided":false,
                  "is_credential":false,
                  "system_provided":false,
                  "json_schema":{  
                     "type":"string",
                     "pattern":"^(true|false)$"
                  }
               },
               {  
                  "name":"start_date",
                  "is_required":true,
                  "provided":false,
                  "is_credential":false,
                  "system_provided":false,
                  "json_schema":{  
                     "type":"string",
                     "pattern":"^\\d{4}-\\d{2}-\\d{2}T00:00:00Z$"
                  }
               },
               {  
                  "name":"username",
                  "is_required":true,
                  "provided":false,
                  "is_credential":true,
                  "system_provided":false,
                  "json_schema":{  
                     "type":"string"
                  }
               }
            ]
         },
         {  
            "type":"discover_schema",
            "properties":[  ]
         },
         {  
            "type":"field_selection",
            "properties":[  ]
         },
         {  
            "type":"fully_configured",
            "properties":[  ]
         }
      ]
   },
   {  
      "type":"platform.salesforce",                             /* Salesforce source */
      "current_step":1,
      "steps":[  
         {  
            "type":"form",
            "properties":[  
               {  
                  "name":"image_version",
                  "is_required":true,
                  "provided":false,
                  "is_credential":false,
                  "system_provided":true,
                  "json_schema":null
               },
               {  
                  "name":"frequency_in_minutes",
                  "is_required":true,
                  "provided":false,
                  "is_credential":false,
                  "system_provided":false,
                  "json_schema":{  
                     "type":"string",
                     "pattern":"^\\d+$"
                  }
               },
               {  
                  "name":"api_type",
                  "is_required":true,
                  "provided":false,
                  "is_credential":false,
                  "system_provided":false,
                  "json_schema":{  
                     "type":"string",
                     "pattern":"^(REST|BULK)$"
                  }
               },
               {  
                  "name":"is_sandbox",
                  "is_required":false,
                  "provided":false,
                  "is_credential":false,
                  "system_provided":false,
                  "json_schema":{  
                     "type":"string",
                     "pattern":"^(true|false)$"
                  }
               },
               {  
                  "name":"quota_percent_per_run",
                  "is_required":false,
                  "provided":false,
                  "is_credential":false,
                  "system_provided":false,
                  "json_schema":{  
                     "type":"string",
                     "pattern":"^\\d+$"
                  }
               },
               {  
                  "name":"quota_percent_total",
                  "is_required":false,
                  "provided":false,
                  "is_credential":false,
                  "system_provided":false,
                  "json_schema":{  
                     "type":"string",
                     "pattern":"^\\d+$"
                  }
               },
               {  
                  "name":"select_fields_by_default",
                  "is_required":true,
                  "provided":false,
                  "is_credential":false,
                  "system_provided":false,
                  "json_schema":{  
                     "type":"string",
                     "pattern":"^(true|false)$"
                  }
               },
               {  
                  "name":"start_date",
                  "is_required":true,
                  "provided":false,
                  "is_credential":false,
                  "system_provided":false,
                  "json_schema":{  
                     "type":"string",
                     "pattern":"^\\d{4}-\\d{2}-\\d{2}T00:00:00Z$"
                  }
               }
            ]
         },
         {  
            "type":"oauth",
            "properties":[  
               {  
                  "name":"client_id",
                  "is_required":true,
                  "provided":false,
                  "is_credential":true,
                  "system_provided":false,
                  "json_schema":{  
                     "type":"string"
                  }
               },
               {  
                  "name":"client_secret",
                  "is_required":true,
                  "provided":false,
                  "is_credential":true,
                  "system_provided":false,
                  "json_schema":{  
                     "type":"string"
                  }
               },
               {  
                  "name":"instance_url",
                  "is_required":true,
                  "provided":false,
                  "is_credential":false,
                  "system_provided":false,
                  "json_schema":{  
                     "type":"string",
                     "format":"uri"
                  }
               },
               {  
                  "name":"orgid",
                  "is_required":false,
                  "provided":false,
                  "is_credential":false,
                  "system_provided":false,
                  "json_schema":{  
                     "type":"string"
                  }
               },
               {  
                  "name":"refresh_token",
                  "is_required":true,
                  "provided":false,
                  "is_credential":true,
                  "system_provided":false,
                  "json_schema":{  
                     "type":"string"
                  }
               }
            ]
         },
         {  
            "type":"discover_schema",
            "properties":[  ]
         },
         {  
            "type":"field_selection",
            "properties":[  ]
         },
         {  
            "type":"fully_configured",
            "properties":[  ]
         }
      ]
   },
   {  
      "type":"platform.yotpo",                                  /* Yotpo source */
      "current_step":1,
      "steps":[  
         {  
            "type":"form",
            "properties":[  
               {  
                  "name":"image_version",
                  "is_required":true,
                  "provided":false,
                  "is_credential":false,
                  "system_provided":true,
                  "json_schema":null
               },
               {  
                  "name":"frequency_in_minutes",
                  "is_required":true,
                  "provided":false,
                  "is_credential":false,
                  "system_provided":false,
                  "json_schema":{  
                     "type":"string",
                     "pattern":"^\\d+$"
                  }
               },
               {  
                  "name":"api_key",
                  "is_required":true,
                  "provided":false,
                  "is_credential":true,
                  "system_provided":false,
                  "json_schema":{  
                     "type":"string"
                  }
               },
               {  
                  "name":"api_secret",
                  "is_required":true,
                  "provided":false,
                  "is_credential":true,
                  "system_provided":false,
                  "json_schema":{  
                     "type":"string"
                  }
               },
               {  
                  "name":"start_date",
                  "is_required":true,
                  "provided":false,
                  "is_credential":false,
                  "system_provided":false,
                  "json_schema":{  
                     "type":"string",
                     "pattern":"^\\d{4}-\\d{2}-\\d{2}T00:00:00Z$"
                  }
               }
            ]
         },
         {  
            "type":"discover_schema",
            "properties":[  ]
         },
         {  
            "type":"field_selection",
            "properties":[  ]
         },
         {  
            "type":"fully_configured",
            "properties":[  ]
         }
      ]
   },
   {  
      "type":"platform.sendgrid",                               /* SendGrid source */
      "current_step":1,
      "steps":[  
         {  
            "type":"form",
            "properties":[  
               {  
                  "name":"image_version",
                  "is_required":true,
                  "provided":false,
                  "is_credential":false,
                  "system_provided":true,
                  "json_schema":null
               },
               {  
                  "name":"frequency_in_minutes",
                  "is_required":true,
                  "provided":false,
                  "is_credential":false,
                  "system_provided":false,
                  "json_schema":{  
                     "type":"string",
                     "pattern":"^\\d+$"
                  }
               },
               {  
                  "name":"api_key",
                  "is_required":true,
                  "provided":false,
                  "is_credential":true,
                  "system_provided":false,
                  "json_schema":{  
                     "type":"string"
                  }
               },
               {  
                  "name":"start_date",
                  "is_required":true,
                  "provided":false,
                  "is_credential":false,
                  "system_provided":false,
                  "json_schema":{  
                     "type":"string",
                     "pattern":"^\\d{4}-\\d{2}-\\d{2}T00:00:00Z$"
                  }
               }
            ]
         },
         {  
            "type":"discover_schema",
            "properties":[  ]
         },
         {  
            "type":"field_selection",
            "properties":[  ]
         },
         {  
            "type":"fully_configured",
            "properties":[  ]
         }
      ]
   }
]


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/{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:

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/snowflake
     -H "Authorization: Bearer <ACCESS_TOKEN>" 
     -H "Content-Type: application/json"
HTTP/1.1 200 OK
Content-Type: application/json;charset=ISO-8859-1

"type": "snowflake",
"current_step": 1,
"steps": [
    {
        "type": "form",
        "properties": [
            {
                "name": "database",
                "is_required": true,
                "provided": false,
                "is_credential": false,
                "system_provided": false,
                "json_schema": {
                    "type": "string"
                }
            },
            {
                "name": "host",
                "is_required": true,
                "provided": false,
                "is_credential": false,
                "system_provided": false,
                "json_schema": {
                    "anyOf": [
                        {
                            "type": "string",
                            "format": "ipv4"
                        },
                        {
                            "type": "string",
                            "format": "ipv6"
                        },
                        {
                            "type": "string",
                            "format": "hostname"
                        }
                    ]
                }
            },
            {
                "name": "password",
                "is_required": true,
                "provided": false,
                "is_credential": true,
                "system_provided": false,
                "json_schema": {
                    "type": "string"
                }
            },
            {
                "name": "port",
                "is_required": true,
                "provided": false,
                "is_credential": false,
                "system_provided": false,
                "json_schema": {
                    "type": "string",
                    "pattern": "^\\d+$"
                }
            },
            {
                "name": "role",
                "is_required": false,
                "provided": false,
                "is_credential": false,
                "system_provided": false,
                "json_schema": {
                    "type": "string"
                }
            },
            {
                "name": "username",
                "is_required": true,
                "provided": false,
                "is_credential": true,
                "system_provided": false,
                "json_schema": {
                    "type": "string"
                }
            },
            {
                "name": "warehouse",
                "is_required": true,
                "provided": false,
                "is_credential": false,
                "system_provided": false,
                "json_schema": {
                    "type": "string"
                }
            }
        ]
    },
    {
        "type": "fully_configured",
        "properties": []
    }
],
"details": {
    "pricing_tier": "standard",
    "pipeline_state": "released",
    "protocol": "snowflake",
    "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,
    "steps": [
      {
        "type": "form",
        "properties": [
          {
            "name": "host",
            "is_required": true,
            "provided": false,
            "is_credential": false,
            "system_provided": false,
            "json_schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "ipv4"
                },
                {
                  "type": "string",
                  "format": "ipv6"
                },
                {
                  "type": "string",
                  "format": "hostname"
                }
              ]
            }
          },
          {
            "name": "port",
            "is_required": true,
            "provided": false,
            "is_credential": false,
            "system_provided": false,
            "json_schema": {
              "type": "string",
              "pattern": "^\\d+$"
            }
          },
          {
            "name": "username",
            "is_required": true,
            "provided": false,
            "is_credential": false,
            "system_provided": false,
            "json_schema": {
              "type": "string"
            }
          },
          {
            "name": "password",
            "is_required": true,
            "provided": false,
            "is_credential": true,
            "system_provided": false,
            "json_schema": {
              "type": "string"
            }
          },
          {
            "name": "azure_storage_account_token",
            "is_required": true,
            "provided": false,
            "is_credential": true,
            "system_provided": false,
            "json_schema": {
              "type": "string"
            }
          },
          {
            "name": "azure_storage_sas_url",
            "is_required": true,
            "provided": false,
            "is_credential": true,
            "system_provided": false,
            "json_schema": {
              "type": "string"
            }
          },
          {
            "name": "database",
            "is_required": true,
            "provided": false,
            "is_credential": false,
            "system_provided": false,
            "json_schema": {
              "type": "string"
            }
          },
          {
            "name": "encryption_type",
            "is_required": true,
            "provided": false,
            "is_credential": false,
            "system_provided": false,
            "json_schema": {
              "type": "string",
              "pattern": "^(ssh|none)$"
            }
          },
          {
            "name": "encryption_host",
            "is_required": false,
            "provided": false,
            "is_credential": false,
            "system_provided": false,
            "json_schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "ipv4"
                },
                {
                  "type": "string",
                  "format": "ipv6"
                },
                {
                  "type": "string",
                  "format": "hostname"
                }
              ]
            }
          },
          {
            "name": "encryption_port",
            "is_required": false,
            "provided": false,
            "is_credential": false,
            "system_provided": false,
            "json_schema": {
              "type": "string",
              "pattern": "^\\d+$"
            }
          },
          {
            "name": "encryption_username",
            "is_required": false,
            "provided": false,
            "is_credential": false,
            "system_provided": false,
            "json_schema": {
              "type": "string"
            }
          }
        ]
      },
      {
        "type": "fully_configured",
        "properties": []
      }
    ],
    "details": {
      "pricing_tier": "standard",
      "pipeline_state": "beta",
      "protocol": "azure_sqldw",
      "access": true
    }
  },
  {
    "type": "redshift",
    "current_step": 1,
    "steps": [
      {
        "type": "form",
        "properties": [
          {
            "name": "database",
            "is_required": true,
            "provided": false,
            "is_credential": false,
            "system_provided": false,
            "json_schema": {
              "type": "string"
            }
          },
          {
            "name": "encryption_host",
            "is_required": false,
            "provided": false,
            "is_credential": false,
            "system_provided": false,
            "json_schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "ipv4"
                },
                {
                  "type": "string",
                  "format": "ipv6"
                },
                {
                  "type": "string",
                  "format": "hostname"
                }
              ]
            }
          },
          {
            "name": "encryption_port",
            "is_required": false,
            "provided": false,
            "is_credential": false,
            "system_provided": false,
            "json_schema": {
              "type": "string",
              "pattern": "^\\d+$"
            }
          },
          {
            "name": "encryption_type",
            "is_required": true,
            "provided": false,
            "is_credential": false,
            "system_provided": false,
            "json_schema": {
              "type": "string",
              "pattern": "^(ssh|none)$"
            }
          },
          {
            "name": "encryption_username",
            "is_required": false,
            "provided": false,
            "is_credential": false,
            "system_provided": false,
            "json_schema": {
              "type": "string"
            }
          },
          {
            "name": "host",
            "is_required": true,
            "provided": false,
            "is_credential": false,
            "system_provided": false,
            "json_schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "ipv4"
                },
                {
                  "type": "string",
                  "format": "ipv6"
                },
                {
                  "type": "string",
                  "format": "hostname"
                }
              ]
            }
          },
          {
            "name": "password",
            "is_required": true,
            "provided": false,
            "is_credential": true,
            "system_provided": false,
            "json_schema": {
              "type": "string"
            }
          },
          {
            "name": "port",
            "is_required": true,
            "provided": false,
            "is_credential": false,
            "system_provided": false,
            "json_schema": {
              "type": "string",
              "pattern": "^\\d+$"
            }
          },
          {
            "name": "username",
            "is_required": true,
            "provided": false,
            "is_credential": false,
            "system_provided": false,
            "json_schema": {
              "type": "string"
            }
          }
        ]
      },
      {
        "type": "fully_configured",
        "properties": []
      }
    ],
    "details": {
      "pricing_tier": "standard",
      "pipeline_state": "released",
      "protocol": "redshift",
      "access": true
    }
  },
  {
    "type": "postgres",
    "current_step": 1,
    "steps": [
      {
        "type": "form",
        "properties": [
          {
            "name": "database",
            "is_required": true,
            "provided": false,
            "is_credential": false,
            "system_provided": false,
            "json_schema": {
              "type": "string"
            }
          },
          {
            "name": "encryption_host",
            "is_required": false,
            "provided": false,
            "is_credential": false,
            "system_provided": false,
            "json_schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "ipv4"
                },
                {
                  "type": "string",
                  "format": "ipv6"
                },
                {
                  "type": "string",
                  "format": "hostname"
                }
              ]
            }
          },
          {
            "name": "encryption_port",
            "is_required": false,
            "provided": false,
            "is_credential": false,
            "system_provided": false,
            "json_schema": {
              "type": "string",
              "pattern": "^\\d+$"
            }
          },
          {
            "name": "encryption_type",
            "is_required": true,
            "provided": false,
            "is_credential": false,
            "system_provided": false,
            "json_schema": {
              "type": "string",
              "pattern": "^(ssh|none)$"
            }
          },
          {
            "name": "encryption_username",
            "is_required": false,
            "provided": false,
            "is_credential": false,
            "system_provided": false,
            "json_schema": {
              "type": "string"
            }
          },
          {
            "name": "host",
            "is_required": true,
            "provided": false,
            "is_credential": false,
            "system_provided": false,
            "json_schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "ipv4"
                },
                {
                  "type": "string",
                  "format": "ipv6"
                },
                {
                  "type": "string",
                  "format": "hostname"
                }
              ]
            }
          },
          {
            "name": "password",
            "is_required": true,
            "provided": false,
            "is_credential": true,
            "system_provided": false,
            "json_schema": {
              "type": "string"
            }
          },
          {
            "name": "port",
            "is_required": true,
            "provided": false,
            "is_credential": false,
            "system_provided": false,
            "json_schema": {
              "type": "string",
              "pattern": "^\\d+$"
            }
          },
          {
            "name": "ssl",
            "is_required": true,
            "provided": false,
            "is_credential": false,
            "system_provided": false,
            "json_schema": {
              "type": "boolean"
            }
          },
          {
            "name": "sslrootcert",
            "is_required": false,
            "provided": false,
            "is_credential": false,
            "system_provided": false,
            "json_schema": {
              "type": "string"
            }
          },
          {
            "name": "username",
            "is_required": true,
            "provided": false,
            "is_credential": false,
            "system_provided": false,
            "json_schema": {
              "type": "string"
            }
          }
        ]
      },
      {
        "type": "fully_configured",
        "properties": []
      }
    ],
    "details": {
      "pricing_tier": "standard",
      "pipeline_state": "released",
      "protocol": "postgres",
      "access": true
    }
  },
  {
    "type": "snowflake",
    "current_step": 1,
    "steps": [
      {
        "type": "form",
        "properties": [
          {
            "name": "database",
            "is_required": true,
            "provided": false,
            "is_credential": false,
            "system_provided": false,
            "json_schema": {
              "type": "string"
            }
          },
          {
            "name": "host",
            "is_required": true,
            "provided": false,
            "is_credential": false,
            "system_provided": false,
            "json_schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "ipv4"
                },
                {
                  "type": "string",
                  "format": "ipv6"
                },
                {
                  "type": "string",
                  "format": "hostname"
                }
              ]
            }
          },
          {
            "name": "password",
            "is_required": true,
            "provided": false,
            "is_credential": true,
            "system_provided": false,
            "json_schema": {
              "type": "string"
            }
          },
          {
            "name": "port",
            "is_required": true,
            "provided": false,
            "is_credential": false,
            "system_provided": false,
            "json_schema": {
              "type": "string",
              "pattern": "^\\d+$"
            }
          },
          {
            "name": "role",
            "is_required": false,
            "provided": false,
            "is_credential": false,
            "system_provided": false,
            "json_schema": {
              "type": "string"
            }
          },
          {
            "name": "username",
            "is_required": true,
            "provided": false,
            "is_credential": true,
            "system_provided": false,
            "json_schema": {
              "type": "string"
            }
          },
          {
            "name": "warehouse",
            "is_required": true,
            "provided": false,
            "is_credential": false,
            "system_provided": false,
            "json_schema": {
              "type": "string"
            }
          }
        ]
      },
      {
        "type": "fully_configured",
        "properties": []
      }
    ],
    "details": {
      "pricing_tier": "standard",
      "pipeline_state": "released",
      "protocol": "snowflake",
      "access": true
    }
  },
  {
    "type": "s3",
    "current_step": 1,
    "steps": [
      {
        "type": "form",
        "properties": [
          {
            "name": "csv_delimiter",
            "is_required": false,
            "provided": false,
            "is_credential": false,
            "system_provided": false,
            "json_schema": {
              "type": "string"
            }
          },
          {
            "name": "csv_force_quote",
            "is_required": false,
            "provided": false,
            "is_credential": false,
            "system_provided": false,
            "json_schema": {
              "type": "string",
              "pattern": "^(true|false)$"
            }
          },
          {
            "name": "output_file_format",
            "is_required": true,
            "provided": false,
            "is_credential": false,
            "system_provided": false,
            "json_schema": {
              "type": "string",
              "pattern": "^(csv|jsonl)$"
            }
          },
          {
            "name": "s3_bucket",
            "is_required": true,
            "provided": false,
            "is_credential": false,
            "system_provided": false,
            "json_schema": {
              "type": "string"
            }
          },
          {
            "name": "s3_key_format_string",
            "is_required": true,
            "provided": false,
            "is_credential": false,
            "system_provided": false,
            "json_schema": {
              "type": "string"
            }
          },
          {
            "name": "sentinel_key",
            "is_required": true,
            "provided": false,
            "is_credential": true,
            "system_provided": false,
            "json_schema": {
              "type": "string",
              "pattern": "^stitch-challenge-file-.*$"
            }
          }
        ]
      },
      {
        "type": "fully_configured",
        "properties": []
      }
    ],
    "details": {
      "pricing_tier": "standard",
      "pipeline_state": "released",
      "protocol": "s3",
      "access": true
    }
  },
  {
    "type": "storagegrid",
    "current_step": 1,
    "steps": [
      {
        "type": "form",
        "properties": [
          {
            "name": "access_key_id",
            "is_required": true,
            "provided": false,
            "is_credential": true,
            "system_provided": false,
            "json_schema": {
              "type": "string"
            }
          },
          {
            "name": "csv_delimiter",
            "is_required": false,
            "provided": false,
            "is_credential": false,
            "system_provided": false,
            "json_schema": {
              "type": "string"
            }
          },
          {
            "name": "csv_force_quote",
            "is_required": false,
            "provided": false,
            "is_credential": false,
            "system_provided": false,
            "json_schema": {
              "type": "string",
              "pattern": "^(true|false)$"
            }
          },
          {
            "name": "endpoint",
            "is_required": true,
            "provided": false,
            "is_credential": false,
            "system_provided": false,
            "json_schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "ipv4"
                },
                {
                  "type": "string",
                  "format": "ipv6"
                },
                {
                  "type": "string",
                  "format": "hostname"
                }
              ]
            }
          },
          {
            "name": "output_file_format",
            "is_required": true,
            "provided": false,
            "is_credential": false,
            "system_provided": false,
            "json_schema": {
              "type": "string",
              "pattern": "^(csv|jsonl)$"
            }
          },
          {
            "name": "port",
            "is_required": true,
            "provided": false,
            "is_credential": false,
            "system_provided": false,
            "json_schema": {
              "type": "string",
              "pattern": "^\\d+$"
            }
          },
          {
            "name": "s3_bucket",
            "is_required": true,
            "provided": false,
            "is_credential": false,
            "system_provided": false,
            "json_schema": {
              "type": "string"
            }
          },
          {
            "name": "s3_key_format_string",
            "is_required": true,
            "provided": false,
            "is_credential": false,
            "system_provided": false,
            "json_schema": {
              "type": "string"
            }
          },
          {
            "name": "secret_access_key",
            "is_required": true,
            "provided": false,
            "is_credential": true,
            "system_provided": false,
            "json_schema": {
              "type": "string"
            }
          },
          {
            "name": "sentinel_key",
            "is_required": true,
            "provided": false,
            "is_credential": true,
            "system_provided": false,
            "json_schema": {
              "type": "string",
              "pattern": "^stitch-challenge-file-.*$"
            }
          }
        ]
      },
      {
        "type": "fully_configured",
        "properties": []
      }
    ],
    "details": {
      "pricing_tier": "default",
      "pipeline_state": "alpha",
      "protocol": "storagegrid",
      "access": false
    }
  }
]


Sources

OBJECT Source Object

An object representing a data source. Sources are the databases, APIs, and other data applications that Stitch replicates data from. Sources can be retrieved in a list or individually by ID.

POST Create a source

Creates a source object, which is the first step in setting up a new data source.

PUT Update a source

Updates an existing data source.

GET Retrieve a source

Retrieves a previously created data source by its unique identifier.

GET List all sources

Lists the sources for an account, including active, paused, and deleted sources.

DELETE Delete a source

Deletes an existing data source.


OBJECT

The Source Object

An object representing a data source. Sources are the databases, APIs, and other data applications that Stitch replicates data from. Sources can be retrieved in a list or individually by ID.

id
INTEGER

The unique identifier for this source.

created_at
TIMESTAMP

The time at which the source object was created.

deleted_at
TIMESTAMP

The time at which the source object was deleted.

display_name
STRING

The display name of the source connection.

name
STRING

The name of the source connection, dynamically generated from display_name. The name corresponds to the destination schema name that the data from this source will be loaded into.

Names must:

  • Contain only lowercase alphanumerics and underscores
  • Be unique within each Stitch client account
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 (PROPERTIES)

A source Properties object corresponding to the value of type.

report_card
OBJECT (SOURCE REPORT CARD)

A description of the source’s configuration state.

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 source type.

updated_at
TIMESTAMP

The time at which the object was last updated.


POST

Create a source

Creates a source object, which is the first step in setting up a new data source. After the source object is created, additional configuration steps must be completed.

The configuration process is unique for each type of source. The report_card object’s steps attribute will assist you in guiding the user to the Connect JavaScript Client to complete the appropriate step.

Resource List
Request Method

POST

Resource URL

/v4/sources

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.

Errors

See the Errors tab, below.

Arguments

This endpoint accepts the following parameters:

display_name
STRING
REQUIRED

A descriptive name for the source. This will be used to dynamically generate the name corresponding to the schema name or dataset name that the data from this source will be loaded into.

type
STRING
REQUIRED

The source type. For example: platform.marketo or platform.hubspot.

properties
OBJECT
OPTIONAL

A source Properties object corresponding to the value of type.

Returns

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

The report_card property contains the Source Report Card object for the source’s configuration status.

curl -X POST https://api.stitchdata.com/v4/sources
     -H "Authorization: Bearer <ACCESS_TOKEN>" 
     -H "Content-Type: application/json"
     -d "{
             "type":"platform.hubspot",
             "display_name":"HubSpot",
             "properties":{
                "start_date":"2017-01-01T00:00:00Z",
                "frequency_in_minutes":"30"
             }
          }"
HTTP/1.1 200 OK
Content-Type: application/json;charset=ISO-8859-1

{
   "properties":{
      "frequency_in_minutes":"30",
      "image_version":"1.latest",
      "start_date":"2017-01-01T00:00:00Z"
   },
   "updated_at":"2018-02-06T16:25:06Z",
   "check_job_name":null,
   "name":"hubspot",
   "type":"platform.hubspot",
   "deleted_at":null,
   "system_paused_at":null,
   "stitch_client_id":<ACCOUNT_ID>,
   "paused_at":null,
   "id":<SOURCE_ID>,
   "display_name":"HubSpot",
   "created_at":"2018-02-06T16:25:06Z",
   "report_card":{
      "type":"platform.hubspot",
      "current_step":2,
      "steps":[
         {
            "type":"form",
            "properties":[
               {
                  "name":"image_version",
                  "is_required":true,
                  "provided":true,
                  "is_credential":false,
                  "system_provided":true,
                  "json_schema":null
               },
               {
                  "name":"frequency_in_minutes",
                  "is_required":true,
                  "provided":true,
                  "is_credential":false,
                  "system_provided":false,
                  "json_schema":{
                     "type":"string",
                     "pattern":"^\\d+$"
                  }
               },
               {
                  "name":"start_date",
                  "is_required":true,
                  "provided":true,
                  "is_credential":false,
                  "system_provided":false,
                  "json_schema":{
                     "type":"string",
                     "pattern":"^\\d{4}-\\d{2}-\\d{2}T00:00:00Z$"
                  }
               }
            ]
         },
         {
            "type":"oauth",
            "properties":[
               {
                  "name":"client_id",
                  "is_required":true,
                  "provided":false,
                  "is_credential":true,
                  "system_provided":true,
                  "json_schema":{
                     "type":"string"
                  }
               },
               {
                  "name":"client_secret",
                  "is_required":true,
                  "provided":false,
                  "is_credential":true,
                  "system_provided":true,
                  "json_schema":{
                     "type":"string"
                  }
               },
               {
                  "name":"redirect_uri",
                  "is_required":true,
                  "provided":false,
                  "is_credential":true,
                  "system_provided":true,
                  "json_schema":{
                     "type":"string",
                     "format":"uri"
                  }
               },
               {
                  "name":"refresh_token",
                  "is_required":true,
                  "provided":false,
                  "is_credential":true,
                  "system_provided":true,
                  "json_schema":{
                     "type":"string"
                  }
               }
            ]
         },
         {
            "type":"discover_schema",
            "properties":[ ]
         },
         {
            "type":"field_selection",
            "properties":[ ]
         },
         {
            "type":"fully_configured",
            "properties":[ ]
         }
      ]
   }
}
Code Condition Response Body
400

Source’s display_name is already in use

"a source of name <NAME> already exists"

400

Prohibited arguments

"POST body may only include a type, a display_name and map of string properties"

400

Invalid properties data

An array of the property names containing invalid data:

{
   "bad_properties":[
      "start_date",
      "frequency_in_minutes"
   ],
   ...
}

May result from incorrect formatting, incorrect typing (all property values must be strings), or a property has a value that is an empty string.


PUT

Update a source

Updates an existing data source.

Resource List
Request Method

PUT

Resource URL

/v4/sources/{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.

Errors

See the Errors tab, below.

Arguments

This endpoint accepts the following parameters:

id
PATH PARAMETER
REQUIRED

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

display_name
STRING
OPTIONAL

A descriptive name for the source. This will be used to dynamically generate the name corresponding to the schema name or dataset name that the data from this source will be loaded into.

properties
OBJECT
OPTIONAL

A source Properties object corresponding to the value of type.

Returns

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

curl -X PUT https://api.stitchdata.com/v4/sources/86741
     -H "Authorization: Bearer <ACCESS_TOKEN>" 
     -H "Content-Type: application/json"
     -d "{
             "display_name":"Salesforce",
             "properties":{
                "frequency_in_minutes":"60"
             }
         }"
HTTP/1.1 200 OK
Content-Type: application/json;charset=ISO-8859-1

{
   "properties":{
      "frequency_in_minutes":"60",
      "image_version":"1.latest",
      "start_date":"2017-01-01T00:00:00Z"
   },
   "updated_at":"2018-02-06T17:37:14Z",
   "check_job_name":null,
   "name":"salesforce",
   "type":"platform.salesforce",
   "deleted_at":null,
   "system_paused_at":null,
   "stitch_client_id":<ACCOUNT_ID>,
   "paused_at":null,
   "id":<SOURCE_ID>,
   "display_name":"Salesforce",
   "created_at":"2018-02-06T17:36:02Z",
   "report_card":{
      "type":"platform.salesforce",
      "current_step":1,
      "steps":[
         {
            "type":"form",
            "properties":[
               {
                  "name":"image_version",
                  "is_required":true,
                  "provided":true,
                  "is_credential":false,
                  "system_provided":true,
                  "json_schema":null
               },
               {
                  "name":"frequency_in_minutes",
                  "is_required":true,
                  "provided":true,
                  "is_credential":false,
                  "system_provided":false,
                  "json_schema":{
                     "type":"string",
                     "pattern":"^\\d+$"
                  }
               },
               {
                  "name":"api_type",
                  "is_required":true,
                  "provided":false,
                  "is_credential":false,
                  "system_provided":false,
                  "json_schema":{
                     "type":"string",
                     "pattern":"^(REST|BULK)$"
                  }
               },
               {
                  "name":"is_sandbox",
                  "is_required":false,
                  "provided":false,
                  "is_credential":false,
                  "system_provided":false,
                  "json_schema":{
                     "type":"string",
                     "pattern":"^(true|false)$"
                  }
               },
               {
                  "name":"quota_percent_per_run",
                  "is_required":false,
                  "provided":false,
                  "is_credential":false,
                  "system_provided":false,
                  "json_schema":{
                     "type":"string",
                     "pattern":"^\\d+$"
                  }
               },
               {
                  "name":"quota_percent_total",
                  "is_required":false,
                  "provided":false,
                  "is_credential":false,
                  "system_provided":false,
                  "json_schema":{
                     "type":"string",
                     "pattern":"^\\d+$"
                  }
               },
               {
                  "name":"select_fields_by_default",
                  "is_required":true,
                  "provided":false,
                  "is_credential":false,
                  "system_provided":false,
                  "json_schema":{
                     "type":"string",
                     "pattern":"^(true|false)$"
                  }
               },
               {
                  "name":"start_date",
                  "is_required":true,
                  "provided":true,
                  "is_credential":false,
                  "system_provided":false,
                  "json_schema":{
                     "type":"string",
                     "pattern":"^\\d{4}-\\d{2}-\\d{2}T00:00:00Z$"
                  }
               }
            ]
         },
         {
            "type":"oauth",
            "properties":[
               {
                  "name":"client_id",
                  "is_required":true,
                  "provided":false,
                  "is_credential":true,
                  "system_provided":false,
                  "json_schema":{
                     "type":"string"
                  }
               },
               {
                  "name":"client_secret",
                  "is_required":true,
                  "provided":false,
                  "is_credential":true,
                  "system_provided":false,
                  "json_schema":{
                     "type":"string"
                  }
               },
               {
                  "name":"instance_url",
                  "is_required":true,
                  "provided":false,
                  "is_credential":false,
                  "system_provided":false,
                  "json_schema":{
                     "type":"string",
                     "format":"uri"
                  }
               },
               {
                  "name":"orgid",
                  "is_required":false,
                  "provided":false,
                  "is_credential":false,
                  "system_provided":false,
                  "json_schema":{
                     "type":"string"
                  }
               },
               {
                  "name":"refresh_token",
                  "is_required":true,
                  "provided":false,
                  "is_credential":true,
                  "system_provided":false,
                  "json_schema":{
                     "type":"string"
                  }
               }
            ]
         },
         {
            "type":"discover_schema",
            "properties":[  ]
         },
         {
            "type":"field_selection",
            "properties":[  ]
         },
         {
            "type":"fully_configured",
            "properties":[  ]
         }
      ]
   }
}
Code Condition Response Body
400

Invalid source ID

"unable to locate source(<SOURCE_ID>) for client (<ACCOUNT_ID>) to update"

400

Prohibited arguments

"PUT body many only include the keys: display_name and properties"

400

Invalid properties data

An array of the property names containing invalid data:

{
   "bad_properties":[
      "start_date",
      "frequency_in_minutes"
   ],
   ...
}

May result from incorrect formatting, incorrect typing (all property values must be strings), or a property has a value that is an empty string.


GET

Retrieve a source

Retrieves a previously created data source by its unique identifier.

Resource List
Request Method

GET

Resource URL

/v4/sources/{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:

id
PATH PARAMETER
REQUIRED

A path parameter corresponding to the unique ID of the data source to be retrieved.

Returns

If successful and a valid identifier was provided, the API will return a status of 200 OK and a single Source Object.

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

{  
   "properties":{  
      "frequency_in_minutes":"30",
      "image_version":"1.latest",
      "start_date":"2017-01-01T00:00:00Z"
   },
   "updated_at":"2018-02-06T18:04:59Z",
   "name":"hubspot",
   "type":"platform.hubspot",
   "deleted_at":"2018-02-06T18:04:58Z",
   "system_paused_at":null,
   "stitch_client_id":<ACCOUNT_ID>,
   "paused_at":null,
   "id":<SOURCE_ID>,
   "display_name":"HubSpot",
   "created_at":"2018-02-06T16:25:06Z",
   "report_card":{  
      "type":"platform.hubspot",
      "current_step":2,
      "steps":[  
         {  
            "type":"form",
            "properties":[  
               {  
                  "name":"image_version",
                  "is_required":true,
                  "provided":true,
                  "is_credential":false,
                  "system_provided":true,
                  "json_schema":null
               },
               {  
                  "name":"frequency_in_minutes",
                  "is_required":true,
                  "provided":true,
                  "is_credential":false,
                  "system_provided":false,
                  "json_schema":{  
                     "type":"string",
                     "pattern":"^\\d+$"
                  }
               },
               {  
                  "name":"start_date",
                  "is_required":true,
                  "provided":true,
                  "is_credential":false,
                  "system_provided":false,
                  "json_schema":{  
                     "type":"string",
                     "pattern":"^\\d{4}-\\d{2}-\\d{2}T00:00:00Z$"
                  }
               }
            ]
         },
         {  
            "type":"oauth",
            "properties":[  
               {  
                  "name":"client_id",
                  "is_required":true,
                  "provided":false,
                  "is_credential":true,
                  "system_provided":true,
                  "json_schema":{  
                     "type":"string"
                  }
               },
               {  
                  "name":"client_secret",
                  "is_required":true,
                  "provided":false,
                  "is_credential":true,
                  "system_provided":true,
                  "json_schema":{  
                     "type":"string"
                  }
               },
               {  
                  "name":"redirect_uri",
                  "is_required":true,
                  "provided":false,
                  "is_credential":true,
                  "system_provided":true,
                  "json_schema":{  
                     "type":"string",
                     "format":"uri"
                  }
               },
               {  
                  "name":"refresh_token",
                  "is_required":true,
                  "provided":false,
                  "is_credential":true,
                  "system_provided":true,
                  "json_schema":{  
                     "type":"string"
                  }
               }
            ]
         },
         {  
            "type":"discover_schema",
            "properties":[  

            ]
         },
         {
            "type":"field_selection",
            "properties":[ ]
         },
         {
            "type":"fully_configured",
            "properties":[  ]
         }
      ]
   }
}

GET

List all sources

Lists the sources for an account, including active, paused, and deleted sources.

Resource List
Request Method

GET

Resource URL

/v4/sources

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 Objects, including paused and deleted sources.

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

[
   {
      "properties":{
         "frequency_in_minutes":"30",
         "image_version":"1.latest",
         "start_date":"2017-01-01T00:00:00Z"
      },
      "updated_at":"2018-02-06T18:04:59Z",
      "name":"hubspot_api_test",
      "type":"platform.hubspot",
      "deleted_at":"2018-02-06T18:04:58Z",
      "system_paused_at":null,
      "stitch_client_id":<ACCOUNT_ID>,
      "paused_at":null,
      "id":<SOURCE_ID>,
      "display_name":"HubSpot",
      "created_at":"2018-02-06T16:25:06Z",
      "report_card":{
         "type":"platform.hubspot",
         "current_step":2,
         "steps":[
            {
               "type":"form",
               "properties":[ ... ]
            },
            {
               "type":"oauth",
               "properties":[ ... ]
            },
            {
               "type":"discover_schema",
               "properties":[  ]
            },
            {
               "type":"field_selection",
               "properties":[  ]
            },
            {
               "type":"fully_configured",
               "properties":[  ]
            }
         ]
      }
   },
   {  
      "properties":{
         "frequency_in_minutes":"30",
         "image_version":"1.latest",
         "start_date":"2017-01-01T00:00:00Z"
      },
      "updated_at":"2018-02-06T18:12:41Z",
      "name":"hubspot",
      "type":"platform.hubspot",
      "deleted_at":null,
      "system_paused_at":null,
      "stitch_client_id":<ACCOUNT_ID>,
      "paused_at":null,
      "id":<SOURCE_ID>,
      "display_name":"HubSpot",
      "created_at":"2018-02-06T18:12:41Z",
      "report_card":{
         "type":"platform.hubspot",
         "current_step":2,
         "steps":[  
            {
               "type":"form",
               "properties":[ ... ]
            },
            {
               "type":"oauth",
               "properties":[ ... ]
            },
            {
               "type":"discover_schema",
               "properties":[  ]
            },
            {
               "type":"field_selection",
               "properties":[  ]
            },
            {
               "type":"fully_configured",
               "properties":[  ]
            }
         ]
      }
   },
   {  
      "properties":{
         "frequency_in_minutes":"30",
         "image_version":"1.latest",
         "start_date":"2017-01-01T00:00:00Z"
      },
      "updated_at":"2018-02-06T18:10:44Z",
      "name":"salesforce_api_test",
      "type":"platform.salesforce",
      "deleted_at":"2018-02-06T18:05:06Z",
      "system_paused_at":null,
      "stitch_client_id":<ACCOUNT_ID>,
      "paused_at":null,
      "id":<SOURCE_ID>,
      "display_name":"Salesforce",
      "created_at":"2018-02-06T17:36:02Z",
      "report_card":{
         "type":"platform.salesforce",
         "current_step":1,
         "steps":[
            {  
               "type":"form",
               "properties":[ ... ]
            },
            {  
               "type":"oauth",
               "properties":[ ... ]
            },
            {  
               "type":"discover_schema",
               "properties":[  ]
            },
            {  
               "type":"field_selection",
               "properties":[  ]
            },
            {  
               "type":"fully_configured",
               "properties":[  ]
            }
         ]
      }
   },
   {  
      "properties":{
         "frequency_in_minutes":"30",
         "image_version":"1.latest",
         "start_date":"2017-01-01T00:00:00Z"
      },
      "updated_at":"2018-02-06T18:05:30Z",
      "name":"salesforce_api_test",
      "type":"platform.salesforce",
      "deleted_at":null,
      "system_paused_at":null,
      "stitch_client_id":<ACCOUNT_ID>,
      "paused_at":null,
      "id":<SOURCE_ID>,
      "display_name":"Salesforce",
      "created_at":"2018-02-06T18:05:30Z",
      "report_card":{
         "type":"platform.salesforce",
         "current_step":1,
         "steps":[
            {
               "type":"form",
               "properties":[ ... ]
            },
            {
               "type":"oauth",
               "properties":[ ... ]
            },
            {
               "type":"discover_schema",
               "properties":[  ]
            },
            {
               "type":"field_selection",
               "properties":[  ]
            },
            {
               "type":"fully_configured",
               "properties":[  ]
            }
         ]
      }
   }
]

DELETE

Delete a source

Deletes an existing data source.

Resource List
Request Method

DELETE

Resource URL

/v4/sources/{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.

Errors

See the Errors tab, below.

Arguments

This endpoint accepts the following parameters:

id
PATH PARAMETER
REQUIRED

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

Returns

If successful, the API will return a status of 200 OK and a Source object with a report_card property. The deleted_at attribute will be populated.

curl -X DELETE https://api.stitchdata.com/v4/sources/86741
     -H "Authorization: Bearer <ACCESS_TOKEN>" 
     -H "Content-Type: application/json"
     -d "{}"
HTTP/1.1 200 OK
Content-Type: application/json;charset=ISO-8859-1

{
   "properties":{
      "frequency_in_minutes":"60",
      "image_version":"1.latest",
      "start_date":"2017-01-01T00:00:00Z"
   },
   "updated_at":"2018-02-06T17:37:14Z",
   "check_job_name":null,
   "name":"salesforce",
   "type":"platform.salesforce",
   "deleted_at":"2019-01-09T17:28:57Z",
   "system_paused_at":null,
   "stitch_client_id":<ACCOUNT_ID>,
   "paused_at":null,
   "id":<SOURCE_ID>,
   "display_name":"Salesforce",
   "created_at":"2018-02-06T17:36:02Z",
   "report_card":{
      "type":"platform.salesforce",
      "current_step":1,
      "steps":[
         {
            "type":"form",
            "properties":[
               {
                  "name":"image_version",
                  "is_required":true,
                  "provided":true,
                  "is_credential":false,
                  "system_provided":true,
                  "json_schema":null
               },
               {
                  "name":"frequency_in_minutes",
                  "is_required":true,
                  "provided":true,
                  "is_credential":false,
                  "system_provided":false,
                  "json_schema":{
                     "type":"string",
                     "pattern":"^\\d+$"
                  }
               },
               {
                  "name":"api_type",
                  "is_required":true,
                  "provided":false,
                  "is_credential":false,
                  "system_provided":false,
                  "json_schema":{
                     "type":"string",
                     "pattern":"^(REST|BULK)$"
                  }
               },
               {
                  "name":"is_sandbox",
                  "is_required":false,
                  "provided":false,
                  "is_credential":false,
                  "system_provided":false,
                  "json_schema":{
                     "type":"string",
                     "pattern":"^(true|false)$"
                  }
               },
               {
                  "name":"quota_percent_per_run",
                  "is_required":false,
                  "provided":false,
                  "is_credential":false,
                  "system_provided":false,
                  "json_schema":{
                     "type":"string",
                     "pattern":"^\\d+$"
                  }
               },
               {
                  "name":"quota_percent_total",
                  "is_required":false,
                  "provided":false,
                  "is_credential":false,
                  "system_provided":false,
                  "json_schema":{
                     "type":"string",
                     "pattern":"^\\d+$"
                  }
               },
               {
                  "name":"select_fields_by_default",
                  "is_required":true,
                  "provided":false,
                  "is_credential":false,
                  "system_provided":false,
                  "json_schema":{
                     "type":"string",
                     "pattern":"^(true|false)$"
                  }
               },
               {
                  "name":"start_date",
                  "is_required":true,
                  "provided":true,
                  "is_credential":false,
                  "system_provided":false,
                  "json_schema":{
                     "type":"string",
                     "pattern":"^\\d{4}-\\d{2}-\\d{2}T00:00:00Z$"
                  }
               }
            ]
         },
         {
            "type":"oauth",
            "properties":[
               {
                  "name":"client_id",
                  "is_required":true,
                  "provided":false,
                  "is_credential":true,
                  "system_provided":false,
                  "json_schema":{
                     "type":"string"
                  }
               },
               {
                  "name":"client_secret",
                  "is_required":true,
                  "provided":false,
                  "is_credential":true,
                  "system_provided":false,
                  "json_schema":{
                     "type":"string"
                  }
               },
               {
                  "name":"instance_url",
                  "is_required":true,
                  "provided":false,
                  "is_credential":false,
                  "system_provided":false,
                  "json_schema":{
                     "type":"string",
                     "format":"uri"
                  }
               },
               {
                  "name":"orgid",
                  "is_required":false,
                  "provided":false,
                  "is_credential":false,
                  "system_provided":false,
                  "json_schema":{
                     "type":"string"
                  }
               },
               {
                  "name":"refresh_token",
                  "is_required":true,
                  "provided":false,
                  "is_credential":true,
                  "system_provided":false,
                  "json_schema":{
                     "type":"string"
                  }
               }
            ]
         },
         {
            "type":"discover_schema",
            "properties":[  ]
         },
         {
            "type":"field_selection",
            "properties":[  ]
         },
         {
            "type":"fully_configured",
            "properties":[  ]
         }
      ]
   }
}
Code Condition Response Body
400

Prohibited arguments

"DELETE body must be empty"

400

Invalid source ID

"Unable to locate source(<SOURCE_ID>) for client (<ACCOUNT_ID>) to delete"


Data Structures

OBJECT Connection Step

Contained in a Source or Destination Report Card object, the Connection Steps object contains the steps necessary to configure a data source or destination.

OBJECT Details

Contained in a Destination Report Card object, the Details object contains information about a destination type’s availability within Stitch.

Note: This object will only be returned when using a GET method.

OBJECT Properties

A Properties object contains the properties necessary to complete a connection step. Returned within a Source or Destination object, these properties provide information about the configuration status of the connection.

OBJECT Destination Report Card

A Destination Report Card object contains information about a destination’s connection configuration.

OBJECT Source Report Card

A Source Report Card object contains information about a source’s connection configuration.


OBJECT

The Connection Step Object

Contained in a Source or Destination Report Card object, the Connection Steps object contains the steps necessary to configure a data source or destination.

type
STRING

The type of step. Possible values are:

  • form - The first step in every source’s creation.
  • oauth - If required, the OAuth step for the source’s creation.
  • profile - If required, the profile selection step. For example: Selecting a Facebook Ads profile.
  • discover_schema - The step in which Stitch performs a structure sync to detect the tables and attributes available in the source.
  • field_selection - The step in which tables and columns are selected for replication.
  • fully_configured - Achieved when the source has a successful connection and field_selection is complete.
properties
ARRAY

An array of Properties objects.

Example Object

{  
   "report_card":{  
      "type":"platform.hubspot",
      "current_step":2,
      "steps":[  
         {  
            "type":"form",
            "properties":[]
         },
         {  
            "type":"oauth",
            "properties":[]
         },
         {  
            "type":"discover_schema",
            "properties":[]
         },
         {  
            "type":"field_selection",
            "properties":[]
         },
         {  
            "type":"fully_configured",
            "properties":[]
         }
      ]
   }
}

OBJECT

The Details Object

Contained in a Destination Report Card object, the Details object contains information about a destination type’s availability within Stitch.

Note: This object will only be returned when using a GET method.

access
BOOLEAN

If true, the connection can be used for the Stitch client account being accessed.

pricing_tier
STRING

Indicates the type of Stitch plan required to use the connection. Possible values are:

  • standard - Any Stitch plan can use the connection.
  • premium - A paid Stitch plan is required to use the connection.
  • enterprise - An Enterprise Stitch plan is required to use the connection.
pipeline_state
STRING

The connection type’s release status in Stitch. Possible values are:

  • alpha - The connection is in development.
  • beta - The connection is in open or closed beta.
  • released - The connection is in general release.
  • deprecated - The connection has been deprecated.
protocol
STRING

The type of the connection. For example: snowflake or redshift

Example Object

{
  "type": "snowflake",
  "current_step": 1,
  "steps": [
    {
      "type": "form",
      "properties": []
    },
    {
      "type": "fully_configured",
      "properties": []
    }
  ],
  "details": {
    "pricing_tier": "standard",
    "pipeline_state": "released",
    "protocol": "snowflake",
    "access": true
  }
}

OBJECT

The Properties Object

A Properties object contains the properties necessary to complete a connection step. Returned within a Source or Destination object, these properties provide information about the configuration status of the connection.

name
STRING

The name of the property.

required_to_be_fully_configured
BOOLEAN

If true, the property is required for complete configuration.

provided
BOOLEAN

If true, the property has been provided.

is_credential
BOOLEAN

If true, the property is a credential or otherwise sensitive data.

system_provided
BOOLEAN

If true, the system provides this property.

tap_mutable
BOOLEAN

This is an internal field and is for Stitch use only.

json_schema
ARRAY

Note: Data will only be returned for this array if system_provided: false.

An array containing:

  • type - A string indicating the expected data type of the property’s value. For example: boolean
  • pattern - A string indicating the expected pattern of the property’s value. For example: ^\\d+$
  • anyOf - A series of arrays containing key-value pairs for the type and format combinations Stitch will accept as the property’s value. For example:

      "anyOf": [
          {
              "type": "string",
              "format": "ipv4"
          },
          {
              "type": "string",
              "format": "ipv6"
          },
          {
              "type": "string",
              "format": "hostname"
          }
      ]
    

Example Object

{
  "report_card":{  
      "type":"platform.hubspot",
      "current_step":2,
      "steps":[  
         {  
            "type":"form",
            "properties":[  
               {  
                  "name":"image_version",
                  "is_required":true,
                  "provided":true,
                  "is_credential":false,
                  "system_provided":true,
                  "json_schema":null
               },
               {  
                  "name":"frequency_in_minutes",
                  "is_required":true,
                  "provided":true,
                  "is_credential":false,
                  "system_provided":false,
                  "json_schema":{  
                     "type":"string",
                     "pattern":"^\\d+$"
                  }
               },
               {  
                  "name":"start_date",
                  "is_required":true,
                  "provided":true,
                  "is_credential":false,
                  "system_provided":false,
                  "json_schema":{  
                     "type":"string",
                     "pattern":"^\\d{4}-\\d{2}-\\d{2}T00:00:00Z$"
                  }
               }
            ]
         }
      ]
   }
}

OBJECT

The Destination Report Card Object

A Destination Report Card object contains information about a destination’s connection configuration.

current_step
INTEGER

The index (in the steps array) of the current step needed to configure the destination.

details
OBJECT (DETAILS)

A Details object contains information about a destination type’s availablity within Stitch.

steps
ARRAY

A sequential list of Connection Step objects required to complete configuration for the connection type.

type
STRING

The destination connection type. Ex: postgres or redshift

Example Object

"type": "snowflake",
"current_step": 1,
"steps": [
    {
        "type": "form",
        "properties": [
            {
                "name": "database",
                "is_required": true,
                "provided": false,
                "is_credential": false,
                "system_provided": false,
                "json_schema": {
                    "type": "string"
                }
            },
            {
                "name": "host",
                "is_required": true,
                "provided": false,
                "is_credential": false,
                "system_provided": false,
                "json_schema": {
                    "anyOf": [
                        {
                            "type": "string",
                            "format": "ipv4"
                        },
                        {
                            "type": "string",
                            "format": "ipv6"
                        },
                        {
                            "type": "string",
                            "format": "hostname"
                        }
                    ]
                }
            },
            {
                "name": "password",
                "is_required": true,
                "provided": false,
                "is_credential": true,
                "system_provided": false,
                "json_schema": {
                    "type": "string"
                }
            },
            {
                "name": "port",
                "is_required": true,
                "provided": false,
                "is_credential": false,
                "system_provided": false,
                "json_schema": {
                    "type": "string",
                    "pattern": "^\\d+$"
                }
            },
            {
                "name": "role",
                "is_required": false,
                "provided": false,
                "is_credential": false,
                "system_provided": false,
                "json_schema": {
                    "type": "string"
                }
            },
            {
                "name": "username",
                "is_required": true,
                "provided": false,
                "is_credential": true,
                "system_provided": false,
                "json_schema": {
                    "type": "string"
                }
            },
            {
                "name": "warehouse",
                "is_required": true,
                "provided": false,
                "is_credential": false,
                "system_provided": false,
                "json_schema": {
                    "type": "string"
                }
            }
        ]
    },
    {
        "type": "fully_configured",
        "properties": []
    }
],
"details": {
    "pricing_tier": "standard",
    "pipeline_state": "released",
    "protocol": "snowflake",
    "access": true
}

OBJECT

The Source Report Card Object

A Source Report Card object contains information about a source’s connection configuration.

current_step
INTEGER

The index (in the steps array) of the current step needed to configure the data source.

steps
ARRAY

A sequential list of Connection Step objects required to complete configuration for the connection type.

type
STRING

The connection type. Ex: platform.mysql or platform.hubspot

Example Object

{
  "type": "platform.mysql",
  "current_step": 1,
  "steps": [
    {
      "type": "form",
      "properties": [
        {
          "name": "image_version",
          "is_required": true,
          "provided": false,
          "is_credential": false,
          "system_provided": true,
          "tap_mutable": false,
          "json_schema": null
        },
        {
          "name": "frequency_in_minutes",
          "is_required": true,
          "provided": false,
          "is_credential": false,
          "system_provided": false,
          "tap_mutable": false,
          "json_schema": {
            "type": "string",
            "pattern": "^1$|^30$|^60$|^360$|^720$|^1440$"
          }
        },
        {
          "name": "anchor_time",
          "is_required": false,
          "provided": false,
          "is_credential": false,
          "system_provided": false,
          "tap_mutable": false,
          "json_schema": {
            "type": "string",
            "format": "date-time"
          }
        },
        {
          "name": "database",
          "is_required": false,
          "provided": false,
          "is_credential": false,
          "system_provided": false,
          "tap_mutable": false,
          "json_schema": {
            "type": "string"
          }
        },
        {
          "name": "filter_dbs",
          "is_required": false,
          "provided": false,
          "is_credential": false,
          "system_provided": false,
          "tap_mutable": false,
          "json_schema": {
            "type": "string"
          }
        },
        {
          "name": "host",
          "is_required": true,
          "provided": false,
          "is_credential": false,
          "system_provided": false,
          "tap_mutable": false,
          "json_schema": {
            "type": "string",
            "format": "uri"
          }
        },
        {
          "name": "password",
          "is_required": true,
          "provided": false,
          "is_credential": true,
          "system_provided": false,
          "tap_mutable": false,
          "json_schema": {
            "type": "string"
          }
        },
        {
          "name": "port",
          "is_required": true,
          "provided": false,
          "is_credential": false,
          "system_provided": false,
          "tap_mutable": false,
          "json_schema": {
            "type": "string",
            "pattern": "^\\d+"
          }
        },
        {
          "name": "server_id",
          "is_required": false,
          "provided": false,
          "is_credential": false,
          "system_provided": false,
          "tap_mutable": false,
          "json_schema": {
            "type": "string",
            "pattern": "^\\d+$"
          }
        },
        {
          "name": "ssh",
          "is_required": false,
          "provided": false,
          "is_credential": false,
          "system_provided": false,
          "tap_mutable": false,
          "json_schema": {
            "type": "string",
            "pattern": "^(true|false)"
          }
        },
        {
          "name": "ssh_host",
          "is_required": false,
          "provided": false,
          "is_credential": false,
          "system_provided": false,
          "tap_mutable": false,
          "json_schema": {
            "type": "string",
            "format": "uri"
          }
        },
        {
          "name": "ssh_port",
          "is_required": false,
          "provided": false,
          "is_credential": false,
          "system_provided": false,
          "tap_mutable": false,
          "json_schema": {
            "type": "string",
            "pattern": "^\\d+"
          }
        },
        {
          "name": "ssh_user",
          "is_required": false,
          "provided": false,
          "is_credential": false,
          "system_provided": false,
          "tap_mutable": false,
          "json_schema": {
            "type": "string"
          }
        },
        {
          "name": "ssl",
          "is_required": false,
          "provided": false,
          "is_credential": false,
          "system_provided": false,
          "tap_mutable": false,
          "json_schema": {
            "type": "string",
            "pattern": "^(true|false)"
          }
        },
        {
          "name": "user",
          "is_required": true,
          "provided": false,
          "is_credential": false,
          "system_provided": false,
          "tap_mutable": false,
          "json_schema": {
            "type": "string"
          }
        },
        {
          "name": "use_log_based_replication",
          "is_required": false,
          "provided": false,
          "is_credential": false,
          "system_provided": false,
          "tap_mutable": false,
          "json_schema": {
            "type": "string",
            "pattern": "^(true|false)$"
          }
        }
      ]
    },
    {
      "type": "discover_schema",
      "properties": []
    },
    {
      "type": "field_selection",
      "properties": []
    },
    {
      "type": "fully_configured",
      "properties": []
    }
  ]
}
{
   "report_card":{
      "type":"platform.hubspot",
      "current_step":2,
      "steps":[
         {
            "type":"form",
            "properties":[
               {
                  "name":"image_version",
                  "is_required":true,
                  "provided":true,
                  "is_credential":false,
                  "system_provided":true,
                  "json_schema":null
               },
               {
                  "name":"frequency_in_minutes",
                  "is_required":true,
                  "provided":true,
                  "is_credential":false,
                  "system_provided":false,
                  "json_schema":{
                     "type":"string",
                     "pattern":"^\\d+$"
                  }
               },
               {
                  "name":"start_date",
                  "is_required":true,
                  "provided":true,
                  "is_credential":false,
                  "system_provided":false,
                  "json_schema":{
                     "type":"string",
                     "pattern":"^\\d{4}-\\d{2}-\\d{2}T00:00:00Z$"
                  }
               }
            ]
         },
         {
            "type":"oauth",
            "properties":[
               {
                  "name":"client_id",
                  "is_required":true,
                  "provided":false,
                  "is_credential":true,
                  "system_provided":true,
                  "json_schema":{
                     "type":"string"
                  }
               },
               {
                  "name":"client_secret",
                  "is_required":true,
                  "provided":false,
                  "is_credential":true,
                  "system_provided":true,
                  "json_schema":{
                     "type":"string"
                  }
               },
               {
                  "name":"redirect_uri",
                  "is_required":true,
                  "provided":false,
                  "is_credential":true,
                  "system_provided":true,
                  "json_schema":{
                     "type":"string",
                     "format":"uri"
                  }
               },
               {
                  "name":"refresh_token",
                  "is_required":true,
                  "provided":false,
                  "is_credential":true,
                  "system_provided":true,
                  "json_schema":{
                     "type":"string"
                  }
               }
            ]
         },
         {
            "type":"discover_schema",
            "properties":[

            ]
         },
         {
            "type":"field_selection",
            "properties":[

            ]
         },
         {
            "type":"fully_configured",
            "properties":[

            ]
         }
      ]
   }
}

Form Properties

Stitch connects to a large, diverse universe of applications and data warehouses, each of which is configured differently.

The properties objects contain the properties necessary to create a source or destination object.

For sources, these properties can also be found in the source’s report card step: form.

OBJECT Amazon Aurora Source Form Property

An Amazon Aurora connection reads data from an Amazon Aurora database and corresponds to source type: platform.aurora.

OBJECT Amazon S3 CSV Source Form Property

An Amazon S3 CSV connection reads data from an Amazon S3 CSV database and corresponds to source type: platform.s3-csv.

OBJECT Amazon S3 Destination Form Property

A Amazon S3 connection writes data to a Amazon S3 database and corresponds to destination type: s3.

OBJECT Amplitude Source Form Property

Amplitude connections read data from the Amplitude API and correspond to source type: platform.amplitude.

OBJECT Bing Ads Source Form Property

Bing Ads connections read data from the Bing Ads API and correspond to source type: platform.bing-ads.

OBJECT Bronto Source Form Property

Bronto connections read data from the Bronto API and correspond to source type: platform.bronto.

OBJECT Campaign Monitor Source Form Property

Campaign Monitor connections read data from the Campaign Monitor API and correspond to source type: platform.campaign-monitor.

OBJECT Close.io Source Form Property

Close.io connections read data from the Close.io API and correspond to source type: platform.closeio.

OBJECT DoubleClick Campaign Manager Source Form Property

DoubleClick Campaign Manager connections read data from the DoubleClick Campaign Manager API and correspond to source type: platform.doubleclick-campaign-manager.

OBJECT Facebook Ads Source Form Property

Facebook Ads connections read data from the Facebook Ads API and correspond to source type: platform.facebook.

OBJECT Front Source Form Property

Front connections read data from the Front API and correspond to source type: platform.frontapp.

OBJECT FullStory Source Form Property

FullStory connections read data from the FullStory API and correspond to source type: platform.fullstory.

OBJECT GitHub Source Form Property

GitHub connections read data from the GitHub API and correspond to source type: platform.github.

OBJECT Google AdWords Source Form Property

Google AdWords connections read data from the Google AdWords API and correspond to source type: platform.adwords.

OBJECT Google CloudSQL MySQL Source Form Property

A Google CloudSQL MySQL connection reads data from a Google CloudSQL MySQL database and corresponds to source type: platform.cloudsql.

OBJECT Google CloudSQL PostgreSQL Source Form Property

A Google CloudSQL PostgreSQL connection reads data from a Google CloudSQL PostgreSQL database and corresponds to source type: platform.cloudsql_pg.

OBJECT Harvest Forecast Source Form Property

Harvest Forecast connections read data from the Harvest Forecast API and correspond to source type: platform.harvest-forecast.

OBJECT Heroku Source Form Property

A Heroku connection reads data from a Heroku database and corresponds to source type: platform.heroku_pg.

OBJECT HubSpot Source Form Property

HubSpot connections read data from the HubSpot API and correspond to source type: platform.hubspot.

OBJECT Listrak Source Form Property

Listrak connections read data from the Listrak API and correspond to source type: platform.listrak.

OBJECT MariaDB Source Form Property

A MariaDB connection reads data from a MariaDB database and corresponds to source type: platform.mariadb.

OBJECT Marketo Bulk Source Form Property

Marketo Bulk connections read data from the Marketo Bulk API and correspond to source type: platform.marketobulk.

OBJECT Marketo Source Form Property

Marketo connections read data from the Marketo API and correspond to source type: platform.marketo.

OBJECT Microsoft Azure SQL Data Warehouse Destination Form Property

A Azure SQL Data Warehouse connection writes data to a Azure SQL Data Warehouse database and corresponds to destination type: azuresql_dw.

OBJECT MySQL Source Form Property

A MySQL connection reads data from a MySQL database and corresponds to source type: platform.mysql.

OBJECT Oracle Source Form Property

A Oracle connection writes data to a Oracle database and corresponds to destination type: oracle.

OBJECT PostgreSQL Destination Form Property

A PostgreSQL connection writes data to a PostgreSQL database and corresponds to destination type: postgres.

OBJECT PostgreSQL Source Form Property

A PostgreSQL connection reads data from a PostgreSQL database and corresponds to source type: platform.postgres.

OBJECT Quick Base Source Form Property

Quick Base connections read data from the Quick Base API and correspond to source type: platform.quickbase.

OBJECT Redshift Destination Form Property

A Redshift connection writes data to a Redshift database and corresponds to destination type: redshift.

OBJECT Responsys Source Form Property

A Responsys connection reads data from a Responsys database and corresponds to source type: platform.responsys.

OBJECT Salesforce Source Form Property

Salesforce connections read data from the Salesforce API and correspond to source type: platform.salesforce.

OBJECT SendGrid Source Form Property

SendGrid connections read data from the SendGrid API and correspond to source type: platform.sendgrid.

OBJECT Shopify Source Form Property

Shopify connections read data from the Shopify API and correspond to source type: platform.shopify.

OBJECT Snowflake Destination Form Property

A Snowflake connection writes data to a Snowflake database and corresponds to destination type: snowflake.

OBJECT Stripe Source Form Property

Stripe connections read data from the Stripe API and correspond to source type: platform.stripe.

OBJECT Typeform Source Form Property

Typeform connections read data from the Typeform API and correspond to source type: platform.typeform.

OBJECT UserVoice Source Form Property

UserVoice connections read data from the UserVoice API and correspond to source type: platform.uservoice.

OBJECT Xero Source Form Property

Xero connections read data from the Xero API and correspond to source type: platform.xero.

OBJECT Yotpo Source Form Property

Yotpo connections read data from the Yotpo API and correspond to source type: platform.yotpo.

OBJECT Zendesk Source Form Property

Zendesk connections read data from the Zendesk API and correspond to source type: platform.zendesk.

OBJECT Zuora Source Form Property

Zuora connections read data from the Zuora API and correspond to source type: platform.zuora.


Destination Form Properties

Destination form properties should be sent in the connection argument when using the Create or Update a Destination endpoints.

OBJECT Amazon S3 Destination Form Property

A Amazon S3 connection writes data to a Amazon S3 database and corresponds to destination type: s3.

OBJECT Microsoft Azure SQL Data Warehouse Destination Form Property

A Azure SQL Data Warehouse connection writes data to a Azure SQL Data Warehouse database and corresponds to destination type: azuresql_dw.

OBJECT PostgreSQL Destination Form Property

A PostgreSQL connection writes data to a PostgreSQL database and corresponds to destination type: postgres.

OBJECT Redshift Destination Form Property

A Redshift connection writes data to a Redshift database and corresponds to destination type: redshift.

OBJECT Snowflake Destination Form Property

A Snowflake connection writes data to a Snowflake database and corresponds to destination type: snowflake.


OBJECT

The Amazon S3 Destination Form Property Object

A Amazon S3 connection writes data to a Amazon S3 database and corresponds to destination type: s3.

To set up an Amazon S3 destination, users will need to:

  1. Create a bucket policy that grants Stitch permission to write to the bucket
  2. Create a “challenge file” in the bucket that allows Stitch to test the connection

Refer to our Amazon S3 documentation for additional details.

Note: Attributes marked as REQUIRED must be provided in the properties argument for Creating a Destination.

csv_delimiter
STRING
OPTIONAL

Defines the delimiter used if output_file_format is csv. Possible values are:

  • , (comma)
  • | (pipe)
  • \t (tab)
csv_force_quote
BOOLEAN
OPTIONAL

If true, Stitch will place all elements of key-value pairs in quotes when output_file_format is csv.

For example: Numerical fields will appear as "123" instead of 123.

output_file_format
STRING
REQUIRED

Defines the type of file Stitch will write to the bucket. Possible values are:

  • csv, which will use CSV (.csv) files
  • jsonl, which will use JSON (.jsonl) files

For examples of what data will look like in each format, refer to our Amazon S3 documentation.

s3_bucket
STRING
REQUIRED

The name of the Amazon S3 bucket Stitch will write to.

s3_key_format_string
STRING
REQUIRED

Defines the naming convention Stitch should use when creating Object Keys. Object Keys are used to name tables when Stitch writes to the bucket.

The required elements for an Object Key are:

  • [integration_name]
  • [table_name]
  • [table_version]
  • [timestamp_loaded]

For more info on construcing an S3 Object Key, refer to our Amazon S3 documentation.

sentinel_key
STRING
OPTIONAL

Note: This should not be submitted when creating a destination. This value will be returned as part of successfully creating an Amazon S3 destination.

The sentinel key is the name the challenge file in the bucket must have. The challenge file is a blank file that Stitch uses to test the permissions for the bucket. This file must remain in the bucket even after the inital setup is complete.

Refer to our Amazon S3 documentation for additional details.

Example Object
{
 "type":"s3",
 "connection":{
   "csv_delimiter":"|",
   "csv_force_quote":true,
   "output_file_format":"csv",
   "s3_bucket":"com-stitch-s3-bucket",
   "s3_key_format_string":"[integration_name]/[table_name]/[table_version]_[timestamp_loaded].<csv|json>",
   "sentinel_key":"stitch-challenge-file-af295ad1-7a4b-4881-89dc-c9be27de13a5"
  }
}

OBJECT

The Microsoft Azure SQL Data Warehouse Destination Form Property Object

A Azure SQL Data Warehouse connection writes data to a Azure SQL Data Warehouse database and corresponds to destination type: azuresql_dw.

Note: Attributes marked as REQUIRED must be provided in the properties argument for Creating a Destination.

azure_storage_account_token
STRING
REQUIRED

An Azure Storage Access Key. This is used to access Azure Blob Storage, which Stitch uses to stage data for Polybase before loading it into an Azure SQL Data Warehouse destination.

For more info and instructions for generating this credential, refer to our Azure SQL Data Warehouse setup documentation.

azure_storage_sas_url
STRING
REQUIRED

An Azure Blob service Shared Access Signature (SAS) URL, which is used to grant Stitch restricted access to Azure Storage resources. These resources are used to load data into an Azure SQL Data Warehouse destination.

For more info and instructions for generating this credential, refer to our Azure SQL Data Warehouse setup documentation.

database
STRING
REQUIRED

The name of the logical database to connect to.

encryption_host
STRING
OPTIONAL

If using SSH encryption, the host of the SSH server. Required only if encryption_type is ssh.

encryption_port
INTEGER
OPTIONAL

If using SSH encryption, the port of the SSH server. Required only if encryption_type is ssh.

encryption_type
STRING
REQUIRED

Indicates that SSH encryption should be used to connect to the destination. Valid values are:

  • none - No encryption will be used.
  • ssh - SSH encryption will be used to connect to the destination. The SSH connection details should be submitted using the encryption_host, encryption_port, and encryption_username.
encryption_username
STRING
OPTIONAL

If using SSH encryption, the name of the SSH user. Required only if encryption_type is ssh.

host
STRING
REQUIRED

The IP address or hostname of the database server.

password
STRING
REQUIRED

The password for the user connecting to the database server. Note: This property will never be returned by the API, but it can be submitted when creating or modifying a connection.

port
INTEGER
REQUIRED

The port of the database server. The default is 1433.

ssl
BOOLEAN
OPTIONAL

If true, SSL will be used to connect to the database.

user
STRING
REQUIRED

The username of the database user.

Example Object
{
 "type":"azuresql_dw",
 "connection":{
   "azure_storage_account_token":"<AZURE_STORAGE_ACCESS_KEY>",
   "azure_storage_sas_url":"<AZURE_STORAGE_SAS_URL>",
   "database":"<DATABASE_NAME>",
   "encryption_host":"<ENCRYPTION_HOST_ADDRESS>",
   "encryption_port":<ENCRYPTION_PORT>,
   "encryption_type":"ssh",
   "encryption_username":"<ENCRYPTION_USERNAME>",
   "host":"<HOST_ADDRESS>",
   "password":"<PASSWORD>",
   "port":1433,
   "ssl":true,
   "user":"<USERNAME>"
  }
}

OBJECT

The PostgreSQL Destination Form Property Object

A PostgreSQL connection writes data to a PostgreSQL database and corresponds to destination type: postgres.

Note: Attributes marked as REQUIRED must be provided in the properties argument for Creating a Destination.

database
STRING
REQUIRED

The name of the logical database to connect to.

encryption_host
STRING
OPTIONAL

If using SSH encryption, the host of the SSH server. Required only if encryption_type is ssh.

encryption_port
INTEGER
OPTIONAL

If using SSH encryption, the port of the SSH server. Required only if encryption_type is ssh.

encryption_type
STRING
REQUIRED

Indicates that SSH encryption should be used to connect to the destination. Valid values are:

  • none - No encryption will be used.
  • ssh - SSH encryption will be used to connect to the destination. The SSH connection details should be submitted using the encryption_host, encryption_port, and encryption_username.
encryption_username
STRING
OPTIONAL

If using SSH encryption, the name of the SSH user. Required only if encryption_type is ssh.

host
STRING
REQUIRED

The IP address or hostname of the database server.

password
STRING
REQUIRED

The password for the user connecting to the database server. Note: This property will never be returned by the API, but it can be submitted when creating or modifying a connection.

port
INTEGER
REQUIRED

The port of the database server. The default is 5432.

ssl
BOOLEAN
OPTIONAL

If true, SSL will be used to connect to the database.

sslrootcert
STRING
OPTIONAL

Optional: The certificate (typically a CA or server certificate) Stitch should verify the SSL connection against. The connection will succeed only if the server’s certificate verifies against the certificate provided.

Note: Providing a certificate via this property isn’t required to use SSL. This is only if Stitch should verify the connection against a specific certificate.

user
STRING
REQUIRED

The username of the database user.

Example Object
{
 "type":"postgres",
 "connection":{
   "database":"<DATABASE_NAME>",
   "encryption_host":"<ENCRYPTION_HOST_ADDRESS>",
   "encryption_port":<ENCRYPTION_PORT>,
   "encryption_type":"ssh",
   "encryption_username":"<ENCRYPTION_USERNAME>",
   "host":"<HOST_ADDRESS>",
   "password":"<PASSWORD>",
   "port":5432,
   "ssl":true,
   "sslrootcert":"<OPTIONAL_SSL_CERTIFICATE>",
   "user":"<USERNAME>"
  }
}

OBJECT

The Redshift Destination Form Property Object

A Redshift connection writes data to a Redshift database and corresponds to destination type: redshift.

Note: Attributes marked as REQUIRED must be provided in the properties argument for Creating a Destination.

database
STRING
REQUIRED

The name of the logical database to connect to.

encryption_host
STRING
OPTIONAL

If using SSH encryption, the host of the SSH server. Required only if encryption_type is ssh.

encryption_port
INTEGER
OPTIONAL

If using SSH encryption, the port of the SSH server. Required only if encryption_type is ssh.

encryption_type
STRING
REQUIRED

Indicates that SSH encryption should be used to connect to the destination. Valid values are:

  • none - No encryption will be used.
  • ssh - SSH encryption will be used to connect to the destination. The SSH connection details should be submitted using the encryption_host, encryption_port, and encryption_username.
encryption_username
STRING
OPTIONAL

If using SSH encryption, the name of the SSH user. Required only if encryption_type is ssh.

host
STRING
REQUIRED

The IP address or hostname of the database server.

password
STRING
REQUIRED

The password for the user connecting to the database server. Note: This property will never be returned by the API, but it can be submitted when creating or modifying a connection.

port
INTEGER
REQUIRED

The port of the database server. The default is 5439.

ssl
BOOLEAN
OPTIONAL

If true, SSL will be used to connect to the database.

user
STRING
REQUIRED

The username of the database user.

Example Object
{
 "type":"redshift",
 "connection":{
   "database":"<DATABASE_NAME>",
   "encryption_host":"<ENCRYPTION_HOST_ADDRESS>",
   "encryption_port":<ENCRYPTION_PORT>,
   "encryption_type":"ssh",
   "encryption_username":"<ENCRYPTION_USERNAME>",
   "host":"<HOST_ADDRESS>",
   "password":"<PASSWORD>",
   "port":5439,
   "ssl":true,
   "user":"<USERNAME>"
  }
}

OBJECT

The Snowflake Destination Form Property Object

A Snowflake connection writes data to a Snowflake database and corresponds to destination type: snowflake.

Note: Attributes marked as REQUIRED must be provided in the properties argument for Creating a Destination.

database
STRING
REQUIRED

The name of the logical database to connect to.

host
STRING
REQUIRED

The IP address or hostname of the database server.

password
STRING
REQUIRED

The password for the user connecting to the database server. Note: This property will never be returned by the API, but it can be submitted when creating or modifying a connection.

port
INTEGER
REQUIRED

The port of the database server. The default is 443.

role
STRING
OPTIONAL

The role to use.

ssl
BOOLEAN
OPTIONAL

If true, SSL will be used to connect to the database.

user
STRING
REQUIRED

The username of the database user.

warehouse
STRING
REQUIRED

The name of the Snowflake warehouse Stitch will connect to.

Example Object
{
 "type":"snowflake",
 "connection":{
   "database":"<DATABASE_NAME>",
   "host":"<HOST_ADDRESS>",
   "password":"<PASSWORD>",
   "port":443,
   "role":"<OPTIONAL_ROLE>",
   "ssl":true,
   "user":"<USERNAME>",
   "warehouse":"<WAREHOUSE>"
  }
}

Source Form Properties

Source form properties should be sent in the properties argument when using the Create or Update a Source endpoints.

All properties should be sent as strings.

OBJECT Amazon Aurora Source Form Property

An Amazon Aurora connection reads data from an Amazon Aurora database and corresponds to source type: platform.aurora.

OBJECT Amazon S3 CSV Source Form Property

An Amazon S3 CSV connection reads data from an Amazon S3 CSV database and corresponds to source type: platform.s3-csv.

OBJECT Amplitude Source Form Property

Amplitude connections read data from the Amplitude API and correspond to source type: platform.amplitude.

OBJECT Bing Ads Source Form Property

Bing Ads connections read data from the Bing Ads API and correspond to source type: platform.bing-ads.

OBJECT Bronto Source Form Property

Bronto connections read data from the Bronto API and correspond to source type: platform.bronto.

OBJECT Campaign Monitor Source Form Property

Campaign Monitor connections read data from the Campaign Monitor API and correspond to source type: platform.campaign-monitor.

OBJECT Close.io Source Form Property

Close.io connections read data from the Close.io API and correspond to source type: platform.closeio.

OBJECT DoubleClick Campaign Manager Source Form Property

DoubleClick Campaign Manager connections read data from the DoubleClick Campaign Manager API and correspond to source type: platform.doubleclick-campaign-manager.

OBJECT Facebook Ads Source Form Property

Facebook Ads connections read data from the Facebook Ads API and correspond to source type: platform.facebook.

OBJECT Front Source Form Property

Front connections read data from the Front API and correspond to source type: platform.frontapp.

OBJECT FullStory Source Form Property

FullStory connections read data from the FullStory API and correspond to source type: platform.fullstory.

OBJECT GitHub Source Form Property

GitHub connections read data from the GitHub API and correspond to source type: platform.github.

OBJECT Google AdWords Source Form Property

Google AdWords connections read data from the Google AdWords API and correspond to source type: platform.adwords.

OBJECT Google CloudSQL MySQL Source Form Property

A Google CloudSQL MySQL connection reads data from a Google CloudSQL MySQL database and corresponds to source type: platform.cloudsql.

OBJECT Google CloudSQL PostgreSQL Source Form Property

A Google CloudSQL PostgreSQL connection reads data from a Google CloudSQL PostgreSQL database and corresponds to source type: platform.cloudsql_pg.

OBJECT Harvest Forecast Source Form Property

Harvest Forecast connections read data from the Harvest Forecast API and correspond to source type: platform.harvest-forecast.

OBJECT Heroku Source Form Property

A Heroku connection reads data from a Heroku database and corresponds to source type: platform.heroku_pg.

OBJECT HubSpot Source Form Property

HubSpot connections read data from the HubSpot API and correspond to source type: platform.hubspot.

OBJECT Listrak Source Form Property

Listrak connections read data from the Listrak API and correspond to source type: platform.listrak.

OBJECT MariaDB Source Form Property

A MariaDB connection reads data from a MariaDB database and corresponds to source type: platform.mariadb.

OBJECT Marketo Bulk Source Form Property

Marketo Bulk connections read data from the Marketo Bulk API and correspond to source type: platform.marketobulk.

OBJECT Marketo Source Form Property

Marketo connections read data from the Marketo API and correspond to source type: platform.marketo.

OBJECT MySQL Source Form Property

A MySQL connection reads data from a MySQL database and corresponds to source type: platform.mysql.

OBJECT Oracle Source Form Property

A Oracle connection writes data to a Oracle database and corresponds to destination type: oracle.

OBJECT PostgreSQL Source Form Property

A PostgreSQL connection reads data from a PostgreSQL database and corresponds to source type: platform.postgres.

OBJECT Quick Base Source Form Property

Quick Base connections read data from the Quick Base API and correspond to source type: platform.quickbase.

OBJECT Responsys Source Form Property

A Responsys connection reads data from a Responsys database and corresponds to source type: platform.responsys.

OBJECT Salesforce Source Form Property

Salesforce connections read data from the Salesforce API and correspond to source type: platform.salesforce.

OBJECT SendGrid Source Form Property

SendGrid connections read data from the SendGrid API and correspond to source type: platform.sendgrid.

OBJECT Shopify Source Form Property

Shopify connections read data from the Shopify API and correspond to source type: platform.shopify.

OBJECT Stripe Source Form Property

Stripe connections read data from the Stripe API and correspond to source type: platform.stripe.

OBJECT Typeform Source Form Property

Typeform connections read data from the Typeform API and correspond to source type: platform.typeform.

OBJECT UserVoice Source Form Property

UserVoice connections read data from the UserVoice API and correspond to source type: platform.uservoice.

OBJECT Xero Source Form Property

Xero connections read data from the Xero API and correspond to source type: platform.xero.

OBJECT Yotpo Source Form Property

Yotpo connections read data from the Yotpo API and correspond to source type: platform.yotpo.

OBJECT Zendesk Source Form Property

Zendesk connections read data from the Zendesk API and correspond to source type: platform.zendesk.

OBJECT Zuora Source Form Property

Zuora connections read data from the Zuora API and correspond to source type: platform.zuora.


OBJECT

The Amazon Aurora Source Form Property Object

An Amazon Aurora connection reads data from an Amazon Aurora database and corresponds to source type: platform.aurora.

Note: Attributes marked as REQUIRED must be provided before the source can be considered fully_configured.

anchor_time
STRING
OPTIONAL

Defines the time that frequency_in_minutes is “anchored” to, which Stitch will use to create the integration’s replication schedule. In Stitch, this is referred to as Anchor Scheduling.

This field must contain an ISO 8601-compliant date. For example: 2018-04-30T03:30:00Z

For example: If anchor_time is set to 2018-04-30T03:30:00Z and frequency_in_minutes is set to 360, Stitch will run a replication job for the integration every 360 minutes, starting at 03:30:00. This means a job would run at 09:30:00, 15:30:00, 21:30:00, etc.

database
STRING
OPTIONAL

The name of the logical database to connect to.

filter_dbs
STRING
REQUIRED

This is an internal field and is for Stitch use only.

frequency_in_minutes
STRING
REQUIRED

Defines how often, in minutes, Stitch should attempt to replicate data from Amazon Aurora. Accepted values are:

  • 30
  • 60
  • 360
  • 720
  • 1440
host
STRING
REQUIRED

The IP address or hostname of the database server.

password
STRING
REQUIRED

The password for the user connecting to the database server. Note: This property will never be returned by the API, but it can be submitted when creating or modifying a connection.

port
STRING
REQUIRED

The port of the database server. The default is 3306.

server_id
STRING
OPTIONAL

Defines the unique ID of the server that Stitch will connect to, if using Log-based (binlog) Replication.

Server IDs must be unique, as MySQL doesn’t allow replication to simultaneously occur across multiple connections using the same server ID. For more info about this setting in Stitch, refer to the MySQL documentation.

ssh
STRING
OPTIONAL

If true, an SSH tunnel will be used to connect to the database.

ssh_host
STRING
OPTIONAL

The IP address or hostname of the SSH server. This property is only required if ssh: true.

ssh_port
STRING
OPTIONAL

The port of the SSH server. This property is only required if ssh: true.

ssh_user
STRING
OPTIONAL

The username of the SSH user. This property is only required if ssh: true.

start_date
STRING
REQUIRED

The date from which Stitch should begin replicating data from Amazon Aurora. Data from this date forward will be replicated.

This field must contain an ISO 8601-compliant date, and the timestamp must be midnight. For example: 2018-01-01T00:00:00Z

use_log_based_replication
STRING
OPTIONAL

If true, Log-based Incremental Replication will be used as the default Replication Method for tables set to replicate. This choice can be overriden on individual tables at any time.

user
STRING
REQUIRED

The username of the Amazon Aurora database user.

Example Object
{
 "type":"platform.aurora",
 "properties":{
   "anchor_time":"2018-04-30T03:30:00Z",
   "database":"<DATABASE_NAME>",
   "filter_dbs":"",
   "frequency_in_minutes":"360",
   "host":"<HOST_ADDRESS>",
   "password":"<PASSWORD>",
   "port":"3306",
   "server_id":"<UNIQUE_SERVER_ID>",
   "ssh":"true",
   "ssh_host":"<SSH_HOST>",
   "ssh_port":"22",
   "ssh_user":"<SSH_USERNAME>",
   "start_date":"2018-01-10T00:00:00Z",
   "use_log_based_replication":"true",
   "user":"<USERNAME>"
   }
}

OBJECT

The Amazon S3 CSV Source Form Property Object

An Amazon S3 CSV connection reads data from an Amazon S3 CSV database and corresponds to source type: platform.s3-csv.

Note: Attributes marked as REQUIRED must be provided before the source can be considered fully_configured.

anchor_time
STRING
OPTIONAL

Defines the time that frequency_in_minutes is “anchored” to, which Stitch will use to create the integration’s replication schedule. In Stitch, this is referred to as Anchor Scheduling.

This field must contain an ISO 8601-compliant date. For example: 2018-04-30T03:30:00Z

For example: If anchor_time is set to 2018-04-30T03:30:00Z and frequency_in_minutes is set to 360, Stitch will run a replication job for the integration every 360 minutes, starting at 03:30:00. This means a job would run at 09:30:00, 15:30:00, 21:30:00, etc.

bucket
STRING
REQUIRED

The name of the bucket Stitch should replicate data from.

external_id
STRING
REQUIRED

The external ID associated with the Amazon Web Services (AWS) Identity Access Management (IAM) role used by Stitch.

In AWS, external IDs are used to increase role security when granting access to accounts that you don’t own or have administrative access to. Stitch will provide this ID when accessing Amazon S3 CSV.

frequency_in_minutes
STRING
REQUIRED

Defines how often, in minutes, Stitch should attempt to replicate data from Amazon S3 CSV. Accepted values are:

  • 30
  • 60
  • 360
  • 720
  • 1440
role_name
STRING
REQUIRED

The name of the AWS IAM role Stitch should assume when extracting data from Amazon S3. This role will have the permissions in the IAM policy associated with the role.

Refer to our Amazon S3 CSV documentation for more info about the IAM policy, role, and how to create them in AWS.

start_date
STRING
REQUIRED

The date from which Stitch should begin replicating data from Amazon S3 CSV. Data from this date forward will be replicated.

This field must contain an ISO 8601-compliant date, and the timestamp must be midnight. For example: 2018-01-01T00:00:00Z

Example Object
{
 "type":"platform.s3-csv",
 "properties":{
   "anchor_time":"2018-04-30T03:30:00Z",
   "bucket":"com-test-stitch-bucket",
   "external_id":"stitch_connection_12345",
   "frequency_in_minutes":"360",
   "role_name":"<ROLE_NAME>",
   "start_date":"2018-01-10T00:00:00Z"
   }
}

OBJECT

The Amplitude Source Form Property Object

Amplitude connections read data from the Amplitude API and correspond to source type: platform.amplitude.

Note: Attributes marked as REQUIRED must be provided before the source can be considered fully_configured.

account
STRING
REQUIRED

The account ID for the Amplitude Snowflake warehouse.

anchor_time
STRING
OPTIONAL

Defines the time that frequency_in_minutes is “anchored” to, which Stitch will use to create the integration’s replication schedule. In Stitch, this is referred to as Anchor Scheduling.

This field must contain an ISO 8601-compliant date. For example: 2018-04-30T03:30:00Z

For example: If anchor_time is set to 2018-04-30T03:30:00Z and frequency_in_minutes is set to 360, Stitch will run a replication job for the integration every 360 minutes, starting at 03:30:00. This means a job would run at 09:30:00, 15:30:00, 21:30:00, etc.

frequency_in_minutes
STRING
REQUIRED

Defines how often, in minutes, Stitch should attempt to replicate data from Amplitude. Accepted values are:

  • 30
  • 60
  • 360
  • 720
  • 1440
start_date
STRING
REQUIRED

The date from which Stitch should begin replicating data from Amplitude. Data from this date forward will be replicated.

This field must contain an ISO 8601-compliant date, and the timestamp must be midnight. For example: 2018-01-01T00:00:00Z

username
STRING
REQUIRED

The username of the Amplitude database user.

warehouse
STRING
REQUIRED

The name of the Amplitude Snowflake warehouse.

Example Object
{
 "type":"platform.amplitude",
 "properties":{
   "account":"<AMPLITUDE_SNOWFLAKE_ACCOUNT>",
   "anchor_time":"2018-04-30T03:30:00Z",
   "frequency_in_minutes":"360",
   "start_date":"2018-01-10T00:00:00Z",
   "username":"<username>",
   "warehouse":"<AMPLITUDE_WAREHOUSE>"
   }
}

OBJECT

The Bing Ads Source Form Property Object

Bing Ads connections read data from the Bing Ads API and correspond to source type: platform.bing-ads.

Note: Attributes marked as REQUIRED must be provided before the source can be considered fully_configured.

anchor_time
STRING
OPTIONAL

Defines the time that frequency_in_minutes is “anchored” to, which Stitch will use to create the integration’s replication schedule. In Stitch, this is referred to as Anchor Scheduling.

This field must contain an ISO 8601-compliant date. For example: 2018-04-30T03:30:00Z

For example: If anchor_time is set to 2018-04-30T03:30:00Z and frequency_in_minutes is set to 360, Stitch will run a replication job for the integration every 360 minutes, starting at 03:30:00. This means a job would run at 09:30:00, 15:30:00, 21:30:00, etc.

frequency_in_minutes
STRING
REQUIRED

Defines how often, in minutes, Stitch should attempt to replicate data from Bing Ads. Accepted values are:

  • 30
  • 60
  • 360
  • 720
  • 1440
start_date
STRING
REQUIRED

The date from which Stitch should begin replicating data from Bing Ads. Data from this date forward will be replicated.

This field must contain an ISO 8601-compliant date, and the timestamp must be midnight. For example: 2018-01-01T00:00:00Z

Example Object
{
 "type":"platform.bing-ads",
 "properties":{
   "anchor_time":"2018-04-30T03:30:00Z",
   "frequency_in_minutes":"360",
   "start_date":"2018-01-10T00:00:00Z"
   }
}

OBJECT

The Bronto Source Form Property Object

Bronto connections read data from the Bronto API and correspond to source type: platform.bronto.

Note: Attributes marked as REQUIRED must be provided before the source can be considered fully_configured.

anchor_time
STRING
OPTIONAL

Defines the time that frequency_in_minutes is “anchored” to, which Stitch will use to create the integration’s replication schedule. In Stitch, this is referred to as Anchor Scheduling.

This field must contain an ISO 8601-compliant date. For example: 2018-04-30T03:30:00Z

For example: If anchor_time is set to 2018-04-30T03:30:00Z and frequency_in_minutes is set to 360, Stitch will run a replication job for the integration every 360 minutes, starting at 03:30:00. This means a job would run at 09:30:00, 15:30:00, 21:30:00, etc.

frequency_in_minutes
STRING
REQUIRED

Defines how often, in minutes, Stitch should attempt to replicate data from Bronto. Accepted values are:

  • 30
  • 60
  • 360
  • 720
  • 1440
start_date
STRING
REQUIRED

The date from which Stitch should begin replicating data from Bronto. Data from this date forward will be replicated.

This field must contain an ISO 8601-compliant date, and the timestamp must be midnight. For example: 2018-01-01T00:00:00Z

token
STRING
REQUIRED

The API token for the Bronto account Stitch should replicate data from.

Example Object
{
 "type":"platform.bronto",
 "properties":{
   "anchor_time":"2018-04-30T03:30:00Z",
   "frequency_in_minutes":"360",
   "start_date":"2018-01-10T00:00:00Z",
   "token":"<API_TOKEN>"
   }
}

OBJECT

The Campaign Monitor Source Form Property Object

Campaign Monitor connections read data from the Campaign Monitor API and correspond to source type: platform.campaign-monitor.

Note: Attributes marked as REQUIRED must be provided before the source can be considered fully_configured.

anchor_time
STRING
OPTIONAL

Defines the time that frequency_in_minutes is “anchored” to, which Stitch will use to create the integration’s replication schedule. In Stitch, this is referred to as Anchor Scheduling.

This field must contain an ISO 8601-compliant date. For example: 2018-04-30T03:30:00Z

For example: If anchor_time is set to 2018-04-30T03:30:00Z and frequency_in_minutes is set to 360, Stitch will run a replication job for the integration every 360 minutes, starting at 03:30:00. This means a job would run at 09:30:00, 15:30:00, 21:30:00, etc.

client_id
STRING
REQUIRED

The user’s Campaign Monitor API client ID. This can be found in the Campaign Monitor app in Account Settings > API keys.

frequency_in_minutes
STRING
REQUIRED

Defines how often, in minutes, Stitch should attempt to replicate data from Campaign Monitor. Accepted values are:

  • 30
  • 60
  • 360
  • 720
  • 1440
start_date
STRING
REQUIRED

The date from which Stitch should begin replicating data from Campaign Monitor. Data from this date forward will be replicated.

This field must contain an ISO 8601-compliant date, and the timestamp must be midnight. For example: 2018-01-01T00:00:00Z

Example Object
{
 "type":"platform.campaign-monitor",
 "properties":{
   "anchor_time":"2018-04-30T03:30:00Z",
   "client_id":"<CAMPAIGN_MONITOR_CLIENT_ID>",
   "frequency_in_minutes":"360",
   "start_date":"2018-01-10T00:00:00Z"
   }
}

OBJECT

The Close.io Source Form Property Object

Close.io connections read data from the Close.io API and correspond to source type: platform.closeio.

Note: Attributes marked as REQUIRED must be provided before the source can be considered fully_configured.

anchor_time
STRING
OPTIONAL

Defines the time that frequency_in_minutes is “anchored” to, which Stitch will use to create the integration’s replication schedule. In Stitch, this is referred to as Anchor Scheduling.

This field must contain an ISO 8601-compliant date. For example: 2018-04-30T03:30:00Z

For example: If anchor_time is set to 2018-04-30T03:30:00Z and frequency_in_minutes is set to 360, Stitch will run a replication job for the integration every 360 minutes, starting at 03:30:00. This means a job would run at 09:30:00, 15:30:00, 21:30:00, etc.

api_key
STRING
REQUIRED

The user’s API key. API keys can be generated in by navigating to Settings > Your API Keys.

frequency_in_minutes
STRING
REQUIRED

Defines how often, in minutes, Stitch should attempt to replicate data from Close.io. Accepted values are:

  • 30
  • 60
  • 360
  • 720
  • 1440
start_date
STRING
REQUIRED

The date from which Stitch should begin replicating data from Close.io. Data from this date forward will be replicated.

This field must contain an ISO 8601-compliant date, and the timestamp must be midnight. For example: 2018-01-01T00:00:00Z

Example Object
{
 "type":"platform.closeio",
 "properties":{
   "anchor_time":"2018-04-30T03:30:00Z",
   "api_key":"<API_KEY>",
   "frequency_in_minutes":"360",
   "start_date":"2018-01-10T00:00:00Z"
   }
}

OBJECT

The DoubleClick Campaign Manager Source Form Property Object

DoubleClick Campaign Manager connections read data from the DoubleClick Campaign Manager API and correspond to source type: platform.doubleclick-campaign-manager.

Note: Attributes marked as REQUIRED must be provided before the source can be considered fully_configured.

anchor_time
STRING
OPTIONAL

Defines the time that frequency_in_minutes is “anchored” to, which Stitch will use to create the integration’s replication schedule. In Stitch, this is referred to as Anchor Scheduling.

This field must contain an ISO 8601-compliant date. For example: 2018-04-30T03:30:00Z

For example: If anchor_time is set to 2018-04-30T03:30:00Z and frequency_in_minutes is set to 360, Stitch will run a replication job for the integration every 360 minutes, starting at 03:30:00. This means a job would run at 09:30:00, 15:30:00, 21:30:00, etc.

frequency_in_minutes
STRING
REQUIRED

Defines how often, in minutes, Stitch should attempt to replicate data from DoubleClick Campaign Manager. Accepted values are:

  • 30
  • 60
  • 360
  • 720
  • 1440
Example Object
{
 "type":"platform.doubleclick-campaign-manager",
 "properties":{
   "anchor_time":"2018-04-30T03:30:00Z",
   "frequency_in_minutes":"360"
   }
}

OBJECT

The Facebook Ads Source Form Property Object

Facebook Ads connections read data from the Facebook Ads API and correspond to source type: platform.facebook.

Note: Attributes marked as REQUIRED must be provided before the source can be considered fully_configured.

anchor_time
STRING
OPTIONAL

Defines the time that frequency_in_minutes is “anchored” to, which Stitch will use to create the integration’s replication schedule. In Stitch, this is referred to as Anchor Scheduling.

This field must contain an ISO 8601-compliant date. For example: 2018-04-30T03:30:00Z

For example: If anchor_time is set to 2018-04-30T03:30:00Z and frequency_in_minutes is set to 360, Stitch will run a replication job for the integration every 360 minutes, starting at 03:30:00. This means a job would run at 09:30:00, 15:30:00, 21:30:00, etc.

attribution_window
STRING
OPTIONAL

Defines the number, in days, Stitch should use as an attribution window. An attribution window is the period of time for attributing results to ads and the lookback period after those actions occur during which ad results are counted.

Accepted values, in days:

  • 1
  • 7
  • 28

To ensure your Facebook Ads and Stitch settings align, we recommend using the same attribution window in Stitch that you use in Facebook Ads. For example: If the attribution window is 28 days in Facebook, this value should be 28.

If your click and view windows differ, you should select the greater of the two. For example: If clicks have a window of 7 days and views have a window of 1 day, you should enter 7 for this setting.

frequency_in_minutes
STRING
REQUIRED

Defines how often, in minutes, Stitch should attempt to replicate data from Facebook Ads. Accepted values are:

  • 30
  • 60
  • 360
  • 720
  • 1440
include_deleted
STRING
OPTIONAL

If true, Stitch will replicate data for deleted campaigns, ads, and adsets. Note: This data will not be included alongside insights data.

start_date
STRING
REQUIRED

The date from which Stitch should begin replicating data from Facebook Ads. Data from this date forward will be replicated.

This field must contain an ISO 8601-compliant date, and the timestamp must be midnight. For example: 2018-01-01T00:00:00Z

Example Object
{
 "type":"platform.facebook",
 "properties":{
   "anchor_time":"2018-04-30T03:30:00Z",
   "attribution_window":"7",
   "frequency_in_minutes":"360",
   "include_deleted":"true",
   "start_date":"2018-01-10T00:00:00Z"
   }
}

OBJECT

The Front Source Form Property Object

Front connections read data from the Front API and correspond to source type: platform.frontapp.

Note: To use this integration, the user must have a Premium or Enterprise Front plan. These plans include API access, which is required to use Stitch’s Front integration.

Note: Attributes marked as REQUIRED must be provided before the source can be considered fully_configured.

anchor_time
STRING
OPTIONAL

Defines the time that frequency_in_minutes is “anchored” to, which Stitch will use to create the integration’s replication schedule. In Stitch, this is referred to as Anchor Scheduling.

This field must contain an ISO 8601-compliant date. For example: 2018-04-30T03:30:00Z

For example: If anchor_time is set to 2018-04-30T03:30:00Z and frequency_in_minutes is set to 360, Stitch will run a replication job for the integration every 360 minutes, starting at 03:30:00. This means a job would run at 09:30:00, 15:30:00, 21:30:00, etc.

frequency_in_minutes
STRING
REQUIRED

Defines how often, in minutes, Stitch should attempt to replicate data from Front. Accepted values are:

  • 30
  • 60
  • 360
  • 720
  • 1440
incremental_range
STRING
REQUIRED

Defines how data will be aggregated. Accepted values are daily or hourly.

start_date
STRING
REQUIRED

The date from which Stitch should begin replicating data from Front. Data from this date forward will be replicated.

This field must contain an ISO 8601-compliant date, and the timestamp must be midnight. For example: 2018-01-01T00:00:00Z

token
STRING
REQUIRED

The user’s Front API token. Refer to the Front setup guide for instructions on how to generate this token.

Example Object
{
 "type":"platform.frontapp",
 "properties":{
   "anchor_time":"2018-04-30T03:30:00Z",
   "frequency_in_minutes":"360",
   "incremental_range":"daily",
   "start_date":"2018-01-10T00:00:00Z",
   "token":"<API_TOKEN>"
   }
}

OBJECT

The FullStory Source Form Property Object

FullStory connections read data from the FullStory API and correspond to source type: platform.fullstory.

Note: To use this integration, the user must have a FullStory account with the FullStory Data Export Pack add-on. This is a paid addition that allows users to export raw event data, and is required to use FullStory’s Data Export REST API.

Note: Attributes marked as REQUIRED must be provided before the source can be considered fully_configured.

anchor_time
STRING
OPTIONAL

Defines the time that frequency_in_minutes is “anchored” to, which Stitch will use to create the integration’s replication schedule. In Stitch, this is referred to as Anchor Scheduling.

This field must contain an ISO 8601-compliant date. For example: 2018-04-30T03:30:00Z

For example: If anchor_time is set to 2018-04-30T03:30:00Z and frequency_in_minutes is set to 360, Stitch will run a replication job for the integration every 360 minutes, starting at 03:30:00. This means a job would run at 09:30:00, 15:30:00, 21:30:00, etc.

api_key
STRING
REQUIRED

A FullStory API key, used to authenticate to FullStory’s Data Export API.

frequency_in_minutes
STRING
REQUIRED

Defines how often, in minutes, Stitch should attempt to replicate data from FullStory. Accepted values are:

  • 30
  • 60
  • 360
  • 720
  • 1440
start_date
STRING
REQUIRED

The date from which Stitch should begin replicating data from FullStory. Data from this date forward will be replicated.

This field must contain an ISO 8601-compliant date, and the timestamp must be midnight. For example: 2018-01-01T00:00:00Z

Example Object
{
 "type":"platform.fullstory",
 "properties":{
   "anchor_time":"2018-04-30T03:30:00Z",
   "api_key":"<API_KEY>",
   "frequency_in_minutes":"360",
   "start_date":"2018-01-10T00:00:00Z"
   }
}

OBJECT

The GitHub Source Form Property Object

GitHub connections read data from the GitHub API and correspond to source type: platform.github.

Note: Attributes marked as REQUIRED must be provided before the source can be considered fully_configured.