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]" after creating at least one account.

Warm Up

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

  • 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 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 https://[your-domain].outseta.com/api/v1/crm/people/[uid-of-a-person]
    • The response is the person matching the provided uid.
  • 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 https://[your-domain].outseta.com/api/v1/crm/accounts/[uid-of-an-account]
    • The response is the account matching the provided 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.

This pattern also works with filters:

  • GET https://[your-domain].outseta.com/api/v1/crm/accounts/?PersonAccount.Person.Email=[email-of-a-person]
    • The response will only contain accounts associated with the person associated with the provided email.
  • GET https://[your-domain].outseta.com/api/v1/crm/accounts/?PersonAccount.Person.Email=[email-of-a-person]&fields=*,PersonAccount.*,PersonAccount.Person.*
    • The response will contain the same accounts as above and all the information about the people associated with them.