Endgrate Types

What are endgrate_types?

Schemas and endgrate_types are highly interrelated. Schema definitions usually fall under an endgrate_type, which is a unique keyword such as crm-contact or crm-company that encapsulates a given resource class. endgrate_types typically consist of a category identifier such as crm or accounting, and a resource name, such as contact or company.

Integration providers have different endgrate_types. For example, an integration provider like HubSpot supports crm-contact and crm-company, but an integration provider like QuickBooks doesn't and instead supports accounting-invoice and accounting-customer.

When endgrate_types are specified in schemas on the POST api/session/initiate call, upon session redirect, the end user will only be prompted to choose integration providers that support the given endgrate_types.

When endgrate_types are not specified, it is usually because you want to push/pull across integration provider categories, such as pulling in people information from both ecommerce apps and CRM apps, or you want to push/pull a specfic custom object that Endgrate does not have a predefined endgrate_type for. In either case, the title of the schema must be populated in order to uniquely identify the schema. The end user will be prompted to choose what specified integration provider resource corresponds with the schema title.

Default endgrate_type Schemas

If you do not want to define your own schemas, Endgrate provides default, standardized schemas for most endgrate_types. To use them, define your schemas simply as:

  "endgrate_type": "category-resource_name"



If you choose to use a default endgrate_type schema, be prepared to pull in and push out data that conforms to the default schema.

In the subpages attached to this main page, you can browse the categories of integrations that Endgrate supports along with their corresponding endgrate_types and default schemas.


Some endgrate types support extra parameters you can pass in during a transfer (either through POST api/transfer/pull or POST api/transfer/push) through the params attribute.

The params attribute is the object used to specify these parameters. For example, you might want to filter certain results, such as filtering invoices by a customer ID when pulling data. In that case, the params object might look something like:

"params": {
  "customer_id": "xxx"

Eachendgrate_type that supports the params object will have a unique format you must specify the object in, detailed in the subpages attached to this main page.

What’s Next