{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"a93c2dc8-74ee-40d7-8e5c-734a0b0c7fec","name":"ClientTrack API","description":"The ClientTrack API (CTAPI) enables you to interact with ClientTrack programmatically. Use this API to build apps, script interactions with ClientTrack, or develop any other type of integration. This page documents the REST resources available.\n\nClient development that consumes CTAPI should follow best practices with resilience. Eccovia has many redundancies in place to maximize API service uptime however client developed workflows should gracefully handle service interrupts. This includes leveraging service queues, orchestrated retries and asynchronous processing whenever possible. Eccovia will not be held liable for software design that does not encapsulate these principles.\n\n---\n\n# Setup\n\nTo access this collection, click on the \"Run in Postman\" button at the top left corner. You can either run them in your browser or download the collection into your local Postman.\n\n---\n\n# Types of Keys\n\n### Admin Key\n\nAn Admin Key will allow access to any object in the ClientTrack environment. It will also allow updates to any editable field, including fields like OrgId, CreatedBy, CreatedDate, etc.\n\nThis key is best used for users that have a strong knowledge of the object in their environment, and aren't concerned about causing data issues.\n\n### User Key\n\nA User Key will restrict the records you are able to access based on the User and Organization permissions configured in ClientTrack. One important difference is that by default you will have access to all Organizations that you're able to log into. This can be restricted to a single org with the OrgId header.\n\nCreating and editing records will also be restricted based on your key. You will only be able to supply OrgId's for a valid org associated with your user. CreatedBy and UpdatedBy will also be Auto Generated based on your UserId.\n\nThis is recommended for users that should not have access outside of specific orgs. A new user can be created for a specific key to fine tune access, or existing users could be given keys with the same level of access as they have in ClientTrack.\n\nFor more information about Organization Security work with your ClientTrack representative.\n\n### Organization Id\n\nThe organization id is used to limit results to a single organization, including any sharing agreements. This header only applies to User Keys.\n\n#### Header\n\n> OrgId: {Insert Org Id} \n  \n\n---\n\n# Authentication\n\nEvery request must contain a subscription key **AND** an API key token. These can be obtained via your account manager. Your keys carry many privileges, so be sure to keep them secure. Do not share your secret API keys in publicly accessible areas including shared code repositories. Contact your account manager if a key needs to be regenerated. To test authentication use our Auth Test endpoint below.\n\n### Subscription Key\n\nThe subscription key can be sent either via header or as a query parameter.\n\n#### Header\n\n> Ocp-Apim-Subscription-Key: {{subscriptionKey}} \n  \n\n#### Query Parameter\n\n> ?subscription-key={{subscriptionKey}} \n  \n\n### API key token\n\nThe API key is sent as an Authorization Header.\n\n> Authorization: ApiKey {Insert Api Key} \n  \n\n---\n\n# SSL/TLS support\n\nAll API requests must be made over HTTPS and must include a Subscription Key AND API Key Token. Calls made over plain HTTP will fail.\n\n---\n\n# Endpoints\n\nCalls to Client Track API are broken into categories:\n\n1. Generic  \n    \\* CRQL (ClientTrack REST Query Language) - SQL-like queries. Returns an array of results.  \n    \\* CTObjects - Named after the table name they refer to. Similar to CRUD operations for get, insert and update.\n2. Non-Generic - RESTful endpoints to manage resources.\n    \n\n---\n\n# HTTP Response Codes and Errors\n\nCTAPI attempts to return appropriate HTTP status codes for every request.\n\n### HTTP Status Codes\n\n\\* **200 OK**: Success!  \n\\* **201 Created**: Success, and a new object was created as a result! This is typically returned from POST requests.  \n\\* **202 Accepted**: The request was successfully received but may not have been acted upon yet. The response message may contain a status URI.  \n\\* **400 Bad Request**: The request is invalid. The response message explains why.  \n\\* **401 Unauthorized**: Authentication credentials are missing or incorrect. The response message explains why.  \n\\* **404 Not Found**: The URI requested is invalid or the CTObject requested does not exists.  \n\\* **500 Server Error**: Something bad and unexpected happened.  \n\\* **502 Bad Gateway**: The CTAPI service is temporarily down.\n\n---","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"21690639","collectionId":"a93c2dc8-74ee-40d7-8e5c-734a0b0c7fec","publishedId":"2s93ebSAQH","public":true,"publicUrl":"https://apidoc.eccovia.com","privateUrl":"https://go.postman.co/documentation/21690639-a93c2dc8-74ee-40d7-8e5c-734a0b0c7fec","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"documentationLayout":"classic-double-column","customisation":{"metaTags":[{"name":"description","value":""},{"name":"title","value":""}],"appearance":{"default":"light","themes":[{"name":"dark","logo":null,"colors":{"top-bar":"212121","right-sidebar":"303030","highlight":"FF6C37"}},{"name":"light","logo":null,"colors":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"}}]}},"version":"8.10.1","publishDate":"2023-05-10T19:22:58.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{"title":"","description":""},"logos":{"logoLight":null,"logoDark":null}},"statusCode":200},"environments":[{"name":"Prod","id":"a730de35-07ee-49b7-bd6f-85ab9038faa9","owner":"12369372","values":[{"key":"Protocol","value":"https","enabled":true,"type":"default"},{"key":"CTAPIHost","value":"api.clienttrack.net","enabled":true,"type":"default"},{"key":"subscriptionKey","value":"{Insert Subscription Key}","enabled":true,"type":"default"}],"published":true}],"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":"https://eccovia.com/favicon.ico"},"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"},{"label":"Prod","value":"12369372-a730de35-07ee-49b7-bd6f-85ab9038faa9"}],"canonicalUrl":"https://apidoc.eccovia.com/view/metadata/2s93ebSAQH"}