The Outseta REST API enables customers to perform powerful tasks such as creating and updating people, accounts, subscriptions, and invoices.

Please visit the Outseta REST API documentation site for the latest information.

Admin API

Create a new API Key and Secret at Settings > Integrations > API Keys

  • Give the key a name and make sure to note down both the key and the secret in a secure place such as 1Password
  • 💡 The API Key and Secret Key combined give you full access to all data in you account, use with caution.
  • ⚠️ Never use these values in client-side environments such as Wized, custom script on a page, in client React components, etc. 

Getting to know the API

In your API client of choice (Postman, RapidAPI, custom code), make the following requests with the Authorization header set to "Outseta [api-key]:[secret-key]".

Warm Up

Let's start by requesting a list of account, one account, a list of people and one person.

💡 Make sure to look at the responses to get a sense of the data structures you'll find in Outseta.

  • Get a list of people:
    • GET https://[your-domain].outseta.com/api/v1/crm/people
    • The response has the first 25 people under items and the pagination information under metadata.
  • Get a specific person: 
    • GET https://[your-domain].outseta.com/api/v1/crm/people/[uid-of-a-person]
    • The response is the person matching the provided UID.
  • Get a list of accounts: 
    • GET https://[your-domain].outseta.com/api/v1/crm/accounts
    • The response has the first 25 accounts under items and the pagination information under metadata.
  • Get a specific account: 
    • GET https://[your-domain].outseta.com/api/v1/crm/accounts/[uid-of-an-account]
    • The response is the account matching the provided UID.

Filtering

You can filter on any property using query params:

  • Get all people with the specified email:
    • GET https://[your-domain].outseta.com/api/v1/crm/people/?Email=[email-of-a-person]
    • The response has the person matching the provided email under items and the pagination information under metadata. This will always be an array with one person or an empty array, as people cannot share an email address.
  • Get a list of trialing accounts:
    • GET https://[your-domain].outseta.com/api/v1/crm/accounts/?AccountStage=2
    • The response has the first 25 trial accounts under items , and the pagination information under metadata. All account stages are documented in the Account API docs.
  • Get a list of all accounts currently subscribed to the specified plan:
    • GET https://[your-domain].outseta.com/api/v1/crm/accounts/?CurrentSubscription.Plan.Uid=[uid-of-a-plan]

Nested data

By default, requests will return all fields from the requested object and its child objects. After that, the referenced objects will be null. For instance, Plan is null under CurrentSubscription and Subscriptions when requesting accounts.

To include nested data, use the query param fields configured with the path to the data you'd like to extract.

  • Get the plan UID for an account's current subscription:
    • GET https://[your-domain].outseta.com/api/v1/crm/accounts/[uid-of-an-account]?fields=CurrentSubscription.Plan.Uid
    • The response will include only the plan UID for the matching account.
  • Get the account UID and the plan UID for a list of accounts:
    • https://[your-domain].outseta.com/api/v1/crm/accounts?fields=Uid,CurrentSubscription.Plan.Uid
  • Get the plan info for an account's current subscription:
    • https://[your-domain].outseta.com/api/v1/crm/accounts/[uid-of-an-account]?fields=CurrentSubscription.Plan.*
    • The response will include only the plan information for the matching account.
  • Get the account UID and the plan UID  for a person's current subscription(s):
    • https://[your-domain].outseta.com/api/v1/crm/people/[uid-of-a-person]?fields=Uid,PersonAccount.Account.CurrentSubscription.Plan.Uid

Digging into PersonAccount

All of the responses above contain a PersonAccount-object list on its items. However, you might feel they lack helpful information, so let's dig into how to get information about a person through the account endpoint, and vice versa.

The PersonAccount is an array of objects mapping between a Person object and an Account object.

When you call the API to get an account, it can retrieve the people associated with it. To do so, you'll need to "expand" the Person-object, or in other words, add the PersonAccount.Person.* to your fields parameter, together with *,PersonAccount.* to keep getting the account's root info and the PersonAccount root info.

  • GET https://[your-domain].outseta.com/api/v1/crm/accounts/?fields=*,PersonAccount.*,PersonAccount.Person.*
    • The response will now include all information about the people associated with each account.

When you call the API to get a person, it can retrieve the accounts associated with it. To do so, you'll need to "expand" the Account-object, or in other words, add the PersonAccount.Account.* to your fields parameter, together with *,PersonAccount.* to keep getting the account's root info and the PersonAccount root info.

  • GET https://[your-domain].outseta.com/api/v1/crm/people/?fields=*,PersonAccount.*,PersonAccount.Account.*
    • The response will now include all information about the accounts associated with each person
  •