{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"c5101c2d-2eb5-4e8f-a77a-d2959a817592","name":"TCGo Public API","description":"The TC Go Public API lets you connect your systems to TC Go. Use it to find housing providers, properties, and published templates; create and manage jobs; and retrieve document details and saved data.\n\n## Getting started\n\nTo use the API, you need a service-provider API token and your TC Go API address.\n\n1. Ask an administrator to create an API token in the TC Go admin panel under **Service Provider → API Tokens**. Copy the full token when it is created and note its expiry date.\n    \n2. Include the token in the Authorization header of every request, using the Bearer format shown below.\n    \n3. Call **Check API version** to confirm that your API address and token are working.\n    \n4. Use **List housing providers**, **Search properties**, and **List published templates** to find the IDs needed to create a job.\n    \n5. Call **Create job**, then keep the returned job ID to retrieve or update it later.\n    \n\n## Base URL\n\nAll endpoints use this base URL:\n\n``` text\n{{base_url}}/api/public/v1\n\n ```\n\nReplace base_url with the TC Go API address provided for your account, without a trailing slash. The example domain in the request URLs is a placeholder.\n\nYour token identifies your service provider, so you do not need to send a service_provider_id. Use IDs belonging to your account and the API environment you are calling.\n\n## Authentication\n\nEvery endpoint requires a service-provider API token, including Check API version. Include these headers:\n\n``` http\nAuthorization: Bearer YOUR_API_TOKEN\nAccept: application/json\n\n ```\n\nFor requests with a JSON body, also include:\n\n``` http\nContent-Type: application/json\n\n ```\n\nKeep your API token private. Do not include it in browser code, public repositories, or shared documentation. An ordinary user login token cannot be used for these endpoints. If your API token expires or is revoked, ask an administrator for a replacement.\n\n## Creating your first job\n\n| Step | Endpoint | What to use next |\n| --- | --- | --- |\n| 1 | List housing providers | Use a returned id as housing_provider_id. |\n| 2 | Search properties | Search within that housing provider and use a returned id as property_id. |\n| 3 | List published templates | Select a template for the same housing provider and use its id as template_id. Check requires_approval. |\n| 4 | Create job | Provide those IDs and a deadline on or after today. Keep the returned data.id as the job ID. |\n| 5 | Get job / List jobs | Retrieve the job and check its current status. |\n\nWhen creating a job, assigned_to and approved_by must both be included. Send an eligible user's email address or JSON null. If the template requires approval and you select an assignee, you must also select a different eligible approver. See **Create job** for the complete rules and optional fields.\n\nUse **Update job** to change permitted details. **Delete job** is available only for jobs with status open or unassigned.\n\nUse **Get document** with an existing TC Go document ID to retrieve document details and saved data. A document ID is different from its job ID or linked True Compliance document ID. The public job responses do not include document IDs. The API documented here does not provide endpoints to create documents, list job documents, or download PDFs.\n\n## Responses\n\nSingle-resource responses contain a data object:\n\n``` json\n{\n  \"data\": {\n    \"id\": 401\n  }\n}\n\n ```\n\nThis is an abbreviated example showing the response wrapper. Each endpoint documents its full response fields. Lists contain a data array. **Check API version** and **Delete job** return their own JSON objects without a data wrapper.\n\nAll example IDs, names, email addresses, dates, and other values are illustrative. Use your own account's values in requests.\n\n### Pagination\n\n**List jobs** and **Search properties** return links and meta alongside data. Start with page 1 and continue until meta.current_page reaches meta.last_page, keeping the same filters on each request.\n\n- For List jobs, increase the page query parameter. Pagination links may not retain your filters.\n    \n- For Search properties, repeat the POST request with the next page number in the JSON body.\n    \n- Housing providers and templates are returned without pagination.\n    \n\n### Dates and optional values\n\nUse YYYY-MM-DD for dates in requests and HH:mm:ss for appointment times. Returned date/time values are serialized strings. Fields that accept null are identified in each endpoint's field table. Assignment requests use email addresses; the corresponding response fields contain user objects or null.\n\n## Errors\n\n| HTTP status | Meaning | What to do |\n| --- | --- | --- |\n| 200 | Request completed | Read the response body. |\n| 201 | Job created | Store the returned data.id. |\n| 401 | Authentication failed | Check your API token and whether it has expired or been revoked. |\n| 404 | Resource unavailable | Check the ID, account, and API environment. Resources outside your service provider are inaccessible. |\n| 422 | Request cannot be accepted | Read message and, when present, errors. Correct the request fields or check the job's current state. |\n| 429 | Rate limit reached | Wait for the Retry-After period before sending another request. |\n| 5xx | Server or connected-service error | Check the result before retrying a create request. Contact support if the issue persists. |\n\nValidation errors normally include a message and an errors object keyed by field name. Some state-related errors, such as trying to delete an in-progress job, include only a message.","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"5479160","team":162351,"collectionId":"c5101c2d-2eb5-4e8f-a77a-d2959a817592","publishedId":"2sA3s1nrgx","public":true,"publicUrl":"https://developer.tc-go.co.uk","privateUrl":"https://go.postman.co/documentation/5479160-c5101c2d-2eb5-4e8f-a77a-d2959a817592","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.12.7","publishDate":"2024-12-04T16:31:08.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{"title":"","description":""},"logos":{"logoLight":null,"logoDark":null}},"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/180d2963f30d3d970a1566f8b8ee808ddd06364394a9627ef469457fbc56a02d","favicon":"https://postman-image-service.postman.com/api/cloudinary-proxy/postman/image/upload/v1779277646/team/604e1ef0e4dd0f62bea684a1e40e45fe"},"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://developer.tc-go.co.uk/view/metadata/2sA3s1nrgx"}