{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"9673da9a-648e-81c1-07e5-525cde9d6d6a","name":"Outseta REST API v1 ","description":"# Outseta REST API Documentation\n\nThe Outseta REST API enables customers to perform a variety of powerful tasks such as creating and updating people, accounts, subscriptions and invoices. Outseta uses standard HTTP protocols within a compliant architecture that is simple to integrate. You can use the API both on the client or the server side; see instructions for authorization for each scenario in the getting started section.\n\nThe easiest way to get started with the API is to click the **Run in Postman** button present at the top of the documentation page and use the Postman App to send requests. Make sure to update the **Outseta** environment information at the top right corner of Postman so that it can be applied automatically when you send requests.\n\n## Getting Started\n\nYou need to include a valid authorization token to send requests to the API endpoints.\n\n### Server Side\n\nTo construct the authorization token you need to create an API key under Settings >> Integrations >> API Keys. Make sure to record the secret key when you create the new API Key. Then construct the token as follows:\n\n\"Outseta \\[APIKey\\]:\\[SecretKey\\]\"\n\n**Example:**\n\nOutseta ce08fd5a-e1ee-4472-9c5f-b7575d8369b2:74fc1d2242a4eb7336d34b0e40cfbc5f\n\n### Client Side\n\nIf you plan to use the API from the client side do NOT use the API keys as those are unsecure on the client side and can be easily copied. Instead construct the authorization token by calling the Get Auth API from the server side with your Outseta username and password. Then construct the authorization token as follows:\n\n\"bearer \\[access_token\\]\"\n\n**Example:**\n\nbearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6InhObnZiLWxaWDJWNHdKTFctaVdreXBSR0cwVSJ9.eyJ1bmlxdWVfbmFtZSI6ImRpbWl0cmlzQG91dHNldGEuY29tIiwiZ2l2ZW5fbmFtZSI6IkRpbWl0cmlzIiwiZmFtaWx5X25hbWUiOiJHZW9yZ2Frb3BvdWxvcyIsImVtYWlsIjoiZGltaXRyaXNAb3V0c2V0YS5jb20iLCJuYW1laWQiOiI0WFFZcVFQQiIsIm91dHNldGE6YWNjb3VudFVpZCI6IndabU5abTJPIiwib3V0c2V0YTphY2NvdW50Q2xpZW50SWRlbnRpZmllciI6IjEiLCJ\n\n## API Guidelines\n\n1. For the URL use your outseta domain name and append /api/v1 https://\\[yourdomain\\].outseta.com/api/v1\n    \n2. The API will only respond to secured communication done over HTTPS. HTTP requests will be sent a 301 redirect to corresponding HTTPS resources.\n    \n3. Response to every request is sent in JSON format. In case the API request results in an error, it is represented by an \"error\": {} key in the JSON response.\n    \n4. The request method (verb) determines the nature of action you intend to perform. A request made using the GET method implies that you want to fetch something from Outseta, and POST implies you want to save something new to Outseta.\n    \n5. The API calls will respond with appropriate HTTP status codes for all requests. A 200 OK indicates all went well, while 4XX or 5XX response codes indicate an error from the requesting client or our API servers respectively.\n    \n6. Use \"donotlog=1\" as part of the querystring on any API call where you don't want to trigger the action performed being logged in the activity log.\n    \n\n## Get all API conventions\n\nYou can apply filtering by adding additional information on the querystring on the methods that retrieve all the entities in a domain (e.g., Get all accounts, Get all people). The conventions are as follows:\n\n### Field Selection\n\nWhen you make an API request, you'll automatically get all the basic information from the main object and its immediate child objects. Think of it as getting the \"standard package\" of data.\n\nChange this behaviour by using the `fields` query param:\n\n- **Go deeper**: Want information that's nested further down? The `fields` param lets you request fields lower down in the object tree: `?fields=CurrentSubscription.Plan.*`\n    \n- **Go lighter**: Want just the essentials for faster performance? The `fields` param lets you request only the root-level information: `?fields=Uid,Name`\n    \n\nOr do a combination: `?fields=Uid,Name,CurrentSubscription.Plan.Uid`\n\n**Wildcard**: Use `*` to get all fields in an object: `?fields=*` or `?fields=CurrentSubscription.Plan.*`\n\n#### Examples\n\n```\n<!-- Get the current subscription plan uid   -->\nGET https://[your-domain].outseta.com/api/v1/crm/accounts/[uid-of-an-account]?fields=CurrentSubscription.Plan.Uid\n\n<!-- Get the account UID and the plan UID for a list of accounts -->\nGET https://[your-domain].outseta.com/api/v1/crm/accounts?fields=Uid,CurrentSubscription.Plan.Uid\n\n<!-- Get the full plan object for an account's current subscription -->\nGET https://[your-domain].outseta.com/api/v1/crm/accounts/[uid-of-an-account]?fields=CurrentSubscription.Plan.*\n\n<!-- Get the account UID and the plan UID for a person's current subscription(s) -->\nGET https://[your-domain].outseta.com/api/v1/crm/people/[uid-of-a-person]?fields=Uid,PersonAccount.Account.CurrentSubscription.Plan.Uid\n```\n\n### Pagination\n\n```\noffset=defines which page to start \nlimit=number of records to return for each page\n?offset=0&limit=20 (returns results 1-20)\n?offset=1&limit=20 (returns results 21-40)\n\n ```\n\nIf your request includes fields from a child object you will be limited to retrieving 25 items in a single request. The maximum number of results returned in requests not requesting child object fields is 100 items.\n\n### Sorting\n\n```\nSorts the resultset based on the property and sort clause defined\n?orderBy=PropertyName+DESC\n\n ```\n\n### Filtering\n\nFilter your data using query parameters to find specific records. You can use exact matches or comparison operators for more advanced filtering scenarios.\n\n#### Basic Filtering\n\nFilter on any field using the field as the query parameters: `?Email=john@example.com`\n\n#### Comparison Operators\n\nFor advanced filtering, append comparison operators to field names:\n\n| Operator | Description | Example |\n| --- | --- | --- |\n| `__gt` | Greater than | `Created__gt=2024-01-01` |\n| `__gte` | Greater than or equal | `Amount__gte=100` |\n| `__lt` | Less than | `Created__lt=2024-12-31` |\n| `__lte` | Less than or equal | `Amount__lte=500` |\n| `__ne` | Not equal | `Status__ne=Active` |\n| `__isnull` | Is null (true/false) | `ProfileImageS3Url__isnull=true` |\n\n#### Examples\n\n```\n<!-- Date Filtering   -->\nGET https://[your-domain].outseta.com/api/v1/crm/accounts?Created__gt=2024-01-01\nGET https://[your-domain].outseta.com/api/v1/billing/subscriptions?EndDate__lt=2024-08-01\n\n<!-- Numeric Filtering   -->\nGET https://[your-domain].outseta.com/api/v1/billing/invoices?Amount__gte=1000\nGET https://[your-domain].outseta.com/api/v1/billing/plans?MonthlyRate__lt=50\n\n<!-- Status Filtering   -->\nGET https://[your-domain].outseta.com/api/v1/crm/accounts?AccountStageLabel__ne=Cancelled\n\n<!-- Null Value Filtering   -->\nGET https://[your-domain].outseta.com/api/v1/crm/people?ProfileImageS3Url__isnull=true\nGET https://[your-domain].outseta.com/api/v1/crm/accounts?ClientIdentifier__isnull=false\n\n<!-- Multiple Filters   -->\nGET https://[your-domain].outseta.com/api/v1/billing/subscriptions?\n  StartDate__gte=2024-01-01&\n  Rate__lt=100&\n  DiscountCode__isnull=false\n\n<!-- Complex Example with Field Selection   -->\nGET https://[your-domain].outseta.com/api/v1/billing/subscriptions?\n  Rate__gte=500&\n  DiscountCode__isnull=false&\n  fields=Uid,Amount,StartDate,DiscountCode,Plan.Name\n ```\n\n## Acceptable use\n\nRequests authorized by an API Key should not exceed 4 requests/second.\n\n## Support\n\nFor help regarding the Outseta API please email [support@outseta.com](https://mailto:support@outseta.com)\n\n## API Reference","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"3613332","collectionId":"9673da9a-648e-81c1-07e5-525cde9d6d6a","publishedId":"7TNfr6k","public":true,"publicUrl":"https://documenter-api.postman.tech/view/3613332/7TNfr6k","privateUrl":"https://go.postman.co/documentation/3613332-9673da9a-648e-81c1-07e5-525cde9d6d6a","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"EF5B25"},"documentationLayout":"classic-double-column","version":"8.10.1","publishDate":"2020-01-22T18:47:56.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{},"logos":{}},"statusCode":200},"environments":[],"user":{"authenticated":false,"permissions":{"publish":false}},"run":{"button":{"js":"https://run.pstmn.io/button.js","css":"https://run.pstmn.io/button.css"}},"web":"https://www.getpostman.com/","team":{"logo":"https://res.cloudinary.com/postman/image/upload/t_team_logo_pubdoc/v1/team/768118b36f06c94b0306958b980558e6915839447e859fe16906e29d683976f0","favicon":""},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[],"environmentOptions":[{"value":"0","label":"No Environment"}],"canonicalUrl":"https://documenter.gw.postman.com/view/metadata/7TNfr6k"}