{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"a1a2883b-a6bf-4c29-ab5c-458f36417052","name":"NAM External API Documentation","description":"# Overview\n\nThis Nextdoor Ads API is used to create and run campaigns on Nextdoor through the Nexdoor Ads Manager (NAM), which can be found at [https://ads.nextdoor.com/v2](https://ads.nextdoor.com/v2). The API endpoints can be found at [https://ads.nextdoor.com/v2/api](https://ads.nextdoor.com/v2/api)\n\nWhile the API is meant to be exhaustive enough to do core operations such as creating/updating campaigns, adgroups, ads, and reporting, there are a few key operations that must be done via the UI. This includes:\n\n- Initial sign up to access NAM\n    \n- Adding, updating, and removing payment options\n    \n- Adding, updating, and archiving custom audiences\n    \n- Archiving media assets\n    \n\n# Availability\n\nThe Nextdoor Ads API is currently in a closed BETA. If you are interested, please contact your Nextdoor Account Manager, or contact us for more information at [ads-api@nextdoor.com](https://mailto:ads-api@nextdoor.com).\n\n# Authorization\n\nThe NAM API uses [Bearer Authentication](https://datatracker.ietf.org/doc/html/rfc6750#section-2.1) to authorize requests. As such, you must provide the following HTTP header on all requests, with your API token:\n\n``` bash\n--header &#x27;Authorization: Bearer <token>&#x27;\n\n ```\n\nTo obtain the API access token for a logged in user and a given account, please login to Nextdoor Ads Manager and head to the settings page [https://ads.nextdoor.com/v2/manage/api](https://ads.nextdoor.com/v2/manage/api;) to obtain an API token. A user may only have one API token at a given time; the token can also be revoked in the UI from the same settings page. API tokens expire after one year.\n\nThe API token gives API callers the ability to take action on behalf of all advertisers that are tied to the NAM account. It also gives the ability to add new advertisers, of which the API based user will automatically be an admin for.\n\n# End-to-end Examples\n\nIn the following example, you'll go through the complete proces of verifying the correectness of an API token, creating an advertiser profile, and finally setting up a basic Campaign with a single Ad Gruop and Ad. For the full API reference, please see the sections below.\n\n## Basic Usage\n\nOnce you have your API token, you can test it out quickly by using the /me endpoint, which returns basic information about the currently authenticated user:\n\n``` bash\ncurl 'https://ads.nextdoor.com/v2/api/me' --header 'Authorization: Bearer token123'\n\n ```\n\nExample response:\n\n``` json\n{\n    \"user\": {\n      \"id\": \"01234\",\n      \"name\": \"Me\",\n      \"email\": \"me@example.com\",\n      \"email_confirmed\": true,\n      \"advertisers_with_access\": [\n        {\n          \"advertiser_id\": \"404\",\n          \"role\": \"CLIENT_ADMIN\"\n        }\n      ]\n    },\n    \"profile\": {\n      \"id\": \"32532\",\n      \"name\": \"my profile\",\n      \"associated_user_ids\": [\"01234\"],\n      \"payment_profile_id\": null,\n      \"is_ad_agency\": false\n    }\n}\n\n ```\n\n## Create and Get an Advertiser\n\nOnce you've verified your API token works, you can create an advertiser, and verify that the new advertiser can be queried for via its id.\n\nTo create an advertiser, use the /advertiser/create endpoint:\n\n``` bash\ncurl 'https://ads.nextdoor.com/v2/api/advertiser/create' \\\n--header 'Authorization: Bearer token123' \\\n--header 'Content-Type: application/json' \\\n--data '{\n    \"name\": \"my advertiser\",\n    \"website_url\": \"https://example.com\",\n    \"category_id\": \"121\"\n}'\n\n ```\n\nExample response:\n\n``` json\n{\n    \"id\": \"12\",\n    \"name\": \"my advertiser\",\n    \"website_url\": \"https://example.com\",\n    \"category_id\": \"121\",\n    \"address\": null,\n    \"billing_limit\": \"USD 10\",\n    \"payment_profile_id\": null,\n    \"bill_to_paymnet_profile_id\": null,\n    \"account_balance\": \"USD 0\"\n}\n\n ```\n\nYou can also directly query for an advertiser via the /advertiser/get/\\[id\\] endpoint:\n\n``` bash\ncurl 'https://ads.nextdoor.com/v2/api/advetiser/get/12' --header 'Authorization: Bearer mytoken123'\n\n ```\n\nExample response:\n\n``` json\n{\n    \"id\": \"12\",\n    \"name\": \"my advertiser\",\n    \"website_url\": \"example.com\",\n    \"category_id\": \"121\",\n    \"address\": null,\n    \"billing_limit\": \"USD 10\",\n    \"payment_profile_id\": null,\n    \"bill_to_paymnet_profile_id\": null,\n    \"account_balance\": \"USD 0\"\n}\n\n ```\n\n## Create and Get a Campaign\n\nNow that there's an advertiser, you can create a new campaign using the /campaign/create endpoint:\n\n``` bash\ncurl 'https://ads.nextdoor.com/v2/api/campaign/create' \\\n--header 'Authorization: Bearer token123' \\\n--header 'Content-Type: application/json' \\\n--data '{\n    \"advertiser_id\": \"12\",\n    \"name\": \"my campaign\",\n    \"objective\": \"AWARENESS\"\n}'\n\n ```\n\nExample response:\n\n``` json\n{\n    \"id\": \"123\",\n    \"name\": \"my campaign\",\n    \"objective\": \"AWARENESS\"\n}\n\n ```\n\nSimilar to advertisers, you can directly query campaigns via the /campaign/get/\\[id\\] endpoint:\n\n``` bash\ncurl 'https://ads.nextdoor.com/v2/api/campaign/get/123' --header 'Authorization: Bearer mytoken123'\n\n ```\n\nExample response:\n\n``` json\n{\n    \"id\": \"123\",\n    \"name\": \"my campaign\",\n    \"objective\": \"AWARENESS\"\n}\n\n ```\n\n## Get Targeting Options\n\nIn order to create a new AdGroup for your campaign, you may want to find out what targeting options are supported. For example, to list the different device targeting options, use the /targeting/device/list endpoint:\n\n``` bash\ncurl 'https://ads.nextdoor.com/v2/api/targeting/device/list' --header 'Authorization: Bearer'\n\n ```\n\nExample response:\n\n``` json\n{\n    [\n        {\n            \"id\": \"1\",\n            \"value\": \"Android\"\n        },\n        {\n            \"id\": \"2\",\n            \"value\": \"iOS\"\n        }                \n    ]\n}\n\n ```\n\n## Create an AdGroup\n\nNow that you have the targeting values, you can use those to create your own AdGroup for your campaign created earlier. For example let's say you want to create an AdGroup that targets \"Android\" users and users who are \"Pet Owners\" only, with a budget of $1,000 and a bid of $10 across all placements options. To do this, use the adgroup/create endpoint:\n\n``` json\ncurl 'https://ads.nextdoor.com/v2/api/adgroup/create' \\\n--header &#x27;Authorization: Bearer <token>&#x27; \\\n--header 'Content-Type: application/json' \\\n--data '{\n    \"advertiser_id\": \"12\",\n    \"campaign_id\": \"123\",\n    \"name\": \"my api adgroup\",\n    \"placements\": [\"FEED\", \"FSF\", \"RHR\"],\n    \"bid\": {\n        \"amount\": \"USD 10\",\n        \"pricing_type\": \"CPM\"\n    },\n    \"budget\": {\n        \"amount\": \"USD 1000\",\n        \"budget_type\": \"DAILY_CAP_MONEY\"\n    },\n    \"start_time\": \"2023-08-03T10:15:30-07:00[America/Los_Angeles]\",\n    \"end_time\": null,\n    \"targeting\": {\n        \"audience_targeting_features\": [\"1\"], // Android\n        \"interests_targeting\": {\n            \"include\": [[\"2\"]], // Pet owners\n            \"exclude\": []\n        }\n    },  \n}'\n\n ```\n\nExample response:\n\n``` json\n{\n    \"id\": \"231\",\n    \"advertiser_id\": \"12\",\n    \"campaign_id\": \"123\",\n    \"name\": \"my api adgroup\",\n    \"status\": \"NO_ACTIVE_ADS\",\n    \"user_status\": \"ACTIVE\",\n    \"placements\": [\"FEED\", \"FSF\", \"RHR\"],\n    \"bid\": {\n        \"amount\": \"USD 10\",\n        \"pricing_type\": \"CPM\"\n    },\n    \"budget\": {\n        \"amount\": \"USD 1000\",\n        \"budget_type\": \"DAILY_CAP_MONEY\"\n    },\n    \"start_time\": \"2023-08-03T10:15:30-07:00[America/Los_Angeles]\",\n    \"end_time\": null,\n    \"frequency_caps\": [],\n    \"targeting\": {\n        \"included_location_targeting_features\": [],\n        \"excluded_location_targeting_features\": [],\n        \"audience_targeting_features\": [\"1\"],\n        \"interests_targeting\": {\n            \"include\": [[\"2\"]],\n            \"exclude\": []\n        },\n        \"custom_audience_targeting\": {\n            \"include\": [],\n            \"exclude\": []\n        },\n        \"time_of_day\": {\n            \"included\": [],\n            \"excluded\": []\n        }\n    },  \n    \"custom_audience_ids\": [],\n    \"created_at\": \"2023-08-03T17:15:30Z\",\n    \"updated_at\": \"2023-08-03T17:15:30Z\"\n}\n\n ```\n\n## Creating an Ad\n\nAt this point you have an Advertiser with its own Campaign; the Campaign also has its AdGroup. However, there is no ad traffic being served yet since you need to associate active Ad(s) to the newly created AdGroup above.\n\nSay you already have a Creative that's been used successfully running for a different Campaign/AdGroup. We can use that Creative's id when hitting the ad/create endpoint:\n\n``` bash\ncurl 'https://ads.nextdoor.com/v2/api/ad/create' \\\n--header &#x27;Authorization: Bearer <token>&#x27; \\\n--header 'Content-Type: application/json' \\\n--data '{\n    \"name\": \"my api ad\",\n    \"advertiser_id\": \"12\",\n    \"adgroup_id\": \"231\",\n    \"creative_id\": \"989\"\n}'\n\n ```\n\nExample response:\n\n``` json\n{\n    \"id\": \"787\",\n    \"advertiser_id\": \"12\",\n    \"adgroup_id\": \"231\",\n    \"creative_id\": \"989\",\n    \"name\": \"my api ad\",\n    \"status\": \"ACTIVE\",\n    \"user_status\": \"ACTIVE\",\n    \"created_at\": \"2023-08-03T17:23:30Z\",\n    \"updated_at\": \"2023-08-03T17:23:30Z\"\n}\n\n ```\n\n## Creating a Scheduled Report\n\nSo now that you have a campaign that is serving a live Ad to user on Nextdoor, you will want to get metrics for how the Campaign, AdGroup, and Ad are performing over time. For example, to get a weekly report emailed to you that has a breakdown of impression metrics at the campaign level, you can use the reporting/scheduled/create endpoint:\n\n``` bash\ncurl 'https://ads.nextdoor.com/v2/api/reporting/scheduled/create' \\\n--header &#x27;Authorization: Bearer <token>&#x27; \\\n--header 'Content-Type: application/json' \\\n--data '{\n    \"advertiser_id\": \"12\",\n    \"name\": \"my api scheduled report\",\n    \"schedule\": \"WEEKLY\",\n    \"recipient_emails\": [\"you@example.com\"],\n    \"dimension_granularity\": [\"CAMPAIGN\"],\n    \"time_granularity\": [\"DAY\"],\n    \"metrics\": [\"IMPRESSIONS\"],\n    \"campaign_ids\": [\"123\"],\n    \"adgroup_ids\": [],\n    \"ad_ids\": []\n}'\n\n ```\n\nExample response:\n\n``` json\n{\n    \"id\": \"31\",\n    \"advertiser_id\": \"12\",\n    \"name\": \"my api scheduled report\",\n    \"schedule\": \"WEEKLY\",\n    \"timezone\": \"America/Los_Angeles\",\n    \"recipient_emails\": [\"you@example.com\"],\n    \"dimension_granularity\": [\"CAMPAIGN\"],\n    \"time_granularity\": [\"DAY\"],\n    \"metrics\": [\"IMPRESSIONS\"],\n    \"campaign_ids\": [\"123\"],\n    \"adgroup_ids\": [],\n    \"ad_ids\": [],\n    \"is_archived\": false\n}\n\n ```\n\n# Endpoint Naming Schema\n\nAPI endpoints adhere to the general format below:\n\n```\n<url>/<api_version>/<entity>/<verb>\n\n ```\n\nAs an example, the API endpoint to create a campaign is the following:\n\n``` bash\nhttps://ads.nextdoor.com/v2/api/campaign/create\n\n ```\n\nSome endpoints require a resource id (e.g. campaigns, ad groups, etc.). In those cases, the resource id is the last path element of the URL:\n\n``` bash\nhttps://ads.nextdoor.com/v2/api/campaign/get/123456789\n\n ```\n\n# Verbs\n\nThe following standard verbs are used across the entire API:\n\n- `create` - creates a new entity\n    \n- `update` - updates an already existing entity\n    \n- `upload` - uploads data such a raw image\n    \n- `get` - gets an existing an entity based on its id and other parameters if applicable\n    \n- `list` - returns a list of objects based on the pagination input (if applicable) and other filter parameters\n    \n\nNote that the API endpoint naming schema is explicit in the sense that the verbs are present directly in the URL path (independent of the specific HTTP method used for each endpoint). For more details on this, see the full API specification below.\n\n# Data Types\n\nThe NAM API data types include standard primitives, basic types, and resources. The NAM API is strict about nullability requirements - some API inputs and outputs are nullable, while others are required. In the complete reference, types are assumed to be non-nullable by default. If they are nullable, the type definition includes `| null` .\n\nThe following are the primitive types supported in the API:\n\n- **Integer** - a signed 32-bit integer, represented directly as a number in JSON payloads. In the documentation below, this type is represented as `int`\n    \n- **Long** - a signed 64-bit integer, represented directly as a number in JSON payloads. In the documentation below, this is represented as `long`\n    \n- **String** - a double-quote delineated string. In the documentation below, this is represented as `string`\n    \n- **Boolean** - either `true` or `false`. In the documentation below, this is represented as `bool`\n    \n\nThe following are basic scalar types specific to the NAM API:\n\n- **AdsId** - A string representing a unique identifier for NAM resources. NAM IDs are unique, opaque identifiers across all objects in the API (e.g. `\"139845984734598\"`). In the documentation below, this is represented as `adsId`\n    \n- **LocalDate** - A string representing a local date in ISO8601 format (e.g. `\"2023-06-22\"`). In the documentation below, this is represented as `localDate`\n    \n- **LocalTime** - A string representing a local time (e.g. clock time) in ISO8601 format, with hours, minutes, and seconds (e.g. `\"13:37:00\"`). In the documentation below, this is represented as `localTime`\n    \n- **LocalDateTime** - A string representing the combination of a local date and local time, in ISO8601 format (e.g. `\"2023-06-22T13:37:00\"`). Note that this does not include any timezone or offset information, and as such cannot represent an unambiguous point in time on the Epoch timeline. In the documentation below, this is represented as `localDateTime`\n    \n- **Instant** - A string representing a UTC Instant on the Epoch timeline, in ISO8601 format (e.g. `\"2023-06-22T13:37:00Z\"`). In the documentation below, this is represented as `instant`\n    \n- **ZonedDateTime** - A string representing an Instant on the Epoch timeline, with complete offset and timezone information, in ISO8601 format extended with a timezone id (e.g. `\"2023-06-22T13:37:00-07:00[America/Los_Angeles]\"`). Timezone IDs come from the [IANA Timezone database](https://en.wikipedia.org/wiki/Tz_database), and are represented in square brackets at the end of the string. In the documentation below, this is represented as `zonedDateTime`\n    \n- **Duration** - A string representing a time interval, in [ISO8601 duration format](https://en.wikipedia.org/wiki/ISO_8601#Durations) (e.g. `\"PT20.345S\"`). In the documentation below, this is represented as `duration`\n    \n- **ZoneId** - A string directly representing a Timezone ID from the [IANA Timezone database](https://en.wikipedia.org/wiki/Tz_database) (e.g. `\"[America/New_York]\"`). In the documentation below, this is represented as `zoneId`\n    \n- **Money** - A string representing a monetary amount. The NAM API always expects and returns monetary amounts as [ISO4217 currency units](https://en.wikipedia.org/wiki/ISO_4217) followed by arbitrary-precision decimal values (e.g. `\"USD 10\"`). In the documentation below, this is represented as `money`\n    \n- **CurencyUnit** - A string representing only an individual currency unit, as an [ISO4127 currency code](https://en.wikipedia.org/wiki/ISO_4217) (e.g. `\"USD\"` or `\"EUR\"`). In the documentation below, this is represented as `currencyUnit`\n    \n\nIn addition to primitive and custom scalar types, the NAM API also has a few custom types to support pagination:\n\n- PaginationParameters - these are standard parameters like `cursor` and `page_size` used across all endpoints that support pagination.\n    \n- PageInfo - these are standard parameters like `end_cursor` and `page_size` used across all endpoints that support pagination.\n    \n\nFinally, the NAM API exposes the following resources:\n\n- Profile - the profile, which could be an agency, that owns other advertisers\n    \n- Advertiser - the entity that owns its own namespaced campaigns, creatives, etc\n    \n- Campaign - mapping of AdGroup(s) that serve end Ad(s)\n    \n- AdGroup - a group of Ad(s) that are set to serve Creative(s), also holds targeting info, budget, etc\n    \n- Ad - the actual Ad that is being served to end users on Nextdoor\n    \n- Creative - the visual users see on the Nextdoor app which includes an image, logo, and text data\n    \n- Media - the media, such as an image, that can be referenced for our creatives\n    \n- Report - a CSV report\n    \n\n# Pagination\n\nThe NAM API uses cursor based pagination. Some endpoints using the `List` verb include pagination parameters in the request input and return paginated data in the output.\n\n- For the input, paginated endpoints have a parameter called `pagination_parameters`, which includes two fields `page_size` and `cursor`.\n    \n    - `cursor` is an optional input for which object to start querying results from; if null then results are returned from the beginning\n        \n    - `page_size` is a required input, representing how many objects to return in the page. The maximum allowed value for `page_size` is 500.\n        \n- The response payload returns a `page_info` object containing fields for `end_cursor` (nullable) and `page_size`\n    \n    - If `end_cursor` is not null, that means there are more results to query for else if null then all the data has been returned.\n        \n\n# Rate Limiting\n\nAccess to the NAM API is subject to rate limiting. The current rate limit is 100 requests/minute per advertiser.\n\nIf you violate the rate limit, the API returns an `HTTP 429 Too Many Requests` error code. In this case, we recommend a few options:\n\n- Retry the request after a brief backoff if it's a one off\n    \n- Implement techniques such as [exponenital backoff and jitter](https://aws.amazon.com/blogs/architecture/exponential-backoff-and-jitter/) for API calls that are expected to be frequent\n    \n\n# Resource Limits\n\nNextdoor Ad Manager has limits in place for how many resources can exist at a given time for a given Advertiser; these limits apply only to entiities that do not have a status of \"Archived\":\n\n- Advertiser - max of 50 per Profile\n    \n- Campaign - max of 1000 per Advertiser\n    \n- AdGroups\n    \n    - Max of 1000 per Campaign\n        \n    - Max of 2500 per Advertiser\n        \n- Ad\n    \n    - Max of 10,000 per Advertiser\n        \n    - Max of 50 per AdGroup\n        \n- Creative - Max of 10,000 per Advertiser\n    \n- Scheduled Report - max of 100 per Advertiser\n    \n- Custom Audience - max of 100 per Advertiser\n    \n\n# Error Handling\n\nThe NAM API returns a set of standard of HTTP error codes for all endpoints, which includes:\n\n- 400 - Bad Request\n    \n- 401 - Unauthorized. The API key is invalid and needs to be re-generated\n    \n- 403 - Forbidden. The token passed in has been successfully authenticated, but can’t perform the given action due to not having sufficient permissions\n    \n- 404 - Not Found. The resource requested was not found\n    \n- 429 - Too many requests. The API call was rate-limited\n    \n\n# Versioning\n\nThe NAM API is versioned. The current version of the API is **v2**.\n\nThe documentation for the legacy v1 API can be found [here](https://www.postman.com/selfservenextdoor/workspace/self-serve-s-public-workspace/collection/12046385-fee43bad-f1a7-4316-ba85-0d647fbf7dbb); note that v1 and v2 are not compatible with each other, and we do not recommend using the v1 API, as it's subject to deprecation in the future.","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"27150393","collectionId":"a1a2883b-a6bf-4c29-ab5c-458f36417052","publishedId":"2s93z6d3yj","public":true,"publicUrl":"https://documenter-api.postman.tech/view/27150393/2s93z6d3yj","privateUrl":"https://go.postman.co/documentation/27150393-a1a2883b-a6bf-4c29-ab5c-458f36417052","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"documentationLayout":"classic-double-column","customisation":{"metaTags":[{"name":"description","value":"Public documentation for the Nextdoor Ads Api to programmatically manage advertisers, campaigns, and reports."},{"name":"title","value":"Nextdoor Ads Api"}],"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.0","publishDate":"2023-06-23T21:22:14.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{"title":"Nextdoor Ads Api","description":"Public documentation for the Nextdoor Ads Api to programmatically manage advertisers, campaigns, and reports."},"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/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/2s93z6d3yj"}