{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"11bc3389-f19d-4e79-8f59-212b82530fa7","name":"lobo API v3.1","description":"The new API (version 3) is a JSON-based REST API.\n\nPlease find a description of the API, its resource handling and use case examples below.\n\n- [General](#general)\n    \n    - Endpoint\n        \n    - Settings within LOBO frontend\n        \n    - Authentication\n        \n- [Quick start](#quick-start)\n    \n- [Conventions](#conventions)\n    \n    - Naming and data type conventions\n        \n    - Record and resource handling using HTTP methods\n        \n    - Relationships\n        \n    - Filtering\n        \n    - Paging\n        \n- [Description of the routes](#description-of-the-routes)\n    \n- [Use case examples](#use-case-examples)\n    \n    - Token retrieval\n        \n    - Address information retrieval\n        \n    - Placing orders\n        \n    - Webhook handling\n        \n- [Resource documentation](#resource-documentation)\n    \n- [Message examples](#message-examples)\n    \n\n# General\n\nThis section gives a brief summary on how to access the LOBO API.\n\n## Endpoint\n\nThere are two ways to access the LOBO API:\n\n| Type of accessing the LOBO API | URL |\n| --- | --- |\n| Access via productive system | https://\\[YOUR-LOBO-SUBDOMAIN\\].lobolink.eu/lobo/api/v3/public |\n| Access via sandbox | https://\\[YOUR-LOBO-SUBDOMAIN\\].lobolink.eu/lobo/sandbox/api/v3/public |\n\nThe use of SSL (https) is mandatory.\n\n## Settings within LOBO frontend\n\nTo be able to access the API, several settings must be done within the LOBO frontend:\n\n- First of all a new API user must be created by selecting _**New > API key...**_ at `https://[YOUR-LOBO-SUBDOMAIN].lobolink.eu/lobo/#!/system/apiAccess/` (Alternatively the settings of an existing API user can be edited.)\n    \n- Credentials for the user must be set within _**user name**_ and _**password**_ fields.\n    \n- The duration of the _**Validity**_ of the JWT token must be set.\n    \n- It is recommended to allow API-access only from well known IP adresses to be set within _**IP restriction**_ field.\n    \n- Finally the _**Scopes**_ for accessing the API for that certain user has to be set. Here it is strongly recommended to just allow the minimal required set of scopes only!\n    \n\n## Authentication\n\nWe use JWT tokens for authentication.\n\n- Wheather or not a certain API resource can be accessed is depending on the scopes, which were set for that API user within the LOBO frontend. This information is included within a token.\n    \n- After retreiving a new token, the authentication for accessing a certain resource will be done based on this token.\n    \n- After expiration of the validity of a token, a new token must be retrieved.\n    \n\n#### Retreival of a JWT token\n\nA valid JWT token can be retrieved with a HTTP Basic Auth request against the `/token` route by using the HTTP POST method including the credentials (user name and password), which were set within the LOBO frontend.  \nPlease refer to the message description of _**/token request/refresh**_ at [Message Examples](#message-examples)\n\n#### Accessing resources with valid token\n\nAll messages requesting resources from the API must contain a valid token within the Authorization header as _Bearer Token_.\n\n## Rate limiting\n\nA rate limiting was implemented as described in the following table.\n\n| Type of access | Examples | Type of rate limiting |\n| --- | --- | --- |\n| Public access | Requesting a token or a pdf-download. | Strict rate limiting |\n| Authenticated access | All messages with valid bearer token. | Relaxed rate limiting |\n\nDue to this rate limiting it is recommended to request a new bearer token only in case of token expiry.\n\n# Quick start\n\nFor a successful order creation the following steps must be executed:\n\n- Retrieval of a new JWT token.\n    \n- Sending the required data to be able to establish a new order within the body of a HTTP POST message against the route `/orderdrafts` (containing the JWT Token within the Authorization Header).\n    \n- Switching the created `orderdraft` into a real `order` by sending a HTTP PUT message to `orderdrafts/{uuid}/order` (where `uuid` is the id of the order received within the POST message above).\n    \n\n# Conventions\n\n## Naming and data type conventions\n\n- The message body (if present) of response messages will contain data in JSON format. Those messages will contain a **'data'** array containing the requested datasets. Most answers will also contain a **'meta'** array inside the message body to provide additional information in the response (as e.g. the number of datasets contained within the message body).\n    \n- Resources are addressed with their unique key, which is either of type integer (denoted as `{id}`) or in case of the resource _order_ of type string (denoted as `{uuid}`).\n    \n- All routes and all query parameters are in lower case letters without using spaces or underscores (for concatenation of words).\n    \n- Query parameters, which are used to control the request (like limiting the amount of datasets), are written with leading underscores (e.g. `_embed`, `_limit`).\n    \n- Boolean values are coded as integer as defined below:\n    \n    - 1 (Integer) ... True\n        \n    - 0 (Integer) ... False\n        \n- Date and Time values are formatted in a ISO-8601 compatible format, eg. `2022-06-14T20:41:42+02:00`\n    \n\n## Record and resource handling using HTTP methods\n\nA resource is always accessed through its pluralized name. E.g. you can access orders through `/orders`.\n\nThe following examples will use the `orders` resource as an example. But the exact same pattern applies to all of our resources.\n\nFor detailed information about the supported HTTP methods of all resources, please refer to the sections [Description of the routes](#description-of-the-routes) and [Message examples](#message-examples) below.\n\n_Please note that not all HTTP methods are implemented for all routes._\n\n#### Getting a single record\n\nTo retrieve a single record of a resource, the HTTP method GET is to be used.\n\nExample:  \n`GET /orders/{uuid}` (Where `{uuid}` denotes the unique key of that certain resource - in case of other resources than _orders_ `{id}` is to be used.)\n\nThe response will be a JSON document (inside the message body) containing the requested single record within the **'data'** array.\n\n#### Getting a multiple records\n\n`GET /carriers/{id1,id2,...,idN}` (Where `{id1}`, `{id2}`, `{idN}` denotes the unique keys of that certain resources) - in case of other resources than _carriers_ `{uuid}` is to be used.)  \n`{id}`\\-s, `{uuid}`\\-s must be separated by commas and must not contain spaces between them.\n\nIn case the given `{id}`, `{uuid}` is not valid, the request status code will be 200, but the record with the invalid `{id}` will not be reported in the response.\n\nThe response will be a JSON document (inside the message body) containing the requested multiple records within the **'data'** array.\n\n#### Listing a resource\n\nUse `GET /orders` to retreive all records for a certain resource.\n\nPlease note that in case a huge amount of records is available, the number of returned records will be limited (e.g. for orders).\n\nThe response will be a JSON document (inside the message body) containing the requested records within the **'data'** array.\n\n#### Creating a record\n\nUse `POST /orders` to create a new record via the LOBO API.\n\n- The request body should be a JSON document containing all data required to be able to successfully create a new record.\n    \n- A validation of the body content will be executed to be able to report possibly existing errors within the response.\n    \n- In case of successful creation of the dataset, the response will contain the record that changed due to the request. This means that the newly created record will be contained in the response as if it would had been requested using `GET /orders/{uuid}` (together with its unique key `{uuid}`).\n    \n\n#### Updating a record\n\nFor updating a record the HTTP method PATCH can be used.\n\nWhen using `PATCH /orders/{uuid}`, only those properties, which are present in the message body of the request message, will be updated. Properties that are left out will be kept untouched (i.e. they will remain on the actual value).\n\nThe response works the same as with a `POST` request, i.e. the whole record is provided within the response message as if it would had been requested using `GET /orders/{uuid}`.\n\n#### Deleting a record\n\nUse `DELETE /orders/{uuid}` to delete a record identified by its unique key `{uuid}`. The request should not have a body.\n\nThe response is depending on wheater or not the record exists:\n\n- In case the record exists and will be deleted, a response message with HTTP response code 204 with empty message body will be returned.\n    \n- In case no record with the provided unique key `{uuid}` (or `{id}`) was found, a response message with HTTP response code 404 will be returned containing a message body describing the failure.\n    \n\n## Relationships\n\nThe LOBO API can handle existing relationships between different resources. Two kinds of relationships can be distinguished:\n\n- One-to-one relationship: A record of resource A has an unique ID that points to a record of resource B. For example the resource `stop` has the property `{fkorderuuid}`, which points to a certain `order` record.\n    \n- One-to-many relationship: A record of resource A has zero or more records of resource B that points to it. E.g. each `order` record has a one-to-many relationship to zero, one or more `stop` records.\n    \n\nWhen you `GET` a resource that has a relationship, the one-to-one relationship will be presented with the prefix `fk`(foreign key) and the name of the property suffixed with `id` (or in case of `order` with `uuid`): `fkorderuuid` is given here as an example.  \nOne-to-many relationships will not be contained within the answer of a request per default, but can be embedded as described in [Requesting records with embedded data](#requesting-records-with-embedded-data). Only for the resource _surcharges_ all the product IDs will be contained within an array without using embedded data.\n\n#### Requesting records with embedded data\n\nYou can include one-to-many relationships by adding the query parameter `_embed` to your `GET` request.  \nAs example you could embed all possible one-to-many relationships for the route `orders` with the `_embed` parameter with the following `GET` request: `/orders?_embed=stops,ordersurchargequantities,downloadlinks,accounting`\n\nAs can be seen from this example, all resources, which should be embedded, are addressed by the name of the property in question, separated with `,`.\n\nWhen embedding one-to-many relationships, the embedded data is included as an array of records belonging to the parent record.\n\n#### Saving embedded records\n\nThe resource `orders` supports saving child records embedded. Therefore you can `POST` a new `order` with all required data embedded, i.e. all `ordersurchargequantities`, `stops` and `accounting` data.  \nThis handling is advantageous, as the new record can be placed with a fewer amount of requests to the API, because the creation is done by an atomic transaction.\n\n## Filtering\n\nThe LOBO API supports filtering of datasets by controlling the request using certain filter criteria given in the HTTP Request message as query parameters. In case of correct filter criteria only those datasets are provided inside the answer to this message, which are matching the given filter criteria.\n\n- Message examples using filtering can be found within the section [Message examples](#message-examples) below.\n    \n- For a detailed description, which filter criteria can be used for a certain resource, please refer to the [Resource documentation](#resource-documentation).\n    \n\n**Types of filtercriteria**\n\nThe implemented types of filtercriteria are shown in the following table. Please refer to the resource description to see, what type of filtercriteria is foreseen for a certain resource property within the [Resource documentation](#resource-documentation).\n\nNumeric, Dates:  \n| Type of filtercriteria | Symbolic | Filter operator |  \n| --- | --- | --- |  \n| Equal | `=` | `[eq]` |  \n| Not equal | `!=` | `[ne]` |  \n| Less than | `<` | `[lt]`, |  \n| Less than or equal | `<=` | `[lte]` |  \n| Greater than | `>` | `[gt]` |  \n| Greater than or equal | `>=` | `[gte]` |\n\nBoolean:  \n| Type of filtercriteria | Symbolic | Filter operator |  \n| --- | --- | --- |  \n| Equal | `=` | `[eq]` |  \n| Not equal | `!=` | `[ne]` |\n\nStrings:  \n| Type of filtercriteria | Symbolic | Filter operator |  \n| --- | --- | --- |  \n| Regular Expression | `~` | `[regex]` |  \n| Regular Expression with case insensitivity | `~` | `[regex_ci]` |\n\n**Controlling the logical linking of more than one filtering criteria**\n\nIn case more than one filter criteria is present inside the query parameter of the request, these are logically linked by the AND operation per default.  \nBut also a linking using AND, OR and NOT operations (and a combination of these) is possible by using `_logical` followed by a linking description of all filter criteria as described below:\n\nQuery parameter: `...?{filtercriteria_0&{filtercriteria_1}&{filtercriteria_2}&_logical=0 OR 1 OR 2`:  \nin this example the filtering will be applied as follows: {filtercriteria_0} OR {filtercriteria_1} OR {filtercriteria_2}\n\nThe following example for the resource `products` will therefore only provide those datasets inside the response message, which fulfill the filtercriteria (`name` contains the string \"bike\") OR (`id` equals the value 3):\n\n`products?name[regex]=bike$&id[eq]=3&_logical 0 OR 1`\n\n## Paging\n\nYou can limit long lists of resources for the route `orders` using query parameters controlling the query, namely `_offset` and `_limit`.\n\nWith `/oders?_offset=200&_limit=100` you will receive all records starting with the 200th record but limited to max. 100 records within the answer.\n\n## Ordering\n\nYou can order the route response using the query parameter `_orderby`.\n\nSpecify the property you want to order by next. You can select more than one property by separating them with a comma.  \nFinally, choose a standard sorting rule(s) from the options provided in the [7.5 Sorting Rows ](https://www.postgresql.org/docs/current/queries-order.html) section.\n\nExample:\n\n`_orderby=created[DESC],fkcarrier[ASC NULLS LAST]`\n\n# Description of the routes\n\nIn the following table you will find a brief description of the implemented resources. For more detailed information please refer to [Resource documentation](#resource-documentation) as well as [Message examples](#message-examples).\n\n| Route | HTTP methods | Data embedding | Description |\n| --- | --- | --- | --- |\n| `/addresses` | GET (`/addresses/autocomplete/..`), POST (`/addresses/verify`) | \\--- | To be able to search for streets or streets and places (autocomplete) and to retrieve a certain address in the required format (verify) to be used to create e.g. a stop dataset. |\n| `/customers` | GET | jcard | Lists customers, optionally the jcards can be requested to be included as embedded data. |\n| `/downloads` | GET | \\--- | Used to retrieve the _pod_ or _shipdoc_ for a certain order addressed with its `{uuid}` in pdf format. |\n| `/orders` | GET, POST, PATCH, DEL | stops, ordersurchargequantities, downloadlinks, accounting | GET lists orders (optionally containing embedded data). POST can be used to create orders with one single HTTP request. PATCH can be used to change datafields of a certain order, DEL can be used to delete a certain order dataset in case it is not locked. |\n| `/orderdrafts` | GET, POST, PATCH, DEL, PUT (`/orderdrafts/{uuid}/order`), | stops, ordersurchargequantities, downloadlinks, accounting | GET lists orderdrafts (optionally containing embedded data). POST can be used to create orderdrafts (i.e. orders, which are in a preparation state) with one or several requests. PATCH can be used to change datafields of a certain orderdraft, PUT is to be used to change a certain orderdraft into an order, DEL can be used to delete a certain orderdraft dataset. |\n| `/orderpricescalequantities` | GET, PUT, DEL | \\--- | To be able to handle the pricescalequantities for a given order or orderdraft. Using GET the orderpricescalequantities for orders (or orderdrafts) will be listed. With PUT (DEL) they can be assigned to (removed from) a certain order (or orderdraft). |\n| `/ordersurchargequantities` | GET, PUT, DEL | \\--- | To be able to handle the ordersurchargequantities for a given order or orderdraft. Using GET the ordersurchargequantities for orders (or orderdrafts) will be listed. With PUT (DEL) they can be assigned to (or removed from) a certain order (or orderdraft). |\n| `/payments` | GET | \\--- | Lists available payments (to be set within LOBO frontend). |\n| `/places` | GET | jcard | Lists places - optionally including the jcard format of the places as embedded data. |\n| `/pricescales` | GET | pricescalegraduations | Lists the pricescales of orders (or orderdrafts) - optionally the pricescalegraduations of each pricescale can be requested as embedded data. |\n| `/products` | GET | timemodel, surcharges, pricescales | Lists all public products (which are set to be public within the LOBO frontend) - optionally including the timemodel, the surcharges and pricescales assigned to each product. |\n| `/statistics/byinterval/{interval}` | GET | \\--- | Lists statistic data like co2savings. As {interval} a number plus a timely period must be given. Examples for timely periods: hours, days, weeks, months, years... |\n| `/stops` | GET, POST, PATCH, DEL | \\--- | To be able to handle stops. POST to be used to assign a new stop to a certain order (or orderdraft), PATCH for changing the data of a certain stop and DEL for deleting a certain stop. Please note that a certain order might already be in the state _locked_ and therefore no change of data is possible any more. |\n| `/surcharges` | GET | \\--- | Lists the surcharges assigned to products. Please note that a certain surcharge can be assigned to several products and therefore those products are listed inside an array. |\n| `/webhookevents` | GET | \\--- | Lists all events, to which a webhook can be assigned using the route `/webhooks`. |\n| `/webhooks` | GET, POST, DEL | \\--- | This route was implemented for webhook handling. POST to be used to assign an URL to a certain event. After successful assignment, this URL will be notified in case the subscribed event occurs. GET to list all assigned webhooks, DEL for deleting a certain webhook. |\n\n# Use case examples\n\nThis section outlines possible workflows.\n\n## Token retrieval\n\n- Create API-user within LOBO frontend (refer to [Settings within LOBO frontend](#settings-within-lobo-frontend)).\n    \n- Retrieval of a valid token using `POST /token request/refresh`.\n    \n- Storing the received token to be used as bearer token for all other requests against the LOBO API.\n    \n\n## Address information retrieval\n\n- The route `/addresses` can be used for the following scenarios:\n    \n    - To retreive a list of street names (or list of streets and places) which fulfill the given _querystring_ given as query parameter inside the GET request. For example the HTTP request `/addresses/autocomplete/streets?querystring=Touris` will return a list of known street names starting with the string \"Touris\". In case also names of places are to be included within the answer, the request must be placed against the route `/addresses/autocomplete/streetsandplaces?querystring=Touris`.\n        \n    - To retreive the correct format of an address, the route `/addresses/verify` can be used. In this case, the main parameters of a certain address must be given inside the HTTP POST message inside the message body. The answer to this request will contain the requested address in the LOBO-internal format inside the message body, which can then be used to add a _stop_ to a certain _order_ (or _orderdraft_).\n        \n\n## Placing orders\n\nThere are several ways provided by the API to be able to create and edit orders, as you can either use the route `/orders` or the route `/orderdrafts`.  \nThe differences between _orders_ and _orderdrafts_ are outlined below:\n\n- _orderdrafts_ represent orders in preparation state as long as they are not switched to a real _order_ by placing a PUT request against `/orderdrafts/{{uuid}}/order` (where `{uuid}` is the unique key of that _orderdraft_ to be switched to a real _order_). This switching must be executed within a certain timely period after the creation of the _orderdraft_ (currently set to 5 minutes).\n    \n- Another difference is, that _orders_ might be locked by LOBO at a certain stage of processing of that order (which will not be the case for orderdrafts). Locked orders cannot be edited any more.\n    \n\nIt is recommended to use the route `/orders` for creation of well known and often occuring orders and to use the route `/orderdrafts` to create a new order executing several steps - including the final step to switch a newly created _orderdraft_ into a real _order_ as outlined above.\n\n### Creation of a new _order_ (or _orderdraft_) within one single step\n\nIf all required data is available within the correct format, a new order can be created by sending a HTTP POST message against the route `/orders`. In this case all required additional data like stops must be provided within the body of the POST message as embedded data. Please also refer to the message _POST /orders --- Complete order within one request_ within the section [Message examples](#message-examples).\n\n### Creation of a new _order_ (or _orderdraft_) within several steps\n\nIt is also possible to create a new order within several steps as outlined below. It is recommended to use the route `/orderdrafts` for this purpose. After the new order is setup completely, it must be switched to a real _order_. This must be done within a certain timely period (currently set to 5 minutes) after the creation of the _orderdraft_.\n\n- Initial creation of a new _orderdraft_ resource by sending a HTTP POST message against the route `/orderdrafts` with the required main data of a order (but without embedded data like _stops_).\n    \n- Adding stops, surcharges and so on by using the appropriate routes (e.g. adding stops by sending a HTTP POST message against the route `/stops`) and using the unique key `{uuid}` as `fkorderuuid`, which was received inside the answer of the initial POST message at the creation of the _orderdraft_ record.\n    \n- Finally switching the newly created _orderdraft_ into a real _order_ by sending a HTTP PUT message against the route `/orderdrafts/{uuid}/order` (with the unique key `{uuid}`, which was received inside the answer to the initial POST message at the creation of the _orderdraft_ record). This will cause the deletion of this _orderdraft_ record after moving it to _orders_.\n    \n\n### Editing an _order_ (or _orderdraft_)\n\nAfter creation an _order_ (or _orderdraft_) can be edited by using the HTTP PATCH method against the route `/orders/{uuid}` (or `/orderdrafts/{uuid}`). Within the body of those PATCH messages only those datafields must be present, which are to be changed for a certain _order_ (or _orderdraft_). All other datafields will not be changed.\n\n## Webhooks\n\nWebhooks are supported to inform an entity accessible via an URL about certain events.  \nTo get a list of all possible events for which one can subscribe, a HTTP `GET` request has to be sent to following route `/webhookEvents`\n\nTo subscribe an URL to a certain event, a valid `POST` request has to be sent to route `webhooks`.\n\n# Changelog\n\n## v3.1\n\nNew routes:\n\n- /downloads/signatures\n    \n- /downloads/pictures\n    \n- /invoices\n    \n\nNew data properties:\n\n- /order: customerreferenceorder\n    \n- /stop: receivedby, carriercomment, trackingnumber, pictures_count\n    \n\n# Ressources\n\nIn the following you will find examples for all implemented routes for accessing the different resources via LOBO API.  \nIn case data can be embedded, a separate example using all possible embeddable data (by using the `_embed` query parameter) is provided.\n\n## Data fields of response messages\n\nMost response messages will contain information in the format as outlined below.\n\n| Property | Type | Description | Notes |\n| --- | --- | --- | --- |\n| `data` | array of resource objects | The `data` array will contain resource objects as entries. | Depending on the content, the response message will either contain an empty array or an array with one or more entries. |\n| `meta` | object | Contains additional information about the content of the response message. | Not present for certain routes. |\n\nPlease note that this kind of format is not used for the following routes:\n\n- `/downloads` (As a pdf-file is provided as response)\n    \n- `/token` (Please refer to the resource description of [token](#token).)\n    \n\n## `meta`\n\nThis object contains additional information about the content of the response message.\n\n| Property | Type | Description |\n| --- | --- | --- |\n| count | integer | Number of resource objects within the `data` array. |\n| totalcount | integer | Total number of resource objects. |\n\nPlease note that the `meta` object is not present for the following routes:\n\n- `/addresses/autocomplete/streets`\n    \n- `/addresses/autocomplete/streetsandplaces`\n    \n- `/token`\n    \n\n## Table content description\n\n| Property | Req. | Type | Filter operator | Description | Notes |\n| --- | --- | --- | --- | --- | --- |\n| Name of property | If marked with an asterisk `\\\\\\\\\\\\\\\\\\\\\\\\\\*`, this property must be present in case the resource is to be created. | Provides information about the used datatype. | Lists all filter operators, which are applicable for this property. | Contains a description of the property. | Contains additional information. |","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"9396883","team":1132995,"collectionId":"11bc3389-f19d-4e79-8f59-212b82530fa7","publishedId":"2s8ZDeUeLh","public":true,"publicUrl":"https://api.lobo.at","privateUrl":"https://go.postman.co/documentation/9396883-11bc3389-f19d-4e79-8f59-212b82530fa7","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"45B4CE"},"documentationLayout":"classic-double-column","customisation":null,"version":"8.10.1","publishDate":"2023-01-27T15:43:43.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/26088247b8c209705df2e5afc8a808d2f1dfd30181defe6bf44f0e6d7decbe3c","favicon":"https://lobo.at/favicon.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://api.lobo.at/view/metadata/2s8ZDeUeLh"}