{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"a4b45158-d55d-41fc-bb40-f8e070e3783f","name":"Spark.re","description":"## Spark powers new development real estate\n\n[Spark](https://www.spark.re) is a sales, marketing, and customer relationship management platform designed specifically for the new development/pre-sale real estate industry.\n\nFollow along with this documentation to learn about how to use the API and contact us at [support@spark.re](https://mailto:support@spark.re) if you have any further questions.\n\n# Getting Started\n\nThe Spark API is a RESTful interface, providing programmatic access to much of the data in the platform. It provides predictable URLs for accessing resources, and uses built-in HTTP features to receive requests and return responses.\n\nKeep in mind that this documention assumes some basic understanding of how to work with APIs, including the requirement to [percent/url encode](https://en.wikipedia.org/wiki/Percent-encoding) all URLs before submitting requests.\n\n# Environments\n\nSpark has a few publically accessible environments, while most of the time you'll want to work with the production environment, if you've been given access to to our demo environment (which is usually the case if you're testing/building a new integration), you'll need to prefix all of the domains with \"demo\".\n\nFor example:\n\n- `https://spark.re` becomes `https://demo.spark.re`\n    \n- `https://app.spark.re` becomes `https://demo-app.spark.re`\n    \n- `https://api.spark.re` becomes `https://demo-api.spark.re`\n    \n\n**Note:** If you're using the Postman collection & environment, you only need to update the initial and current values, not the variable name. This allows you to easily switch between the demo and production environment.\n\n# Understanding the Data\n\n## Companies & Projects\n\nData in Spark is stored and returned at 2 levels. You are able to create an API key at a company or project level, and depending on the which is submitted with the request, you will receive different data in return:\n\n### Company\n\nA company is a real estate developer, marketing firm, or brokerage using the Spark platform. All of our data is separated on a per company basis.\n\nWhen accessing the API using a company API key, it will return data for all of the projects that belong to it.\n\n### Project\n\nA project is an indivdual real estate development, usually a single building that is being sold or leased. All projects belong to a single company, but a company can have multiple projects.\n\nWhen accessing the API using a project API key, it will only return data for that project.\n\n## Formats\n\n### Dates & Times\n\nAll dates and times are returned following the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) standard, in UTC (referred to as Z, meaning zero offset):\n\n`\"created_at\": \"2023-03-02T20:17:00Z\"`\n\n### Money\n\nAll monetary values are returned in cents:\n\n`\"purchase_price\": 142679200`\n\nPrices and other monetary values will need to be converted by moving the decimal place based on the currency you are working with.\n\nFor example, to convert to a currency that has 2 decimal places, (like USD/CAD), divide the value by 100.\n\n# Authorization\n\n## Warning !@#&\n\n**The Spark API should only ever be accessed from the server side (aka backend) component of an application. Accessing the API from the client side (such as using javascript that is executed in a web browser) will expose the API key, and could allow access to all of the company and project data within Spark. You are responsible for connecting to the API, and storing credentials in a secure way.**\n\n## Authorization Header\n\nSpark uses an HTTP token authorization for API access. An API key can be generated from a Spark account under Settings -> API. If you don't have access to Spark, ask your company contact to provide you with an account, or an API key with the correct permissions (see below).\n\nAn authorization header should be submitted with all requests, in the following format:\n\n`Authorization: Token token=\"•••••••\"`\n\n**Note**: The authorization header has been set on the top level of the Spark.re collection in Postman, and is inherited on all API requests automatically. There is no need to manually add it to each Postman request.\n\nExample:\n\n``` shell\ncurl --location '{{api.spark.re}}/v2/contacts' \\\n     --header 'Authorization: Token token=\"•••••••\"'\n\n ```\n\n## API Key Permissions\n\nWhen API keys are generated in Spark, they should be given the minimum required permissions to return only the data required for the integration.\n\nIf an integration only requires access to read or write Contacts, please don't give access to read Inventory, Contracts, Reservations, Projects, etc.\n\n**Note**: You don't need read permissions on data if you are only writing data. When a Create or Update request is sent, just as long as it was successful, you will get the result back in the response.\n\n# Pagination\n\nWhen a response from the API includes many results, Spark will paginate them and return a subset. By default, Spark will return 25 results per page.\n\nFor example, `GET /v2/contacts` (Get Contacts) will only return 25 contacts even though the database can include many thousands of contacts. This makes the response quicker and easier to handle.\n\nWhen a response is paginated, the response headers will include a `Link` header. The link header will be omitted if the endpoint does not support pagination or if all results fit on a single page. The link header contains URLs that you can used to fetch additional pages of results.\n\n``` shell\ncurl --location '{{api.spark.re}}/v2/contacts'\n\n ```\n\nIf the response is paginated, the link header will look something like:\n\n`Link: <{{api.spark.re}}/v2/contacts?page=2>; rel=\"last\", <{{api.spark.re}}/v2/contacts?page=2>; rel=\"next\"`\n\nThe link header provides the URL for the previous, next, first, and last page of results:\n\n- The URL for the previous page is followed by `rel=\"prev\"`.\n    \n- The URL for the next page is followed by `rel=\"next\"`.\n    \n- The URL for the first page is followed by `rel=\"first\"`.\n    \n- The URL for the last page is followed by `rel=\"last\"`.\n    \n\nIn some cases, only a subset of these links are available. For example, the link to the previous page won't be included if you are on the first page of results, and the link to the last page won't be included if it can't be calculated.\n\nYou can use the URLs from the link header to request another page of results. For example, to request the next page of results based on the previous example:\n\n``` shell\ncurl --location '{{api.spark.re}}/v2/contacts?page=2'\n\n ```\n\n## Results Per Page\n\nMost endpoints accept a `per_page` query parameter to control how many results are returned on a page. The maximum results permitted per page is 100.\n\nFor example, this request submits the `per_page` query parameter to return five results per page:\n\n``` shell\ncurl --location '{{api.spark.re}}/v2/contacts?per_page=5'\n\n ```\n\nWhen the `per_page` parameter is submitted, it will be included in the response link header:\n\n`Link: <{{api.spark.re}}/v2/contacts?page=2&per_page=5>; rel=\"last\", <{{api.spark.re}}/v2/contacts?page=2&per_page=5>; rel=\"next\"`\n\n## Request Parameters\n\nWhen submitting a request that includes query parameters for filtering & ordering, the response link header will include them.\n\nFor example, this request submits the `first_name_cont` query parameter to return contacts who's first name contains John:\n\n``` shell\ncurl --location '{{api.spark.re}}/v2/contacts?first_name_cont=John'\n\n ```\n\nWhen the `first_name_cont` parameter is submitted, it will be included in the response link header:\n\n`Link: <{{api.spark.re}}/v2/contacts?page=2&first_name_cont=John>; rel=\"last\", <{{api.spark.re}}/v2/contacts?page=2&first_name_cont=John>; rel=\"next\"`\n\n# Filtering\n\nWhen looking at the endpoints listed in this documentation, there will be query parameters listed (ending with `_#`) when that endpoint supports filters. The listed query parameters are meant to outline commonly used filters, however almost every field returned in the results can be used for filtering.\n\nWhen using the listed query params, you simply need to replace the `_#` with one of the modifiers below. A few examples of this may be:\n\n- `rating_value_#` → `rating_value_eq`\n    \n- `city_#` → `city_start`\n    \n- `first_name_#` → `first_name_cont`\n    \n\n| **Modifier** | **Description** | **Works with field types** |\n| --- | --- | --- |\n| _eq | Equals | boolean, float, integer, date, datetime, string |\n| _not_eq | Does not equal | boolean, float, integer, date, datetime, string |\n| _cont | Contains | float, integer, date, datetime, string |\n| _not_cont | Does not contain | float, integer, date, datetime, string |\n| _null | Has no value | float, integer, date, datetime, string |\n| _not_null | Has a value | float, integer, date, datetime, string |\n| _lt | Less than | float, integer, date, datetime |\n| _lteq | Less than or equal to | float, integer, date, datetime |\n| _gt | Greater than | float, integer, date, datetime |\n| _gteq | Greater than or equal to | float, integer, date, datetime |\n| _start | Starts with | float, integer, date, datetime, string |\n| _not_start | Does not start with | float, integer, date, datetime, string |\n| _end | Ends with | float, integer, date, datetime, string |\n| _not_end | Does not end with | float, integer, date, datetime, string |\n\nTo use non listed filter, provide a field name (aka key) along with an modifier from the list below. The modifiers should added to the end of the field name.\n\nFor example, looking at a partial contact object from the `GET /v2/contacts` (Get Contacts) request has `email` , `first_name`, and`created_at` fields.\n\n``` javascript\n{\n    ~~~\n    \"created_at\": \"2023-02-24T03:32:37Z\",\n    \"date_of_birth\": null,\n    \"email\": \"john@sparkreexample.com\",\n    \"fax\": null,\n    \"first_name\": \"John\",\n    ~~~\n}\n\n ```\n\nTo filter the results you can pass the parameters in the following formats to achieve the result noted in the comments below:\n\n``` shell\n// Email must exactly match john@sparkreexample.com\ncurl --location '{{api.spark.re}}/v2/contacts?email_eq=john@sparkreexample.com'\n// First name must contain John\ncurl --location '{{api.spark.re}}/v2/contacts?first_name_cont=John'\n// Contact was created on or after March 2nd\ncurl --location '{{api.spark.re}}/v2/contacts?created_at_gteq=2023-03-02'\n\n ```\n\n## Matching Multiple Values\n\nThere may be cases where you want results that match multiple values for the same query parameter. All of the modifiers above (except `_null` and `_not_null`) can be used with an additional `_any` modifier.\n\nWhen using the any modifier, you will need to submit the query parameter name (aka key) as an array, by appending `[]` to the end. A few examples of this may be:\n\n- `rating_value_eq` → `rating_value_eq_any[]`\n    \n- `city_eq` → `city_eq_any[]`\n    \n- `first_name_cont` → `first_name_cont_any[]`\n    \n\nThose filters in action:\n\n``` shell\n// Has Hot or Warm rating\ncurl --location '{{api.spark.re}}/v2/contacts?rating_value_eq_any[]=Hot&rating_value_eq_any[]=Warm'\n// Lives within New York or New Jersey\ncurl --location '{{api.spark.re}}/v2/contacts?city_eq_any[]=New+York&city_eq_any[]=New+Jersey'\n// Has first name that contains John, Jane, or Jim\ncurl --location '{{api.spark.re}}/v2/contacts?first_name_cont_any[]=John&first_name_cont_any[]=Jane&first_name_cont_any[]=Jim'\n\n ```\n\n## Combining Multiple Parameters\n\nMultiple query parameters can be separated by `&`, which then filters down the results further. Each query parameter is appened with `AND`, meaning the results will only match all of the filters requested.\n\nFor example, you can filter the results to only return Contacts with a `first_name` of John in the `city` of New York:\n\n``` shell\ncurl --location '{{api.spark.re}}/v2/contacts?first_name_cont=John&city_eq=New+York'\n\n ```\n\n## Additional Examples\n\nSee the example requests included in this documentation for additional examples of how to use the filters.\n\n# Ordering\n\nThere are query parameters on each endpoint that supports ordering (aka sorting). Most fields returned in the the results can be used for ordering. A direction can also be provided to change which results are returned first.\n\n**Note**: The fields that are supported must be a direct child of a parent object that is returned, ordering based on nested fields is not currently supported. If you want to sort based on nested fields, make a request with the required order to those endpoints.\n\n### Field Selection\n\nThe results are ordered by `created_at` by default. This in combination with a default decending direction means that the newest result will always be returned first, and the oldest last.\n\nTo order the results, submit the `order` query parameter along with the name of a field as the value.\n\n``` shell\n// Order by id\ncurl --location '{{api.spark.re}}/v2/contacts?order=id'\n// Order by last_name\ncurl --location '{{api.spark.re}}/v2/contacts?order=last_name'\n// Order by registered_at\ncurl --location '{{api.spark.re}}/v2/contacts?order=registered_at'\n\n ```\n\n### Direction\n\nThe results are ordered in decending (desc) order by default, which returns Z-A 9-0. You can also sort ascending (asc) which returns A-Z 0-9.\n\nTo change the direction, submit the `order`, and `direction` query parameters.\n\n``` shell\n// Order by id ascending\ncurl --location '{{api.spark.re}}/v2/contacts?order=id&direction=asc'\n// Order by last_name ascending\ncurl --location '{{api.spark.re}}/v2/contacts?order=last_name&direction=asc'\n// Order by registered_at descending\ncurl --location '{{api.spark.re}}/v2/contacts?order=registered_at&direction=desc'\n\n ```\n\n# GET\n\nQuerying for a list of records returns a limited dataset for all records. This includes model attributes and foreign keys. These records can be further refined with the use of filters.\n\nQuerying for a single record returns the most complete dataset. All model attributes and associations are returned with their own attributes and foreign keys.\n\n# Create & Update\n\nFor all create (via POST) or update (via PUT) requests, you will need to keep the following requirements in mind:\n\n## Company API key vs Project API key\n\nOur API only supports creating or updating data from a project api key. This means if you're working with a company api key, you will get an error when submitting the request. We will be supporting these request types from a company api key in the near future.\n\n## Content Type\n\nSpark accepts data for processing in [JSON](https://en.wikipedia.org/wiki/JSON) format. A header should be submitted with all create or update requests, in the following format:\n\n`Content-Type: application/json`\n\n**Note**: The content type header is set automatically in Postman as part of the request. The body is set to pass in raw text in JSON. There is no need to manually add it to each Postman request.\n\nExample:\n\n``` shell\ncurl --location '{{api.spark.re}}/v2/contacts' \\\n     --header 'Content-Type: application/json' \\\n     --data-raw '{ \"email\": \"john@sparkreexample.com\" }'\n\n ```\n\n## Date & Time Formats\n\nAll dates and times are accepted following the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) standard. The following dates and times are all considered the same, and will be processed regardless of the format provided.\n\n| **Description** | **Format** |\n| --- | --- |\n| Date | `2023-03-02` |\n| Date and time | `2023-03-02T00:00:00` |\n| Date and time in compressed format | `20230302T000000` |\n| Date and time with miliseconds | `2023-03-02T00:00:00.000` |\n| Date and time in UTC | `2023-03-02T00:00:00Z` |\n| Date and time with timezone | `2023-03-02T00:00:00+00:00` |\n\n**Note**: If a date is submitted where a date and time is expected, the time will be set to 00:00.\n\n### Timezones\n\nDates & times in Spark are stored in UTC, so if a timezone is not specified, it will assume you've converted to UTC before submission. If a timezone is specified, Spark will adjust the time to UTC before saving the value.\n\nIf the following datetime with a timezone offset of -8 (PST) is passed, when saved and returned in UTC it will have been adjusted to the next day.\n\n`2023-03-02T17:25:50-08:00` → `2023-03-03T01:25:50Z`\n\n## ID vs. Page Location\n\nFor certain API integrations, it is highly recommend to use the `ID` endpoint (if available) instead of page location. Update (via PUT) requests that targets `ID` can reduce the likelihood of issues as page locations can change over time during a project's lifespan.\n\n# Status Codes\n\nResponses from the Spark API will return one of the following status codes:\n\n| Code | Description |\n| --- | --- |\n| 200 Success | Everything worked as expected |\n| 201 Created | Entity was created |\n| 400 Bad Request | The request format was incorrect - Often a required parameter is missing, or the JSON format is incorrect. |\n| 401 Unauthorized | No valid API key provided |\n| 402 Request Failed | Parameters were valid but request failed |\n| 404 Not Found | The requested item doesn’t exist |\n| 422 Unprocessable Entity | The request format was correct but could not be processed - Often a referenced ID is not valid |\n| 500, 502, 503, 504 | Server Errors - Something is wrong on Spark's end |","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"23562257","team":161219,"collectionId":"a4b45158-d55d-41fc-bb40-f8e070e3783f","publishedId":"2s93JnTRg1","public":true,"publicUrl":"https://api-docs.spark.re","privateUrl":"https://go.postman.co/documentation/23562257-a4b45158-d55d-41fc-bb40-f8e070e3783f","customColor":{"top-bar":"FFFFFF","right-sidebar":"1f1d23","highlight":"f46b44"},"documentationLayout":"classic-double-column","customisation":{"metaTags":[{"name":"description","value":""},{"name":"title","value":"Spark.re API Documentation"}],"appearance":{"default":"light","themes":[{"name":"dark","logo":"https://content.pstmn.io/34baae98-96eb-4916-83cf-fce1e9b37c42/RmF2aWNvbiAtIDMyeDMyLnBuZw==","colors":{"top-bar":"212121","right-sidebar":"303030","highlight":"FF6C37"}},{"name":"light","logo":"https://content.pstmn.io/dd64fc33-fff7-48ec-90de-111a4613d954/RmF2aWNvbiAtIDMyeDMyLnBuZw==","colors":{"top-bar":"FFFFFF","right-sidebar":"1f1d23","highlight":"f46b44"}}]}},"version":"8.10.1","publishDate":"2025-07-07T21:00:43.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{"title":"Spark.re API Documentation","description":""},"logos":{"logoLight":"https://content.pstmn.io/dd64fc33-fff7-48ec-90de-111a4613d954/RmF2aWNvbiAtIDMyeDMyLnBuZw==","logoDark":"https://content.pstmn.io/34baae98-96eb-4916-83cf-fce1e9b37c42/RmF2aWNvbiAtIDMyeDMyLnBuZw=="}},"statusCode":200},"environments":[{"name":"Spark.re ~ Example Environment","id":"31f833a8-65c2-40ef-a394-eff563ad381d","owner":"524038","values":[{"key":"spark.re","value":"https://spark.re","enabled":true,"type":"default"},{"key":"api.spark.re","value":"https://api.spark.re","enabled":true,"type":"default"},{"key":"app.spark.re","value":"https://app.spark.re","enabled":true,"type":"default"},{"key":"api-key","value":"123456ABCDEFG","enabled":true,"type":"secret"},{"key":"registration-form-path","value":"/company-permalink/project-permalink/register/form-permalink","enabled":true,"type":"default"}],"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/c3f7828e6c9b035b6c97a267ce66c3714109a3d338456ccfa55a307a529bfe5c","favicon":"https://res.cloudinary.com/postman/image/upload/v1751918079/team/296ad47de44d4eaac7bf559fc8ae9924.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":"Spark.re ~ Example Environment","value":"524038-31f833a8-65c2-40ef-a394-eff563ad381d"}],"canonicalUrl":"https://api-docs.spark.re/view/metadata/2s93JnTRg1"}