{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"08e2fac2-abe9-4f00-805b-77991032a413","name":"Notify API","description":"\nThe Notify API provides all the tools you need to programmatically submit and manage home move data to the Notify platform.\n\n## What is the Notify Service?\nNotify is a service which informs utilities providers for tenancy changes in the UK. Notify updates the gas, electricity,\nand optionally water, and council providers of change of tenancy information to ensure that the billing periods are correctly managed.\n\n## Who do I contact about this API ?\nTo get in touch with our development team, please send an email to `dev@getnotify.co.uk`\n\n## What is the minimum required information Notify requires?\n\nFor Notify to do its job and for commission to be payable, move-in data must be submitted. This includes the liable party's personal information and the start date of the new tenancy.\n\nWe also allow the optional submission of move out data. This includes the date that the previous tenant moved out of the property and optionally the details of the landlord, who will be responsible during the void period.\n\nIn order to provide move in data, there are 2 options depending on whether you are in possession of the move out data.\n\nIf you are in possession of the move out data, create a void period Vacancy:\n1. Create a Property. (`POST /properties`) The response will contain a `property_id`.\n2. Create a Vacancy, providing a `property_id` and a `move_out_date`. (`POST /vacancies`) The response will contain a `vacancy_id`.\n3. Create a Liable Party for that Vacancy, providing `move_type` of `move_in`. (`POST /vacancies/:vacancyId/liable-parties`)\n4. Update the Vacancy with a `move_in_date`. (`PATCH /vacancies/:vacancyId`)\n\nIf you are not in possession of the move out data, create a move-in-only Vacancy:\n1. Create a Property. (`POST /properties`) The response will contain a `property_id`.\n2. Create a Vacancy, providing a `property_id` and a `move_in_date`. (`POST /vacancies`) The response will contain a `vacancy_id`.\n3. Create a Liable Party for that Vacancy, providing `move_type` of `move_in`. (`POST /vacancies/:vacancyId/liable-parties`)\n\n## What optional additional information can be provided?\n- A Liable Party with the `move_type` of `move_out` (`POST /vacancies/:vacancyId/liable-parties`)\n- Request to inform additional Services.\n> By default only Gas and Electricity are informed, but Water and Council can be added.\n\n## Environments\n\nWe have the following two environments:\n\n### Sandbox\n\nThe sandbox environment is located at [https://sandbox.getnotify.co.uk](https://sandbox.getnotify.co.uk) and the base URL for the sandbox API is [https://sandbox.getnotify.co.uk/api/v1](https://sandbox.getnotify.co.uk/api/v1)\n\nThe sandbox environment is a mirror of the production environment, with the following differences:\n\n- Services are unlikely to be progressed through the Notify process, meaning providers will not be informed of changes to tenancies\n- No emails will be sent to anyone\n- We may periodically clear up created vacancies\n\nIf you have been provided with user credentials, feel free to login to [https://sandbox.getnotify.co.uk](https://sandbox.getnotify.co.uk) as any user to see the Notify dashboard.\n\n> Please do not use any real customer data in the sandbox environment.\n\n### Production\n\nThe production environment is located at [https://dashboard.getnotify.co.uk](https://dashboard.getnotify.co.uk) and the base URL for the production API is [https://dashboard.getnotify.co.uk/api/v1](https://dashboard.getnotify.co.uk/api/v1)\n\nAll production data is completely separate to the sandbox, anything that you do on sandbox will not affect production and vice versa.\n\n## Release Notes\n\nSignificant new features will be documented in our release notes at [https://updates.getnotify.co.uk/](https://updates.getnotify.co.uk/).\n\nTo ensure that you are kept up-to-date with any changes, you can click the 'Subscribe' button in the top-right hand corner of the page.\n\n## Getting Started\n\nTo get started using the Notify API please get in touch with our sales team who will take you through the onboarding process.\n\nWhen it is time for you to integrate with our Sandbox Environment, our development team will help get you started. Get in touch at `dev@getnotify.co.uk`.\n\n**We will create for you**:\n\n- The necessary OAuth 2.0 credentials, consisting of a Client ID, which is required to complete the OAuth 2.0 PKCE Authorization Code flow.\n  - If you require multiple credentials for different environments (local, staging etc.), we will provide these to you.\n- A set of sandbox user accounts to test your integration with.\n\n**We will require from you**:\n\n- At least one redirect URL from your technical team so that we can limit our callbacks to only that URL.\n  - This is a URL owned by yourself that we will forward users to after they successfully grant your application access to their Notify account.\nFor example in local development this may be `http://localhost/notify-redirect`.\n\nOnce you are happy with your integration in the sandbox environment, we will create the necessary production OAuth 2.0 credentials.\n\n## Authentication\n\nNotify uses the standard OAuth 2.0 protocol for authentication and authorization.\n\nYou authenticate on behalf of a Notify user, by using the [PKCE Authorization Code grant type](https://www.oauth.com/oauth2-servers/pkce/). This requires the user to already have a Notify account.\n\nAt a high level, the flow has the following steps:\n- Your application (web/mobile) opens a browser to send your user to Notify\n- The user sees an authorization prompt and approves your application's request to access their Notify data\n- The user is redirected back to your application with an authorization code in the query string\n- Your application then exchanges the authorization code for a refresh token & an access token, which you can then use to access the Notify API\n\nThe Notify API currently supports the following [scopes](https://oauth.net/2/scope/) to define what access you will have to a Notify users account:\n- `full-access` - Access to all of the user's Notify data (read and write), for the endpoints listed in this documentation.\n\n**We recommend using popular maintained OAuth 2.0 libraries to help you complete the authentication process.** You can find examples here: https://oauth.net/code/\n\nWe list the full steps below for clarity and in case you do not wish to use a library.\n\n### 1. Send the User to Notify\n\nTo begin the flow, your application constructs a URL like the following (with the domain changing depending if you are accessing sandbox or production) and directs the user to that URL.\n```\nhttps://sandbox.getnotify.co.uk/oauth/authorize\n?response_type=code\n&client_id=920595b6-9cb7-4196-a7af-e506752727a3\n&redirect_uri=https%3A%2F%2Fexample-app.com%2Fredirect\n&state=UWfIuT0cYB8HZrnrVQ4UNhaoFlxyJTRBZo1lMr18\n&scope=full-access\n&code_challenge_method=S256\n&code_challenge=LoSPps-W3pIYDtmDG8uIAxoxvwbvKlLAb-MqTjYIgVM\n```\nHere's each query parameter explained:\n- `response_type=code` - This indicates you are initiating the authorization code flow.\n- `client_id` - This is the public identifier for your application, which we have provided you.\n- `redirect_uri` - This is where the user will be sent back after they approve/deny the request. You will have provided us with this when getting setup.\n- `state` - A random 40 character long string, generated by your application, which will be returned to you after the user authorizes and you will need to check.\n- `scope` - The scope(s) which define what access you will have on the user's account.\n- `code_challenge_method=S256` - This indicates that the `code_challenge` uses SHA256\n- `code_challenge` - You will first generate a cryptographically random string, between 43 and 128 characters, using only alphanumeric characters and `-._~`, which is your **code_verifier** - **keep a record of this**. You then SHA256 hash it, and base64 encode it using URL safe characters, and remove any trailing `=` characters - this is your **code_challenge**.\n\nYou should make sure that you have saved the following variables which will be used later:\n- `state`\n- `code_verifier`\n\n\nFor example:\n**PHP**\n```php\n$verifier_bytes = random_bytes(64);\n$code_verifier = bin2hex($verifier_bytes);\n\n$code_challenge = strtr(rtrim(\n    base64_encode(hash('sha256', $code_verifier, true))\n, '='), '+/', '-_');\n```\n**JavaScript (node.js)**\n```javascript\nconst randomstring = require(\"randomstring\");\nconst crypto = require(\"crypto\");\nconst base64url = require(\"base64url\");\n\nconst code_verifier = randomstring.generate(128);\n\nconst base64Digest = crypto\n.createHash(\"sha256\")\n.update(code_verifier)\n.digest(\"base64\");\n\nconst code_challenge = base64url.fromBase64(base64Digest);\n```\n\nFor more information on this step, see https://www.oauth.com/oauth2-servers/pkce/authorization-request/\n\n### 2. The user authorizes your request\nUpon sending the user to the URL you constructed in step 1, if the user wasn't currently logged in to Notify, they will be prompted to do so. Once logged in, they will be presented with a screen like the following:\n\n![Notify OAuth 2.0 User Consent Screen](https://oub-notify-sandbox-public.s3.eu-west-2.amazonaws.com/docs/Notify+OAuth2+User+Consent.png)\n\n### 3. Redirect back to your application\nWhether they approve, or deny, we will redirect the user back to the `redirect_uri` you specified.\n\nIf they denied access, there will be a `error=access_denied` query parameter present.\n\nIf they approved access, they will be redirected back to your `redirect_uri` like:\n```\nhttps://example-app.com/redirect\n?code=g0ZGZmNjVmOWIjNTk2NTk4ZTYyZGI3\n&state=UWfIuT0cYB8HZrnrVQ4UNhaoFlxyJTRBZo1lMr18\n```\nHere's each query parameter explained:\n- `code` - This is the authorization code generated by Notify. In the next step, you will exchange this for a refresh token & an access token.\n- `state` - This is the state value which you initially sent in step 1. You should verify this matches what you sent, to protect against CSRF and other related attacks.\n\n### 4. Exchange the authorization code for tokens\n\nThe last step is to exchange the authorization code for a refresh token & an access token, which you can use to access the Notify API.\n\nMake a POST request to the token URL, using `Content-Type: application/x-www-form-urlencoded` and placing the parameters in the body:\n```\nPOST https://sandbox.getnotify.co.uk/oauth/token\nContent-Type: application/x-www-form-urlencoded\n...\ngrant_type=authorization_code\n&code=g0ZGZmNjVmOWIjNTk2NTk4ZTYyZGI3\n&redirect_uri=https%3A%2F%2Fexample-app.com%2Fredirect\n&code_verifier=6874f34ffdf612cb435ac0efed5a641723ab88d\n&client_id=920595b6-9cb7-4196-a7af-e506752727a3\n```\nEnsure that the values are URL encoded (you can see an example in the `redirect_uri`).\n\nHere's each request body parameter explained:\n\n- `grant_type=authorization_code` - This tells the token endpoint it is using the Authorization Code flow\n- `code` - This is the authorization code returned to you in step 3.\n- `redirect_uri` - This is your `redirect_uri` you used in step 1.\n- `code_verifier` - This is the **code_verifier** you generated in step 1, **BEFORE** you SHA256 hashed it and base64 URL safe encoded it.\n- `client_id` - This is your `client_id`\n\nIf everything checks out, you will receive a response like the following:\n```\nHTTP/1.1 200 OK\nContent-Type: application/json\nCache-Control: no-store\nPragma: no-cache\n...\n{\n    \"access_token\":\"MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3\",\n    \"token_type\":\"Bearer\",\n    \"expires_in\":86400,\n    \"refresh_token\":\"IwOGYzYTlmM2YxOTQ5MGE3YmNmMDFkNTVk\"\n}\n```\n**You should then store the `access_token` and `refresh_token` securely in your application / system.**\n\nThe `access_token` is valid for 24 hours, and the `refresh_token` is long lived (10 years validity).\n\n### Refreshing your access token\n\nOnce your access token expires, you will begin to receive `401 Unauthorized` errors from the Notify API.\n\nTo refresh your access token, make a POST request to the token URL:\n```\nPOST https://sandbox.getnotify.co.uk/oauth/token\nContent-Type: application/x-www-form-urlencoded\n...\ngrant_type=refresh_token\n&client_id=920595b6-9cb7-4196-a7af-e506752727a3\n&refresh_token=IwOGYzYTlmM2YxOTQ5MGE3YmNmMDFkNTVk\n```\n\nYou will receive a response like the following:\n```\nHTTP/1.1 200 OK\nContent-Type: application/json\nCache-Control: no-store\nPragma: no-cache\n...\n{\n\"access_token\":\"JFk85UJkk7QJH744M8IvVu4JFknP\",\n\"token_type\":\"Bearer\",\n\"expires_in\":86400\n}\n```\n\nIt contains your new access token which you should start using.\n\nYour previous access token is revoked.\n\nYour original refresh token is still valid, and can subsequently be used to refresh your new access token.\n\n### Using your access token\n\nWhen you have an access token, you can use it in the request's HTTP header in the format `Authorization: Bearer <access_token>`, for example: `Authorization: Bearer MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3`\n\n## User Hierarchy\n\nAll end users belong to a branch, every branch belongs to an organisation and an organisation can have many branches.\n\nWe have 3 distinct user \"roles\" which determine the level of access that user has in both the Notify dashboard and over the API.\n\nThe roles are as follows:\n\n- Organisation Manager - This is the top level administrator account for each organisation, they have the highest level of access and can view all information for every branch within that organisation.\n- Branch Manager - This user has the ability to manage staff members, and do everything a staff member can do.\n- Staff Member - This user has no administrative privileges over either the branch or the organisation, however they can complete the Notify process in full.\n\n# API Features\n\n## JSON:API\n\nOur API follows the JSON:API specification which can be found at [https://jsonapi.org/](https://jsonapi.org/)\n\nWe chose this to enforce consistency across requests & responses, and to take advantage of shared conventions and community built tooling.\n\nSee [https://jsonapi.org/implementations/#client-libraries](https://jsonapi.org/implementations/#client-libraries) for implementations in your language of choice.\n\nWe are planning to release our own Notify API SDKs for the most popular languages.\n\n## Sorting\n\nIndex endpoints are sorted at by the `created_at` timestamp in descending order by default, ensuring that the latest records are returned first.\n\nYou can sort by a different field by passing up the `sort` query parameter and specifying the field name. By default it will sort in ascending order, unless you prefix the field name with a hyphen (`-`).\n\nFor example, to sort vacancies by the most recent upcoming move in dates:\n\n```\nGET https://sandbox.getnotify.co.uk/api/v1/vacancies?sort=-move_in_date\n```\n\nTo see the available sorts for each endpoint, consult the documentation for that endpoint.\n\n## Inclusion\n\nInclusion is a feature of the JSON:API specification used to create compound documents.\nIn other words, you can specify what related resources you would like to include in the response to avoid making multiple network requests.\n\nFor example, to retrieve a Vacancy along with it's related Property:\n\n```\nGET https://sandbox.getnotify.co.uk/api/v1/vacancy/:vacancyId?include=property\n```\n\nYou can include multiple related resources by providing a comma separated list. For example, to retrieve a Vacancy\nalong with it's related Property and Services:\n\n```\nGET https://sandbox.getnotify.co.uk/api/v1/vacancy/:vacancyId?include=property,services\n```\n\nTo see the available includes for each resource (index and show endpoints), consult the documentation for those endpoints.\n\n## Pagination\n\nBy default, all index endpoints are paginated and will return up to 30 items per response.\nTo customise this, you can send up the `page[size]` query parameter and specify the number of items (a positive integer between 1-100).\nIf there are multiple pages of responses, you can control which page you receive by sending up the `page[number]` query parameter and specifying a valid page number.\n\nFor example:\n\n```\nGET https://sandbox.getnotify.co.uk/api/v1/vacancies?page[number]=2&page[size]=50\n```\n\nEach response includes the following pagination information:\n\n```json\n{\n    \"data\": [\n        {\n        ...\n        }\n    ],\n    \"meta\": {\n        \"pagination\": {\n            \"total\": 142,\n            \"count\": 50,\n            \"per_page\": 50,\n            \"current_page\": 2,\n            \"total_pages\": 3\n        }\n    },\n    \"links\": {\n        \"self\": \"https://sandbox.getnotify.co.uk/api/v1/vacancies?page[number]=2&page[size]=50\",\n        \"first\": \"https://sandbox.getnotify.co.uk/api/v1/vacancies?page[number]=1&page[size]=50\",\n        \"last\": \"https://sandbox.getnotify.co.uk/api/v1/vacancies?page[number]=3&page[size]=50\",\n        \"prev\": \"https://sandbox.getnotify.co.uk/api/v1/vacancies?page[number]=1&page[size]=50\",\n        \"next\": \"https://sandbox.getnotify.co.uk/api/v1/vacancies?page[number]=3&page[size]=50\"\n    }\n}\n```\n\nYou can use the links contained in the links object directly, and the pagination key within the meta object provides other useful pagination information to help you build your application.\n\n## Dates\n\nWe handle both Dates & Timestamps consistently across all of our requests and responses.\n\nDates are accepted & provided in `Y-m-d` format. For example `2020-05-02`.\n\nTimestamps are returned in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) Zulu Time format. For example `2020-11-25T09:52:36Z`. Format: `Y-m-d\\TH:i:s\\Z`\n\n## Versioning\n\nThe Notify API is continuously evolving as we offer new features and coverage to our API consumers.\n\nIt's important to us that your integration is not adversely affected by changes we may need to make to our API.\n\nWe use API wide versioning, specified in the URL. The version number is specified in the base URL, following `/api/` and preceding the resource name.\n\n### Breaking changes\n\nA breaking change refers to any change that would require you to update your application in order to continue working with the Notify API as originally intended.\n\nWe consider the following to be breaking changes:\n\n- Renaming an API field or resource\n- Removing an API field or resource\n- Changes to the required fields for an endpoint\n\nIf we are intending on making a breaking change, we will communicate this ahead of time to ensure you are able to make the changes in your integration.\n\n### Non-breaking changes\n\nWe reserve the right to make additive changes to our API without incrementing the version number or notifying clients.\nWe may add new resources, fields, and relationships to an existing version of the API and these will not be considered breaking changes.\n\nWe will, however, update our API documentation explaining the purpose of the changes.\n\n**As such, you should design your integration to be flexible enough to not break when new fields are added to resources.**\n\n## Errors\n\nAll errors returned by the API follow the same structure. We do not list every possible error response for each endpoint.\nInstead the common error responses are listed below.\n\n### 401 Unauthorized\n\nThis error is returned when the OAuth 2.0 authorization credentials provided are invalid. This may be due to no\ncredentials being provided, invalid credentials, the wrong header being used, or an invalid / expired access token.\n```json\n{\n    \"errors\": [\n        {\n            \"status\": 401,\n            \"title\": \"Unauthorized\",\n            \"detail\": \"Unauthenticated.\",\n            \"meta\": {\n                \"request_id\": \"d81caeb16bc81000935fadf3a704a064ccb57548\"\n            }\n        }\n    ]\n}\n```\n### 403 Forbidden\nThis error is returned when the user you have authenticated as lacks the necessary permissions to perform the request.\nConsult the description of the individual endpoint for more information on what permissions may be required.\n```json\n{\n    \"errors\": [\n        {\n            \"status\": 403,\n            \"title\": \"Client error\",\n            \"detail\": \"This action is unauthorized.\",\n            \"meta\": {\n                \"request_id\": \"d81caeb16bc81000935fadf3a704a064ccb57548\"\n            }\n        }\n    ]\n}\n```\n### 422 Unprocessable Entity\nThis error is returned when the request body you have provided contains validation errors.\nIf there are multiple validation errors, then the errors array will contain one error object per error, which you can\niterate through.\n```json\n{\n    \"errors\": [\n        {\n            \"status\": 422,\n            \"title\": \"Invalid Attribute\",\n            \"detail\": \"The example_1 field is required.\",\n            \"source\": {\n                \"pointer\": \"/data/attributes/example_1\",\n                \"attribute\": \"data.attributes.example_1\"\n            },\n            \"meta\": {\n                \"request_id\": \"0e784fd4e70549d89d8bc71e3d93fe26d313a9c9\"\n            }\n        },\n        {\n            \"status\": 422,\n            \"title\": \"Invalid Attribute\",\n            \"detail\": \"The example_2 may not be greater than 7 characters.\",\n            \"source\": {\n                \"pointer\": \"/data/attributes/example_2\",\n                \"attribute\": \"data.attributes.example_2\"\n            },\n            \"meta\": {\n                \"request_id\": \"0e784fd4e70549d89d8bc71e3d93fe26d313a9c9\"\n            }\n        }\n    ]\n}\n```\n## UUIDs\nFor all of our resource IDs, we use UUIDs following the [UUID version 6 format](https://uuid.ramsey.dev/en/latest/nonstandard/version6.html).\n","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"12606501","team":1225174,"collectionId":"08e2fac2-abe9-4f00-805b-77991032a413","publishedId":"TVenf8ZQ","public":true,"publicUrl":"https://docs.getnotify.co.uk","privateUrl":"https://go.postman.co/documentation/12606501-08e2fac2-abe9-4f00-805b-77991032a413","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"EF5B25"},"documentationLayout":"classic-double-column","customisation":null,"version":"8.11.6","publishDate":"2020-11-12T18:08:49.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/fb2ae7876a0248d6f9a6d492a15e95851a01265e235eef3cb92ffab6dbbf792e","favicon":"https://res.cloudinary.com/postman/image/upload/v1673350475/team/bwvjhexj58ia6tig7qhf.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"}],"canonicalUrl":"https://docs.getnotify.co.uk/view/metadata/TVenf8ZQ"}