About the GraphQL API

Postman

Postman is a platform for building and using APIs. ActiveCampaign provides Postman collections for various APIs to enable quicker and easier development. The eComm GraphQL API Postman collection can be accessed using the following link:

Run In Postman

Authentication

The eComm GraphQL API follows the same method as the existing v3 REST API using an API Key with an Api-Token HTTP header.

Root endpoint

The eComm GraphQL API has the same base URL as the existing v3 REST API but uses /ecom/graphql as the path to specify the API. Base URLs will vary, but the overall URL structure will look like:

https://<your-account>.api-us1.com/api/3/ecom/graphql

All calls should be made over HTTPS and the URL will remain the same for any operation.

Rate Limits

The eComm GraphQL API follows the same rate limit restriction as the existing v3 REST API of 5 requests per second per account.

Introspection

GraphQL supports introspection which mean you can query the API schema for documentation about itself. There are various queries you can run to return specific details of the API.

  • The following query will return all types defined in the schema along with details of each:
query { __schema { types { name kind description fields { name } } } }
  • The following query will return the details of any specific type:
query { __type(name: "Order") { name kind description fields { name } } }
  • The following query will fully introspect the API:
query IntrospectionQuery { schema { queryType { name } mutationType { name } subscriptionType { name } types { ...FullType } directives { name description locations args { ...InputValue } } } } fragment FullType on Type { kind name description fields(includeDeprecated: true) { name description args { ...InputValue } type { ...TypeRef } isDeprecated deprecationReason } inputFields { ...InputValue } interfaces { ...TypeRef } enumValues(includeDeprecated: true) { name description isDeprecated deprecationReason } possibleTypes { ...TypeRef } } fragment InputValue on InputValue { name description type { ...TypeRef } defaultValue } fragment TypeRef on Type { kind name ofType { kind name ofType { kind name ofType { kind name ofType { kind name ofType { kind name ofType { kind name ofType { kind name } } } } } } } }