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 undermetadata
.
- GET
- 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
- 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 undermetadata
.
- GET
- 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.
- GET
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 undermetadata
. This will always be an array with one person or an empty array, as people cannot share an email address.
- GET
- 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 undermetadata
. All account stages are documented in the Account API docs.
- GET
- 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]
- GET
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
- 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