{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"0708420c-b627-4782-86d2-e00ff36ff23c","name":"Sterling API","description":"The Sterling API allows you to integrate background checks into your platform and manage the process from end-to-end.\n\nUsing the Sterling API, you can build applications that:\n\n* Initiate background checks on participants in an online marketplace.\n* Schedule recurring screenings to proactively monitor changes in a candidate's status over time.\n* Receive real-time updates for the screenings you initiate.\n\nGetting Started\n===============\n\nAccess to the Sterling API can be provided by sending a request to our team using the following links: Request Credentials (Screening Region **<a href=\"mailto:APISupport-Canada@sterlingcheck.com?subject=Sterling API Developer Credential Request&body=Hello%2C%0A%0AI%20would%20like%20to%20request%20access%20to%20the%20Sterling%20API.%0A%0AMy%20name%20%3A%0AMy%20role%20%3A%0ACoding%20language%20%3A%0ACompany%20%3A%0AYearly%20screening%20volume%20%3A%0AScreening%20services%20%28if%20known%29%20%3A\">Canada</a>** or **<a href=\"mailto:APISupport-EMEA@sterlingcheck.com?subject=Sterling API Developer Credential Request - EMEA&body=Hello%2C%0A%0AI%20would%20like%20to%20request%20access%20to%20the%20Sterling%20API.%0A%0AMy%20name%20%3A%0AMy%20role%20%3A%0ACoding%20language%20%3A%0ACompany%20%3A%0AYearly%20screening%20volume%20%3A%0AScreening%20services%20%28if%20known%29%20%3A\">EMEA</a>**)\n\nOnce you receive your Client ID and Client Secret, here are the steps that API users typically follow to consume the Sterling APIs and perform end-to-end testing on your own.\n\n* Step 1: [POST Authentication](#85cc1b35-8e7b-4500-baf6-410263dba1ad)\n    * Once you send an auth request with your Client ID and Client Secret, the response will contain an access token which can be used to send other requests to the API.\n\n* Step 2: [GET /packages](#fe4e72d8-56d6-420a-a7a2-a41e6d2c0f7e)\n    * Retrieve a list of the packages available to you (a package is a group of screening products). The response will also specify which fields are required on a candidate record in order to process the associated screening.\n\n* Step 3: [POST /candidates](#b2102fab-7e6d-4a9f-8324-002ddf2df9e5)\n    * Create a candidate. The minimum fields required to create a new candidate are a first name, last name, email, and clientReferenceId. Additional required fields for a screening can be identified via GET /packages. Your candidates are required to provide this information once the screening is created.\n\n* Step 4: [POST /screenings](#3e8cd129-b5db-432d-af61-6a714e2fbb8e)\n    * You will need a candidateId and packageId in order to create a screening. In order to collect all of the required information, an online data-collection form (a.k.a. eConsent) will be sent to the candidate following up the creation of the screening. Candidates can receive the invitation to complete their eConsent via an email invitation or a tokenized URL shared within your application.\n\n* Step 5: Verify [callbacks](#callbacks)\n    * In a POST /screenings request, you can set a Callback URI so that you can receive real-time updates for that screening.\n  \n**Data Collection**\n\n> **Invite Feature**: To use this feature, set the attribute `invite.method` to `\"email\"` to send the candidate an email, or set `invite.method` to `\"link\"` to receive the form URL within the API response when you call `POST /screenings`. Please refer to the [Screenings](#3bd21126-2672-4714-b97b-ff4c3559902c) section for more details.\n\n**Going Live**\n\n> When testing is complete and you are ready to go live, be sure to switch your host endpoint to the production environment. This will also require you to obtain a **new** set of authentication credentials for that environment. Please reach out to your account manager when you are ready to start this process.\n\nAuthentication\n==============\n\n<h2>Overview</h2>\n\nThe Sterling API uses an OAuth2 (\"oauth\") authentication scheme.\n\nRequests to the Sterling API must be authenticated using short-lived bearer token in the Authorization header. Applications will obtain bearer tokens via the oauth endpoint. It is also *required* to set a \"grant_type\" field to \"client_credentials', as shown in the cURL auth request example below.\n\n| Environment | Endpoint |\n| :---------- | :------- |\n| Integration | https://api.ca.int.sterlingcheck.app/v2/oauth |\n| Production | https://api.ca.sterlingcheck.app/v2/oauth |\n\n**cURL**\n\n```\ncurl -X POST \\\n-H \"Authorization: Basic <basic auth token>\" \\\n-H 'Content-Type: application/x-www-form-urlencoded' \\\n-d 'grant_type=client_credentials' \\\nhttps://api.ca.int.sterlingcheck.app/v2/oauth\n```\n\nWhen making a request to the oauth endpoint, the basic auth credentials must be a base64 encoded string in the format `client_id:client_secret`. These credentials are not provided through the API and must be obtained from the Sterling Success Engineer assigned to your project.\n\n**Base64**\n\n>The base64 encoded string for the credentials will remain unchanged unless your client_secret is changed at your request. \n>\n>For instance, `example@example.com:86753O9` will always encode as `ZXhhbXBsZUBleGFtcGxlLmNvbTo4Njc1M085`.\n\nIf the provided credentials are valid, the oauth endpoint will provide a bearer token, along with an expiry time for the token (in seconds). An `access_token` will expire after 10 hours.\n\n**JSON**\n\n``` json\n{\n  \"access_token\": \"RG8gcGVvcGxlIHJlYWxseSBkZWNvZGUgdGhlc2U/IEkgbWVhbiBzZXJpb3VzbHksIHRoaXMgaXMganVzdCBhIHRlc3QgaGFzaCEgV2VsbCwgaWYgeW91IG1hZGUgaXQgdGhpcyBmYXIsIGFsbG93IG1lIHRvIHJld2FyZCB5b3U6DQoNCmh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9ZFF3NHc5V2dYY1E=\",\n  \"token_type\": \"bearer\",\n  \"expires_in\": 36000\n}\n```\n\nThis token should be cached until it expires, and must be passed in the `Authorization` header of each request as follows:\n\n**cURL**\n\n```\ncurl -H \"Authorization: Bearer RG8gcGVvcGxlIHJlYWxseSBkZWNvZGUgdGhlc2U/IEkgbWVhbiBzZXJpb3VzbHksIHRoaXMgaXMganVzdCBhIHRlc3QgaGFzaCEgV2VsbCwgaWYgeW91IG1hZGUgaXQgdGhpcyBmYXIsIGFsbG93IG1lIHRvIHJld2FyZCB5b3U6DQoNCmh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9ZFF3NHc5V2dYY1E=\" \\\n-H \"Accept: application/json\" \\ \nhttps://api.ca.int.sterlingcheck.app/v2/candidates/7212643\n```\n\n**500 Errors**\n\n>If you receive a 500 error on any API call using an Authorization header, please check that the format is \"Bearer [base64-encoded-credentials]\".\n\nCMA (Client Matrix Adjudication)\n===============================\n\nDepending on your needs, you may be interested in a Client Matrix Adjudication setup. This is not set up on your account by default and must be requested and configured prior to creating your screenings. After setting up your account and criteria, the API will be able to return a result that meets those expectations at a high-level. Please refer to our [Callbacks](#callbacks) section and the screening statuses for more information on all of our available results.\n\n<h2>CMA Statuses</h2>\n\nThe results listed below use customized criteria that is set by you in order to determine which result is returned. For example you may want all checks that have a series of discrepancies to return an `AMBER`, whereas a check that is clear can come back as `GREEN`.\n\nThis criteria can be determined and discussed with your account manager when gathering details for your account setup.\n\n| Attribute | Values |\n| :------ | :-------- |\n| `result` | GREEN, AMBER, RED |\n\nCallbacks\n=========\n\nBackground screenings involve gathering information from a variety of public and proprietary records, and as a result, the response times for screenings can be unpredictable. As an API user, you can receive notifications when important events related to your screening occur. To receive update notifications, include a `callback` when creating a screening.\n\n<h2>Callback Types</h2>\n\nThe callback `type` field supports future extensibility. At present, all callbacks are of the `screening` type.\n\nAdditional callback types may be introduced in the future. These new callback types will follow the same pattern as existing callbacks. The callback url will be specified in the `POST` request for the resource. This means that you are free to create one callback handling service exclusively for screenings, and other services for every other callback type that exists.\n\nAlternatively, clients may implement a single general-purpose callback handler for all Sterling API callbacks. In that situation, the callback handler can use the `type` field to identify the message type and ensure that the intended parsing or business rules are applied only to the expected message types.\n\n**Retries**\n\n>Callbacks will be retried exponentially starting at 15 minutes, 30 minutes, 1 hour, and so on until an HTTP 200 success response is returned from your server, or the time between attempts has reached 24 hours.\n\n<br/>\n\n*Screening Callbacks*\n\nThe most common callback `type` will be a screening, as it is the object that will receive the most changes over time. A sample JSON payload for a screening callback can be seen below.\n\n**JSON**\n\n``` json\n{\n  \"type\": \"screening\",\n  \"payload\": {\n    \"id\": \"1040080\",\n    \"packageId\": \"114334\",\n    \"candidateId\": \"01f6fc94-9aa4-4822-bc9e-86c618025863\",\n    \"status\": \"Complete\",\n    \"result\": \"GREEN\",\n    \"links\": {\n      \"admin\": {\n        \"web\": \"https://clientextranetstaging.backcheck.net/Secure/Results/VerAllDetailedResults.aspx?Data=MjAyMDAzMjYyOTgwNDg2LDIwMjAwMzI2MTI1OTM2LEFsbA==-Hy9HEo+t+hw=\"\n      }\n    },\n    \"reportItems\": [\n      {\n        \"id\": \"4466359\",\n        \"type\": \"Canadian Criminal Record Check\",\n        \"status\": \"complete\",\n        \"result\": \"green\",\n        \"updatedAt\": \"2020-03-26T00:58:01\"\n      },\n      {\n        \"id\": \"4466360\",\n        \"type\": \"Canadian Driver’s Abstract\",\n        \"status\": \"complete\",\n        \"result\": \"green\",\n        \"updatedAt\": \"2020-03-26T00:58:59\"\n      }\n    ],\n    \"submittedAt\": \"2020-03-26T11:45:37\",\n    \"updatedAt\": \"2020-03-26T00:58:59\"\n  }\n}\n```\n\n<br/>\n\n*Callback Statuses*\n\nEvery screening callback will have a `status` property in its payload. The value of `status` will change depending on the status of each item in `reportItems`.\n\n<br/>\n\n*Screening Statuses*\n\n| Status | Description |\n| :----- | :---------- |\n| `Interview In Progress` | Communication sent to candidate; The screening will be in this state until the candidate has completed data collection via the eConsent application. |\n| `In Progress` | Processing. The candidate has completed the eConsent application. |\n| `Cancelled` | The eConsent invitation is cancelled. This does not apply to service or screening cancellations. |\n| `Complete` | Report is completed and ready for review. |\n| `Expired` | Candidate has not completed eConsent data collection within the designated time limit.\n\n<br/>\n\n*Screening Results*\n\nThe following results are returned for screenings. These must be defined with the Sterling team when setting up the account. If you do not have CMA enabled on your account, the overall screening result will return as an **empty** value (\"\");\n\nPlease reach out to your account manager for more details on configuring your account setup.\n\n| Result | Description |\n| :----- | :---------- |\n| `\"\"` | Non-CMA level result - An empty value is returned. |\n| `GREEN`, `AMBER`, `RED` | [CMA](#cma-client-matrix-adjudication) level result. |\n\n<br/>\n\n*Report Item Statuses*\n\nEach individual report may have their own statuses and these will vary upon the type of report processed.\n\nIf using these statuses, it's best practice to only concern yourself with the most common values. Sterling will need to configure your account to allow these statuses to return in your report. \n\n| Status | Description |\n| :------------------------ | :---------- |\n| `Not Started` | Item has not started yet. |\n| `In Progress` | Item has started, but is not completed yet. |\n| `Complete` | Item is completed/closed. |\n| `Service Set-up In Progress` | Fulfillment is in the midst of order creation and releasing the services. |\n| `Waiting For Missing Information` | Item has one or more services that are missing information. |\n| `Awaiting File Set-up Verification` | Item has been integrated from eConsent and is now awaiting order creation team to release the services. |\n| `In Production` | Item is in production and there is no missing information. |\n\n<br/>\n\n*Report Item Results*\n\nA report item's `result` property will give a more detailed description of the response. \n\n| Result | Description |\n| :----- | :---------- |\n| `Clear` | Everything good; The item passes. |\n| `Not Clear` | Something found; The item needs a review. |\n| `Unable to Complete` | Item was unable to be completed and needs a review. |\n| `Not Required` | The screening has received a sufficient amount of data to proceed; No further action is required on the item for the purposes of the screening. |\n| `green`, `amber`, `red` | [CMA](#cma-client-matrix-adjudication) level results - These must be defined with the Sterling team when setting up your account. |\n\n**Callback Consumption**\n\n>Callbacks from the Sterling API support data consumption in chunked and non-chunked variants. Chunking is possible when the callback payload data exceeds 1MB in size.\n\nLanguages\n==========\n\nWhen you create your candidates via the Sterling API, you are given the option to set a `primaryLanguage` with a 2-letter code. This code is used to determine the language used to communicate to your candidates through various methods as emails or the eConsent application. \n\n**Setup Required**\n> In most integrations, English and French are set up on your account for communication. If you expect to work with any candidates who may need a different language set, please reach out to your account manager so that it can be set up for you.\n\n<h2>Language Codes</h2>\n\nBelow is a table of accepted language codes. If you do not provide a code at all or one that is not on this list, the API will use `EN` by default.\n\n| Language | Code | Language | Code |\n| :------- | :--- | :------- | :--\n| English | EN | Simplified Chinese | ZH |\n| French | FR | Hindi | HI |\n| Spanish | ES | Arabic | AR |\n| Portuguese | PT | Japanese | JA |\n| German | DE | Croatian | HR |\n| Dutch | NL | Bulgarian | BG |\n| Tagalog | TL | Finnish | FI |\n| Malay | MS | Serbian | SR |\n| Italian | IT | Czech | CS |\n| Polish | PL | Hungarian | HU |\n| Vietnamese | VI | Turkish | TR |\n| Russian | RU | Romanian | RO |\n| Estonian | ET | Ukrainian | UK |\n\nIdempotency\n===========\n\nThe Sterling API supports the use of an `idempotency-key` in your screening requests, which allows you to safely retry these requests without accidentally performing the same operation twice. This is helpful if there are networking issues and you wanted to guarantee that you do not create duplicate screenings.\n\nAn idempotency key can be unique value of your choice and how you create these keys is up to you. To avoid collisions within your own account, try using unpredictable string values or a random V4 UUID. \n\nIf a screening request fails when using the `idempotency-key`, retry using the same key value in order to guarantee that only one screening is created.\n\n**cURL**\n```\ncurl -X POST 'https://api.ca.int.sterlingcheck.app/v2/screenings' \\\n-H \"Authorization: Bearer <access token>\" \\\n-H 'Content-Type: application/json' \\\n-H 'idempotency-key: \"ccf492f0-231a-45eb-bc29-8e3687445715\"' \\\n-d '{\n\t\"packageId\": \"96193\",\n    \"candidateId\": \"001c8b73-4b0d-4dac-bcc0-479bf91f222a\"\t\n}'\n```\n\nErrors\n======\n\n<h2>Overview</h2>\n\nSterling uses conventional HTTP response codes to indicate the success or failure of an API request. In general, codes in the `2xx` range indicate a success, codes in the `4xx` range indicate a request that failed given the information provided (e.g. a required parameter was omitted, format issues, etc.), and codes in the `5xx` range indicate an error with Sterling's servers.\n\nWhen a request is valid but does not complete successfully, we return a `400#` error code. Below you'll find more detailed information about the possible errors you can expect.\n\n<h2>Error Format</h2>\n\nThe expected format for an error is as follows:\n\n``` json\n{\n    \"errors\": [\n        {\n            \"code\": \"400#[optional-object]?[optional-reason]\",\n            \"message\": \"[optional-message]\"\n        }\n    ]\n}\n```\n\nThe expected _code_ format is as follows, using \"400#dob?format\" as an example:\n\n* HTTP error code (400)\n* Optional offending field when relevant (dob)\n* Optional brief message when applicable (format)\n\n<h2>Error Codes</h2>\nSome common error codes include:\n\n<h3>Candidate Validation Errors</h3>\n\n| Code | Reason |\n| :--- | :----- |\n| 400#address.[field] | The address block is present, but missing a required address field such as “addressLine”. All required address fields missing from the submitted candidate data will each be noted in a separate “message” string in an array of the error response block. |\n| 400#driversLicense.[field] | The driversLicense block is present, but missing a required field such as \"licenseNumber\". All required driversLicense fields missing from the submitted candidate data will each be noted in a separate “message” string in an array of the error response block. |\n| 409#clientReferenceId?already-in-use | The given clientReferenceId is already in use. |\t\n| 409#email?already-in-use | The given email is already in use. |\n\n\n<h3>Format Validation Errors</h3>\n\n| Code | Reason |\n| :--- | :----- |\n| 400#[field]?format | A given candidate field is not in the correct format, such as “dob” `YYYY-MM-DD`. |\n| 400#address.[field]?format | A given candidate address field such as “postalCode” is not in the correct format. |\n| 400#driversLicense.[field]?format | A given candidate driver’s license field such as “licenseNumber” is not in the expected format. |\n\n<h3>Screening Errors</h3>\n\n| Code | Reason |\n| :--- | :----- |\t\t\n| 400#candidateId?not-found | The given candidateId must be valid and associated with the authenticated account. |\n| 400#packageId?not-found | The packageId must be an active packageId associated with the authenticated account. |\n| 400#callback.uri?format | A callback.uri must be in a valid HTTPS URL format. |\n\n<h2>Rate Limiting</h2>\n\nWe hold ourselves to a high standard – and part of that means continuing to provide quality service to all customers. In order to make this is possible, the Sterling API is rate limited. \n\nIf the rate limit is exceeded for the specified endpoint in your request, the API will respond with a `429 Too Many Requests` status code. \n\nBelow is a table of the rate limiting thresholds for the most used endpoints:\n\n| Endpoint | Requests / 5 Minute Period |\n| :------- | :------------------- |\n| /v2/oauth | 125 |\t\t\n| /candidates | 125 |\n| /candidates/{id} | 500 |\n| /screenings | 125 |\n| /screenings/{id} | 500 |\n\n<h3>Controlling Your Requests</h3>\n\nThere are several ways you can help control the amount of requests you make within limits: \n\n* If you believe there is a possibility that the limits could be exceeded, it is advised that you use exponential backoff logic to retry the requests.\n\n* If processing a large batch of requests, you could implement a delay between requests.\n\n* Check your existing workflow for duplicate or unnecessary API requests. A common example would be making numerous authentication requests when an access token is already valid for the next 10 hours.\n\n* Use callbacks to receive real-time updates about a report instead of retrieving them in batches.\n\nVersioning\n==========\n\nThis document describes the Sterling API. The Sterling API follows semantic versioning, which means that we are committed to maintaining this API without breaking changes. It considers any removal or renaming of an API endpoint or JSON field from an API response to be a breaking change. Additions of new _required_ input fields would also be incompatible with existing client code, so any newly-added input fields will always be optional.\n\nAlthough fields will not be _removed_ from responses, fields may be added to introduce new capabilities. Applications consuming this API should use permissive deserialization techniques when parsing JSON responses. It will always be safe to ignore unrecognized, optional fields.\n\n**Example of Permissive Deserialization**\n\n>When using the Jackson JSON parsing library for Java, clients should disable the `DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES` flag.","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"7075989","team":319436,"collectionId":"0708420c-b627-4782-86d2-e00ff36ff23c","publishedId":"TVYGbHnY","public":true,"publicUrl":"https://apidocs.ca.sterlingcheck.app","privateUrl":"https://go.postman.co/documentation/7075989-0708420c-b627-4782-86d2-e00ff36ff23c","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"EF5B25"},"documentationLayout":"classic-double-column","customisation":null,"version":"8.10.1","publishDate":"2020-10-26T21:49:28.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{},"logos":{}},"statusCode":200},"environments":[{"name":"INT-CA","id":"e9bf0e2c-b1c1-48d2-969a-c15531437d5d","owner":"7075989","values":[{"key":"host","value":"https://api.ca.int.sterlingcheck.app","enabled":true}],"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/821597f2e346e2cd87279687884179b76d9d414de12b17edfea3bf2ac90f0fbf","favicon":"https://res.cloudinary.com/postman/image/upload/v1773163808/team/516bf54cd0b68022526d06b3f9ad2bcb.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":"INT-CA","value":"7075989-e9bf0e2c-b1c1-48d2-969a-c15531437d5d"}],"canonicalUrl":"https://apidocs.ca.sterlingcheck.app/view/metadata/TVYGbHnY"}