{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"76019b57-5a75-982b-da44-6f66debb842f","name":"Emma API","description":"## A word to the wise...\n\nUse the information on this page to set up and troubleshoot your API calls. If you are interested in paid API support, visit our [Custom Integrations](http://myemma.com/services/custom-integrations) page and fill out a request. Our system is monitored around the clock – and if there’s ever a dropped connection or outage, we’ll be sure to notify users on our [status page](http://myemma.com/status). \n\n***All JSON payloads must not exceed 10MB***\n\n# Overview\n\nEmma’s platform is accessible through our public API, which provides access to the following areas:\n\n- Managing member lists:\n  - Importing, editing and deleting\n  - Organizing members into groups\n  - Searching for members\n- Mailings:\n  - Viewing past mailings\n  - Controlling the status of pending mailings\n- Retrieving response:\n  - Accessing mailing response information by mailing or member of time period\n  - Accessing response at summary and detail levels\n\n# API wrappers\n\nEmma’s wrappers make it a breeze to connect to our API no matter which programming language you like to use. Just select your language and you’ll be able to integrate with Emma without the hassle of having to study all the ins and outs of our API first.\n\nThis collection is young (but growing!) and includes wrappers commissioned by Emma as well as some built by members of our community. Unless otherwise noted, all wrappers provide full coverage of our current API. If you see something that needs to be fixed or improved, please don’t hesitate submit a pull request. And if you’ve built a wrapper that you’d like to have listed here, [let us know!](integrations%40myemma.com)\n\n### PHP\n\n- [EmmaPHP](https://github.com/myemma/EmmaPHP) : Commissioned by Emma and built by Nashville developer [Dennis Monsewicz](https://github.com/dennismonsewicz).\n- [OhMyEmma](https://github.com/jwoodcock/OhMyEmma): Built by Nashville developer [Jacques Woodcock](https://github.com/jwoodcock).\n- [Emma](https://github.com/markroland/emma): Built by Nashville-based [Abenity, Inc](http://www.abenity.com/).\n\n### Python\n\n- [EmmaPython](https://github.com/myemma/EmmaPython): Built by Emma’s own [Doug Hurst](https://github.com/dalanhurst).\n\n### Ruby\n\n- [EmmaRuby](https://github.com/myemma/EmmaRuby): Commissioned by Emma and built by Nashville developer [Dennis Monsewicz](https://github.com/dennismonsewicz).\n\n### Objective-C\n\n- [EmmaSDK](https://github.com/myemma/EmmaSDK): Commissioned by Emma and built by Portland developer [Benjamin Van Der Veen](https://github.com/bvanderveen).\n\n### Node.js\n\n- [emma-sdk](https://github.com/nathanpeck/emma-sdk): Built by New York City developer [Nathan Peck](https://github.com/nathanpeck) for [StoryDesk](https://storydesk.com/).\n\n### .NET\n\n- [EmmaSharp](https://github.com/kylegregory/EmmaSharp): Built by developer [Kyle Gregory](https://github.com/kylegregory).\n\n\n# Quickstart\n\nLet’s get started by building some PHP code that will add a member to our audience.\n\nFirst, you’ll want to figure out how to authenticate (all calls require HTTP Basic Auth authentication). You’ll find your API keys inside your Emma account in the “Account Settings” section. There’s a public key, a private key and an account ID. It should look like this:\n\n\n![Emma Billing & Settings API Key](http://api.myemma.com/_images/api_key.png)\n\nNext, let’s add these authentication bits to our code.\n\n```php\n// Authentication Variables\n$account_id = \"xxx\";\n$public_api_key = \"xxx\";\n$private_api_key = \"xxx\";\n```\n\nThen we’ll want to capture the POSTed form variables from the request.\n\n```php\n// Form variable(s)\n$email = $_POST['email'];\n$first_name = $_POST['first_name'];\n$last_name = $_POST['last_name'];\n$groups = array(123456, 654321);\n\n// Member data other than email should be passed in an array called \"fields\"\n$member_data = array(\n  \"email\" => $email,\n  \"fields\" => array(\n    \"first_name\" => $first_name,\n    \"last_name\" => $last_name\n  ),\n  \"group_ids\" => $groups\n);\n```\n\nPlease note that the group_ids hat you’re adding members to are passed as an array of integers. In addition, you’ll always want to make sure that you sanitize any of these form inputs to protect your application.\n\nNow we’ll need to set the URL for the API call. The endpoint for all of our API calls is https://api.e2ma.net/. In this case, we’re using the endpoint that corresponds to adding a single member. There’s a separate call for adding bulk members.\n\n```php\n// Set URL\n$url = \"https://api.e2ma.net/\".$account_id.\"/members/add\";\n```\n\nNext, we’ll do a little dance with cURL that should look familiar to you. We’ll explain some particulars below the code block.\n\n```php\n// setup and execute the cURL command\n$ch = curl_init();\ncurl_setopt($ch, CURLOPT_USERPWD, $public_api_key . \":\" . $private_api_key);\ncurl_setopt($ch, CURLOPT_URL, $url);\ncurl_setopt($ch, CURLOPT_POST, count($member_data));\ncurl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($member_data));\ncurl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json'));\ncurl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\ncurl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);\n$head = curl_exec($ch);\n$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);\ncurl_close($ch);\n```\n\nLine 3 is where we use the public/private keys to authenticate our call. On lines 6-7, we force the API call to make its request in JSON and expect JSON in return.\n\nAt this point, the API call has been made. We might also want to inspect the result to see what happened. The API returns true HTTP response codes that you can examine to determine a request’s disposition.\n\n```php\n//execute post\nif($http_code > 200) {\n  $app_message = \"Error sending subscription request\";\n} else {\n  $app_message = \"Success!\";\n}\n\necho $app_message;\n```\n\nYou can [see the complete PHP script here](http://api.myemma.com/php_signup_example.html). There’s also a PHP example to [get members using their email address](http://api.myemma.com/php_get_member_example.html).\n\nTo extend this example further, you could make the API call associate the new member with a particular signup form. As written above, the member would be added to the audience but would not appear in the “recent activity” type searches or really any searches related to signups. Don’t worry – we’re currently working on a cleaner way to handle this signup form issue in the future.\n\n## API calls by category\n\nIn the following sections, we’ve organized API calls by their main entity type. Each call includes sample request and response data.\n\n- Fields\n- Groups\n- Mailings\n- Members\n- Response\n- Searches\n- Signup Forms\n- Webhooks\n\n# API rate limit\n\nTo prevent accidental overuse, calls to Emma's API are limited to **180 calls per minute**. If you exceed the limit, you‘ll receive a response of `403 Rate Limit Exceeded` until enough time has elapsed between calls.\n\n## Additional documentation\n\n# Pagination\n\nResponses with a large number of results should be paginated; the query parameters start and end can be used to specify how large a set of items to retrieve in each call, with a maximum page size of 500.\n\nAdditionally, for any call you can retrieve a count of the results (instead of the results themselves) by appending a query parameter of `count=true`.\n\nSo, to pull a large number of results, you start with a count:\n\nhttps://api.e2ma.net/123/members?count=true\n\nThen, iterate over the list in blocks of 500:\n\nhttps://api.e2ma.net/123/members?start=0&end=500\n\nhttps://api.e2ma.net/123/members?start=500&end=1000\n\nRequests for page sizes larger than 500 will limited to `start` + 500.\n\nCalls are rate-limited to prevent accidental overuse. If you exceed the limit you will receive a response of `403 Rate Limit Exceeded` until enough time has elapsed between calls.\n\n\n# Placeholder Syntax\n\n### Syntax Overview\n\nThe content of messages can be customized using the template tag library. Each template tag should be enclosed in a [% %] pair. Where a tag requires a qualifier value, the value should be attached with a colon.\n\nFor example, the following extract shows a member’s name being inserted into a greeting:\n\n```\nHello [% member:first_name %] [% member:last_name %],\n\nWelcome to the \"Exciting Onions\" mailing list, where you can be kept up to\ndate on all the latest onion-related news ...\n```\n\nSome tags also accept additional key/value pairs to control their behavior. For example, adding a default value to a member field:\n\n```\nHello [% member:first_name default=\"Friend\" %]\n```\n...or specifying the link text for a trackable link:\n\n```\nPlease visit [% link:http://fancyonions.com/home name=\"our website\" %]\n```\n\n***Todo: fully document the available tags***\n\n# Search Syntax\n\n### Syntax Overview\n\nSearches are constructed using nested JSON arrays of filters and boolean predicates. Here is an example of a simple filter:\n\n```\n[\"member_field:foo\", \"eq\", \"bar\"]\n```\n\nA filter is composed of one or more parts. The first part is always a filter term. In general, a filter term maps directly to a field in the results. A filter term can accept an argument (the `:foo` in the example above) that will have different meanings for different filter terms. If the filter has more than one part, the second part is *always* an *operator*. The remaining parts are arguments for the operator. Different operators will have different arguments, but will always have at least one.\n\nIn addition, filters can be nested using boolean predicates. Here’s an example of a nested query:\n\n```\n[\"and\",\n    [\"member_field:foo\", \"eq\", \"bar\"],\n    [\"member_since\", \"in last\", {\"day\": 5}]]\n```\n\nThis example will return all members who joined in the last 5 days and have their member_field `foo` set to `bar`. The available boolean predicates and examples of their use are below.\n\n### Operators\n\nThere are a bunch of operators available:\n\n- `eq` and `=`: Basic equality. Example: `[\"member_field:some_string_field\", \"eq\", \"bar\"]`\n- `lt` and `<`: Less than. Example: `[\"member_field:some_numeric_field\", \"lt\", 5]`\n- `gt` and `>`: Greater than. Example: `[\"member_field:some_numeric_field\", \"gt\", 5]`\n- `between`: Between. Takes two arguments. Example: `[\"member_field:some_numeric_field\", \"between\", 5, 10]`\n- `in last` and `in next`: Relative date. Takes an interval (explained below). Example: `[\"member_since\", \"in last\", {\"day\": 4}]`\n- datematch: Match a date argument. All parts of the date must match. Example: `[\"member_since\", \"datematch\", {\"year\": 2011}]`\n- `contains`: Match a string against a shell-glob-style expression. Example: `[\"member_field:some_string_field\", \"contains\", \"\\*foo\\*\"]`\n- `in`: Match a field against a list of values. Example: `[\"member_field:some_number_field\", \"in\", 3, 4, 5, 6]`\n- `any`: Match a given value against an array field. Example: `[\"member_field:some_array_field\", \"any\", \"ten\"]`\n\nIn addition to these basic operators, there is one advanced operator available:\n\n- `zip-radius:n:` where n can be one of `5, 10, 15, 20, 25, or 50`. Takes a single zip code which will be the center of the search. Example: `[\"member_field:some_zipcode_field\", \"zip-radius:10\", \"97202\"]` will return all members with a `zip_code_field` within 10 miles of 97202.\n\n#### Intervals\n\nAn interval is defined as a hash that contains one or more of the following keys:\n\n- `year`\n- `month`\n- `day`\n- `hour`\n- `minute`\n- `second`\n- \nFor example, `{\"year\": 2, \"day\": 4}` would specify an interval of two years and four days.\n\n#### Dates\n\nA date is defined as a hash that contains one or more of the following keys:\n\n- `year`\n- `month`\n- `day`\n- `hour`\n- `minute`\n- `second`\n- `dow` (day of week)\n- \nFor example, `{\"day\", 31}` would match the 31st of every month with a 31st day, while `{\"dow\": 2}` would match every Tuesday. Sunday is 0.\n\n### Boolean Predicates\n\nBoolean predicates operate on one or more nested clauses. These predicates are available:\n\n- `and`: All clauses must be true. Example: `[\"and\", [\"member_field:foo\", \"eq\", 1], [\"member_field:bar\", \"eq\", 2]]`\n- `or`: At least one clause must be true. Example: `[\"or\", [\"member_field:foo\", \"eq\", 1], [\"member_field:bar\", \"eq\", 2]]`\n- `not`: The single nested clause must not be true. Example: `[\"not\", [\"member_field:foo\", \"eq\", 1]]`\n\n### Filter Terms\n\nIn general, every key in the result records can be used as a filter term. Just use the key as the filter term. For example, to filter on `send_start`, you’d say `[\"send_start\", \"gt\", \"2011-12-15\"]`. In addition, there is a large set of advanced filter terms for filtering members:\n\n- `opened, clicked, shared, forwarded`. Will match on the timestamp of the corresponding response if it exists. All of these filter terms also allow a `mailing_id` as an argument (i.e. `opened:12345` matches if they opened mailing `12345`.\n- `member_field:x` where `x` is the short name of a member field. You can also use `x` by itself without `member_field:`.\n- `group`. Will match the name of a member group. Takes the special operators `defined` (belongs to any group) and `undefined` (does not belong to any group).\n- `received` Will match if the member received a mailing. Takes an optional `mailing_id` argument. If not given, will match if the member has received *any* mailing.\n- `clicked link`. Will match if the member has clicked on a link. Takes an optional `link_id` argument. If not given, will match if the member has clicked on *any* link.\n- `manage:` Will match if the member has manged their preferences. Optionally takes a date filter on the timestamp of the manage action. Optionally takes a `signup_form_id` argument. Example: `[\"manage:1234\", \"in last\", {\"day\", 30}]`.\n- `unsubscribed:` Will match if the member has unsubscribed. Optionally takes a date filter on the timestamp of the opt-out action. Optionally takes a `signup_form_id` filter argument.\n- `unsubscribed mailing:` Will match if the member has - `unsubscribed`. Optionally takes a date filter on the timestamp of the opt-out action. Optionally takes a `mailing_id` filter argument.\n- `bounced:` Will match if the member had either a soft or hard bounce. Optionally takes a date filter on the timestamp of the bounce. Optionally takes a `mailing_id` filter argument.\n- `email_user:` Will match on the user portion of the member’s email address\n- `email_domain:` Will match on the domain portion of the member’s email address\n- `email:` Will match on the member’s entire email address\n- `signup:` Will match if the member has signed up. Optionally takes a date filter on the timestamp of the signup action. Optionally takes a `signup_form_id` filter argument.\n- `signup_mailing:` Will match if the member has signed up. Optionally takes a date filter on the timestamp of the signup action. Optionally takes a `mailing_id` filter argument.\n\n# Webhook Usage\n\n### Webhook Overview\n\nWebhooks are an easy way to have Emma’s system notify you when certain events occur. In general, you will use our API to tell us which events you want to be notified about. When those events occur, we will make a POST to the URL you have provided with a particular set of data.\n\nWe have a broad array of triggering events and an easy API interface to create webhooks for each event. We do have [documentation of the webhook API](documentation of the webhook API).\n\nBelow is a list of each triggering event we currently support and the data that will be sent when that event occurs.\n\n### Webhook Post Data\n\n#### Member Signup\n```\n{\n        \"event_name\": \"member_signup\",\n        \"data\": {\n            \"account_id\": account_id,\n            \"member_id\": member_id,\n            \"mailing_id\": mailing_id\n            }\n}\n```\n\n#### Message Open\n```\n{\n        \"event_name\": \"message_open\",\n        \"data\": {\n            \"account_id\": account_id,\n            \"member_id\": member_id,\n            \"mailing_id\": mailing_id,\n            \"subject\": mailing_subject,\n            \"timestamp\": timestamp\n            }\n}\n```\n\n#### Message Click\n```\n{\n        \"event_name\": \"message_click\",\n        \"data\": {\n            \"account_id\": account_id,\n            \"member_id\": member_id,\n            \"mailing_id\": mailing_id,\n            \"subject\": mailing_subject,\n            \"timestamp\": timestamp,\n            \"link_id\": link_id\n            }\n}\n```\n\n#### Member Optout\n```\n{\n        \"event_name\": \"member_optout\",\n        \"data\": {\n            \"account_id\": account_id,\n            \"member_id\": member_id,\n            \"mailing_id\": mailing_id,\n            \"subject\": mailing_subject,\n            \"timestamp\": timestamp\n            }\n}\n```\n\n#### Message Share\n```\n{\n        \"event_name\": \"message_share\",\n        \"data\": {\n            \"account_id\": account_id,\n            \"member_id\": member_id,\n            \"mailing_id\": mailing_id,\n            \"subject\": mailing_subject,\n            \"timestamp\": timestamp,\n            \"network\": network_code\n            }\n}\n```\n\n#### Message Share Click\n\n```\n{\n        \"event_name\": \"message_share_click\",\n        \"data\": {\n            \"account_id\": account_id,\n            \"member_id\": member_id,\n            \"mailing_id\": mailing_id,\n            \"subject\": mailing_subject,\n            \"timestamp\": timestamp,\n            \"network\": network_code\n            }\n}\n```\n\n#### Message Forward\n```\n{\n        \"event_name\": \"message_forward\",\n        \"data\": {\n            \"account_id\": account_id,\n            \"member_id\": member_id,\n            \"mailing_id\": mailing_id,\n            \"subject\": mailing_subject,\n            \"timestamp\": timestamp\n            }\n}\n```\n\n#### Mailing Finish\n```\n{\n        \"event_name\": \"mailing_finish\",\n        \"data\": {\n            \"mailing_id\": mailing_id,\n            \"account_id\": account_id,\n            \"subject\": mailing_subject,\n            \"timestamp\": timestamp\n            }\n}\n```\n\n#### Import Finish\n```\n{\n        \"event_name\": \"import_finish\",\n        \"data\": {\n            \"import_id\": import_id,\n            \"account_id\": account_id,\n            \"timestamp\": timestamp,\n            \"resource_url\": resource_url\n            }\n}\n```\n\n#### Member Add\n```\n{\n        \"event_name\": \"member_add\",\n        \"data\": {\n            \"member_id\": member_id,\n            \"account_id\": account_id,\n            \"timestamp\": timestamp,\n            \"signup_form_id\": signup_form_id,\n            \"resource_url\": resource_url\n            }\n}\n```\n\n#### Member Update\n```\n{\n        \"event_name\": \"member_update\",\n        \"data\": {\n            \"member_id\": member_id,\n            \"account_id\": account_id,\n            \"timestamp\": timestamp\n            }\n}\n```\n\n#### Member Delete\n```\n{\n        \"event_name\": \"member_delete\",\n        \"data\": {\n            \"member_id\": member_id,\n            \"account_id\": account_id,\n            \"timestamp\": timestamp\n            }\n}\n```\n\n#### Member Add To Group\n\nIt’s possible that instead of an array for `member_ids` or `group_ids` you may receive a string with the text all. Because of calls that can add a member to all groups or add *all* members to a single group, this is easier than returning a giant list of IDs.\n\n```\n{\n        \"event_name\": \"member_add_to_group\",\n        \"data\": {\n            \"member_ids\": {member_ids},\n            \"account_id\": account_id,\n            \"timestamp\": timestamp.\n            \"group_ids\": {group_ids}\n            }\n}\n```\n\n#### Member Remove From Group\n\nIt’s possible that instead of an array for `member_ids` or `group_ids` you may receive a string with the text all. Because of calls that can remove a member from all groups or remove *all* members from a single group, this is easier than returning a giant list of IDs.\n```\n{\n        \"event_name\": \"member_remove_from_group\",\n        \"data\": {\n            \"member_ids\": {member_ids},\n            \"account_id\": account_id,\n            \"timestamp\": timestamp.\n            \"group_ids\": {group_ids}\n            }\n}\n```\n\n#### Group Create\n```\n{\n        \"event_name\": \"group_create\",\n        \"data\": {\n            \"group_id\": group_id,\n            \"group_name\": group_name,\n            \"account_id\": account_id,\n            \"timestamp\": timestamp,\n            \"resource_url\": resource_url\n            }\n}\n```\n\n#### Group Delete\n```\n{\n        \"event_name\": \"group_delete\",\n        \"data\": {\n            \"group_id\": group_id,\n            \"account_id\": account_id,\n            \"timestamp\": timestamp,\n            \"resource_url\": resource_url\n            }\n}\n```\n\n#### Group Update\n```\n{\n        \"event_name\": \"group_update\",\n        \"data\": {\n            \"group_id\": group_id,\n            \"group_name\": group_name,\n            \"account_id\": account_id,\n            \"timestamp\": timestamp,\n            \"resource_url\": resource_url\n            }\n}\n```\n\n#### Field Create\n```\n{\n        \"event_name\": \"field_create\",\n        \"data\": {\n            \"field_id\": field_id,\n            \"account_id\": account_id,\n            \"timestamp\": timestamp,\n            \"resource_url\": resource_url\n            }\n}\n```\n\n#### Field Delete\n```\n{\n        \"event_name\": \"field_delete\",\n        \"data\": {\n            \"field_id\": field_id,\n            \"account_id\": account_id,\n            \"timestamp\": timestamp,\n            \"resource_url\": resource_url\n            }\n}\n```\n\n#### Field Update\n```\n{\n        \"event_name\": \"field_update\",\n        \"data\": {\n            \"field_id\": field_id,\n            \"account_id\": account_id,\n            \"timestamp\": timestamp,\n            \"resource_url\": resource_url\n            }\n}\n```\n\n#### Member Status Update\n```\n{\n        \"event_name\": \"member_status_update\",\n        \"data\": {\n            \"member_ids\": {member_ids},\n            \"account_id\": account_id,\n            \"new_status\": new_status,\n            \"timestamp\": timestamp\n            }\n}\n```","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"278059","collectionId":"76019b57-5a75-982b-da44-6f66debb842f","publishedId":"6fTzk3m","public":true,"publicUrl":"https://documenter-api.postman.tech/view/278059/6fTzk3m","privateUrl":"https://go.postman.co/documentation/278059-76019b57-5a75-982b-da44-6f66debb842f","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"EF5B25"},"documentationLayout":"classic-double-column","version":"8.10.0","publishDate":"2017-08-25T13:55:46.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/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/6fTzk3m"}