{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"a66dc8e6-7dc2-43ab-aee9-7c711cf9fafb","name":"Tripezzy","description":"# Tripezzy API Documentation\n\nThis documentation outlines the available API endpoints for the Tripezzy project, a platform for travel and tourism services.\n\n## User Service\n\n### Authentication\n\n- **`POST /auth/signup`**: Registers a new user.\n    \n    - **Request Body**: JSON object containing user registration details (firstName, lastName, email, phoneNumber, password, role).\n        \n    - **Response**: `201 Created` with the created user's details, or `400 Bad Request` for invalid input.\n        \n- **`POST /auth/login`**: Authenticates a user and returns a JWT.\n    \n    - **Request Body**: JSON object containing user login credentials (email, password).\n        \n    - **Response**: `200 OK` with the JWT token, or `401 Unauthorized` for incorrect credentials.\n        \n- **`POST /auth/onboard/seller`**: Onboards a user as a seller.\n    \n    - **Request Body**: JSON object containing seller profile details (businessName, businessDescription, businessAddress, contactNumber).\n        \n    - **Response**: `201 Created` with the updated user details, or `400 Bad Request` for invalid input.\n        \n- **`POST /auth/onboard/guide`**: Onboards a user as a guide.\n    \n    - **Request Body**: JSON object containing guide profile details (languagesSpoken, experience).\n        \n    - **Response**: `201 Created` with the updated user details, or `400 Bad Request` for invalid input.\n        \n\n## Ecommerce Service\n\n### Product Management\n\n- **`POST /products`**: Creates a new product.\n    \n    - **Request Body**: JSON object containing product details (name, description, price, stock, category, imageUrl).\n        \n    - **Response**: `201 Created` with the created product's details, or `400 Bad Request` for invalid input.\n        \n- **`GET /products/{productId}`**: Retrieves a product by its ID.\n    \n    - **Response**: `200 OK` with the product's details, or `404 Not Found` if the product does not exist.\n        \n- **`GET /products`**: Retrieves all products (paginated).\n    \n    - **Query Parameters**: `page`, `size`.\n        \n    - **Response**: `200 OK` with a paginated list of products.\n        \n- **`PUT /products/{productId}`**: Updates a product.\n    \n    - **Request Body**: JSON object containing updated product details.\n        \n    - **Response**: `200 OK` with the updated product's details, or `404 Not Found` if the product does not exist.\n        \n- **`DELETE /products/{productId}`**: Deletes a product.\n    \n    - **Response**: `200 OK` with a success message, or `404 Not Found` if the product does not exist.\n        \n- **`DELETE /products/soft-delete/{productId}`**: Soft deletes a product.\n    \n    - **Response**: `200 OK` with a success message, or `404 Not Found` if the product does not exist.\n        \n- **`GET /products/search`**: Searches products based on a query (paginated).\n    \n    - **Query Parameters**: `query`, `page`, `size`.\n        \n    - **Response**: `200 OK` with a paginated list of matching products.\n        \n- **`GET /products/filter`**: Filters products based on category, minimum price, and maximum price (paginated).\n    \n    - **Query Parameters**: `category`, `minPrice`, `maxPrice`, `page`, `size`.\n        \n    - **Response**: `200 OK` with a paginated list of filtered products.\n        \n\n### Cart Management\n\n- **`POST /carts/{userId}/items`**: Adds an item to a user's cart.\n    \n    - **Request Body**: JSON object containing product ID and quantity.\n        \n    - **Response**: `201 Created` with the updated cart details, or `400 Bad Request` for invalid input.\n        \n- **`GET /carts/{userId}`**: Retrieves a user's cart.\n    \n    - **Response**: `200 OK` with the cart details, or `404 Not Found` if the cart does not exist.\n        \n- **`DELETE /carts/{userId}/items/{productId}`**: Removes an item from a user's cart.\n    \n    - **Response**: `200 OK` with the updated cart details, or `404 Not Found` if the cart or item does not exist.\n        \n- **`GET /carts/{userId}/total-cost`**: Calculates the total cost of a user's cart, with optional discount parameters.\n    \n    - **Query Parameters**: `quantity`, `price`.\n        \n    - **Response**: `200 OK` with the total cost.\n        \n\n### Wishlist Management\n\n- **`POST /wishlist`**: Adds a product to a user's wishlist.\n    \n    - **Request Body**: JSON object containing product ID and user ID.\n        \n    - **Response**: `201 Created` with the updated wishlist details, or `400 Bad Request` for invalid input.\n        \n- **`GET /wishlist/{userId}`**: Retrieves a user's wishlist (paginated).\n    \n    - **Query Parameters**: `page`, `size`.\n        \n    - **Response**: `200 OK` with a paginated list of wishlist items.\n        \n- **`DELETE /wishlist/{wishlistId}`**: Removes a product from a user's wishlist.\n    \n    - **Response**: `200 OK` with a success message, or `404 Not Found` if the wishlist item does not exist.\n        \n\n## Admin Service\n\n### Destination Management\n\n- **`POST /destinations`**: Creates a new destination.\n    \n- **`GET /destinations`**: Retrieves all destinations (paginated).\n    \n- **`GET /destinations/{id}`**: Retrieves a destination by its ID.\n    \n- **`PUT /destinations/{id}`**: Updates a destination.\n    \n- **`DELETE /destinations/{id}`**: Deletes a destination.\n    \n- **`DELETE /destinations/soft-delete/{id}`**: Soft deletes a destination.\n    \n- **`GET /destinations/search`**: Searches destinations based on a keyword.\n    \n- **`GET /destinations/filter`**: Filters destinations based on country, category, minimum price, and maximum price.\n    \n\n### Tour Management\n\n- **`POST /tours`**: Creates a new tour package.\n    \n- **`GET /tours`**: Retrieves all tour packages (paginated).\n    \n- **`GET /tours/{id}`**: Retrieves a tour package by its ID.\n    \n- **`GET /tours/destination/{destinationId}`**: Retrieves tour packages by destination ID.\n    \n- **`PUT /tours/{id}`**: Updates a tour package.\n    \n- **`DELETE /tours/{id}`**: Deletes a tour package.\n    \n- **`DELETE /tours/soft-delete/{id}`**: Soft deletes a tour package.\n    \n- **`GET /tours/search`**: Searches tour packages based on a keyword.\n    \n- **`GET /tours/filter`**: Filters tour packages based on destination ID, minimum price, maximum price, category, and status.\n    \n\n### Core Management (gRPC Aggregation)\n\n- **`GET /core/blogs`**: Retrieves blog posts from Blog Service.\n    \n- **`GET /core/bookings/paginated`**: Retrieves bookings from Booking Service.\n    \n- **`GET /core/bookings/user/{userId}`**: Retrieves bookings by user ID.\n    \n- **`GET /core/bookings/destination/{destinationId}`**: Retrieves bookings by destination ID.\n    \n- **`GET /core/bookings/travel-date-range`**: Retrieves bookings by travel date range.\n    \n- **`DELETE /core/soft-delete/{bookingId}`**: Soft deletes a booking.\n    \n- **`GET /core/payment-status/{paymentStatus}`**: Retrieves bookings by payment status.\n    \n- **`PATCH /core/{bookingId}/confirm`**: Confirms a booking.\n    \n- **`GET /core/products`**: Retrieves products from Product Service.\n    \n- **`GET /core/payments`**: Retrieves payments from Payment Service.\n    \n- **`GET /core/payments/{userId}`**: Retrieves payments by user ID.\n    \n\n## Payment Service\n\n- **`POST /core/checkout/shop/{cartId}`**: Processes checkout for a shopping cart using Stripe.\n    \n- **`POST /core/checkout/bookings/{bookingId}`**: Processes checkout for a booking using Stripe.\n    \n- **`GET /core`**: Retrieves all payment records.\n    \n- **`GET /core/user/{userId}`**: Retrieves payment records for a specific user.\n    \n\n## Blog Service\n\n### Blog Post Management\n\n- **`POST /blogs`**: Creates a new blog post.\n    \n    - **Request Body**: JSON object containing blog post details (title, content, authorId, category, tags, status).\n        \n    - **Response**: `201 Created` with the created blog post's details, or `400 Bad Request` for invalid input.\n        \n- **`GET /blogs/{blogId}`**: Retrieves a blog post by its ID.\n    \n    - **Response**: `200 OK` with the blog post's details, or `404 Not Found` if the blog post does not exist.\n        \n- **`GET /blogs`**: Retrieves all blog posts (paginated).\n    \n    - **Query Parameters**: `page`, `size`.\n        \n    - **Response**: `200 OK` with a paginated list of blog posts.\n        \n- **`GET /blogs/author/{authorId}`**: Retrieves blog posts by author ID (paginated).\n    \n    - **Query Parameters**: `page`, `size`.\n        \n    - **Response**: `200 OK` with a paginated list of blog posts by the specified author.\n        \n- **`GET /blogs/status/{status}`**: Retrieves blog posts by status (paginated).\n    \n    - **Query Parameters**: `page`, `size`.\n        \n    - **Response**: `200 OK` with a paginated list of blog posts with the specified status.\n        \n- **`PUT /blogs/{blogId}`**: Updates a blog post.\n    \n    - **Request Body**: JSON object containing updated blog post details.\n        \n    - **Response**: `200 OK` with the updated blog post's details, or `404 Not Found` if the blog post does not exist.\n        \n- **`PUT /blogs/{blogId}/status/{status}`**: Updates the status of a blog post.\n    \n    - **Response**: `200 OK` with the updated blog post's details, or `404 Not Found` if the blog post does not exist.\n        \n- **`DELETE /blogs/{blogId}`**: Deletes a blog post.\n    \n    - **Response**: `200 OK` with a success message, or `404 Not Found` if the blog post does not exist.\n        \n- **`DELETE /blogs/soft-delete/{blogId}`**: Soft deletes a blog post.\n    \n    - **Response**: `200 OK` with a success message, or `404 Not Found` if the blog post does not exist.\n        \n- **`GET /blogs/search`**: Searches blog posts based on a query (paginated).\n    \n    - **Query Parameters**: `query`, `page`, `size`.\n        \n    - **Response**: `200 OK` with a paginated list of matching blog posts.\n        \n- **`GET /blogs/filter`**: Filters blog posts based on category and tags (paginated).\n    \n    - **Query Parameters**: `category`, `tags`, `page`, `size`.\n        \n    - **Response**: `200 OK` with a paginated list of filtered blog posts.\n        \n- **`GET /blogs/filter/advanced`**: Filters blog posts based on authorId, status, category and tags (paginated).\n    \n    - **Query Parameters**: `authorId`, `status`, `category`, `tags`, `page`, `size`.\n        \n    - **Response**: `200 OK` with a paginated list of filtered blog posts.\n        \n\n### Blog Post Interactions\n\n- **`POST /blogs/{blogId}/likes`**: Adds a like to a blog post.\n    \n    - **Response**: `201 Created` with the like details, or `400 Bad Request` for invalid input.\n        \n- **`DELETE /blogs/{blogId}/likes/{likeId}`**: Removes a like from a blog post.\n    \n    - **Response**: `200 OK` with a success message, or `404 Not Found` if the like does not exist.\n        \n- **`POST /blogs/{blogId}/comments`**: Adds a comment to a blog post.\n    \n    - **Request Body**: JSON object containing comment details (content, authorId).\n        \n    - **Response**: `201 Created` with the comment details, or `400 Bad Request` for invalid input.\n        \n- **`PUT /blogs/{blogId}/comments/{commentId}`**: Updates a comment on a blog post.\n    \n    - **Request Body**: JSON object containing updated comment details.\n        \n    - **Response**: `200 OK` with the updated comment details, or `404 Not Found` if the comment does not exist.\n        \n- **`DELETE /blogs/{blogId}/comments/{commentId}`**: Deletes a comment from a blog post.\n    \n    - **Response**: `200 OK` with a success message, or `404 Not Found` if the comment does not exist.\n        \n- **`GET /blogs/{blogId}/likes`**: Retrieves all likes for a blog post.\n    \n    - **Response**: `200 OK` with a list of likes.\n        \n- **`GET /blogs/{blogId}/comments`**: Retrieves all comments for a blog post.\n    \n    - **Response**: `200 OK` with a list of comments.\n        \n\n## Booking Service\n\n### Booking Management\n\n- **`POST /bookings`**: Create a new booking.\n    \n    - **Request Body**: JSON object containing booking details.\n        \n    - **Response**: `201 Created` with the created booking details, or `400 Bad Request` for invalid input.\n        \n    - **Rate Limit**: 10 requests/sec.\n        \n- **`GET /bookings/{bookingId}`**: Get booking by ID.\n    \n    - **Response**: `200 OK` with the booking details, or `404 Not Found` if the booking does not exist.\n        \n    - **Rate Limit**: 15 requests/sec.\n        \n- **`GET /bookings`**: Get all bookings.\n    \n    - **Response**: `200 OK` with a list of all bookings.\n        \n    - **Rate Limit**: 20 requests/sec.\n        \n- **`GET /bookings/paginated`**: Get paginated bookings.\n    \n    - **Query Parameters**: `page`, `size`.\n        \n    - **Response**: `200 OK` with a paginated list of bookings.\n        \n    - **Rate Limit**: 15 requests/sec.\n        \n- **`GET /bookings/user/{userId}`**: Get bookings by user ID.\n    \n    - **Query Parameters**: `page`, `size`.\n        \n    - **Response**: `200 OK` with a paginated list of bookings for the specified user.\n        \n    - **Rate Limit**: 10 requests/sec.\n        \n- **`GET /bookings/destination/{destinationId}`**: Get bookings by destination ID.\n    \n    - **Query Parameters**: `page`, `size`.\n        \n    - **Response**: `200 OK` with a paginated list of bookings for the specified destination.\n        \n    - **Rate Limit**: 10 requests/sec.\n        \n- **`GET /bookings/status/{status}`**: Get bookings by status.\n    \n    - **Query Parameters**: `page`, `size`.\n        \n    - **Response**: `200 OK` with a paginated list of bookings with the specified status.\n        \n    - **Rate Limit**: 10 requests/sec.\n        \n- **`GET /bookings/travel-date-range`**: Get bookings by travel date range.\n    \n    - **Query Parameters**: `startDate`, `endDate`, `page`, `size`.\n        \n    - **Response**: `200 OK` with a paginated list of bookings within the specified date range.\n        \n    - **Rate Limit**: 10 requests/sec.\n        \n- **`GET /bookings/payment-status-price-range`**: Get bookings by payment status and price range.\n    \n    - **Query Parameters**: `paymentStatus`, `minPrice`, `maxPrice`, `page`, `size`.\n        \n    - **Response**: `200 OK` with a paginated list of bookings matching the criteria.\n        \n    - **Rate Limit**: 10 requests/sec.\n        \n- **`GET /bookings/upcoming/{status}`**: Get upcoming bookings by status.\n    \n    - **Query Parameters**: `page`, `size`.\n        \n    - **Response**: `200 OK` with a paginated list of upcoming bookings with the specified status.\n        \n    - **Rate Limit**: 10 requests/sec.\n        \n- **`GET /bookings/count-by-status/{status}`**: Count bookings by status.\n    \n    - **Response**: `200 OK` with a count of bookings with the specified status.\n        \n    - **Rate Limit**: 10 requests/sec.\n        \n- **`DELETE /bookings/{bookingId}`**: Cancel a booking.\n    \n    - **Response**: `200 OK` with a success message, or `404 Not Found` if the booking does not exist.\n        \n    - **Rate Limit**: 5 requests/sec.\n        \n- **`DELETE /bookings/soft-delete/{bookingId}`**: Soft delete a booking.\n    \n    - **Response**: `200 OK` with a success message, or `404 Not Found` if the booking does not exist.\n        \n    - **Rate Limit**: 5 requests/sec.\n        \n- **`GET /bookings/reference/{bookingReference}`**: Get booking by reference.\n    \n    - **Response**: `200 OK` with the booking details, or `404 Not Found` if the booking does not exist.\n        \n    - **Rate Limit**: 15 requests/sec.\n        \n- **`GET /bookings/payment-status/{paymentStatus}`**: Get bookings by payment status.\n    \n    - **Response**: `200 OK` with a list of bookings with the specified payment status.\n        \n    - **Rate Limit**: 10 requests/sec.\n        \n- **`PATCH /bookings/{bookingId}/confirm`**: Confirm a booking.\n    \n    - **Response**: `200 OK` with the confirmed booking details, or `404 Not Found` if the booking does not exist.\n        \n    - **Rate Limit**: 10 requests/sec.\n        \n- **`GET /bookings/filter`**: Filter bookings.\n    \n    - **Query Parameters**: various filtering parameters (e.g., `userId`, `destinationId`, `status`, `startDate`, `endDate`, `paymentStatus`, `minPrice`, `maxPrice`).\n        \n    - **Response**: `200 OK` with a list of filtered bookings.\n        \n    - **Rate Limit**: 10 requests/sec.\n        \n\n- **`GET /core`**: Retrieves all payment records.\n    \n- **`GET /core/user/{userId}`**: Retrieves payment records for a specific user.","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"30415721","team":6207079,"collectionId":"a66dc8e6-7dc2-43ab-aee9-7c711cf9fafb","publishedId":"2sB2cUANY6","public":true,"publicUrl":"https://documenter-api.postman.tech/view/30415721/2sB2cUANY6","privateUrl":"https://go.postman.co/documentation/30415721-a66dc8e6-7dc2-43ab-aee9-7c711cf9fafb","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"documentationLayout":"classic-double-column","customisation":{"metaTags":[{"name":"description","value":"This documentation outlines the available API endpoints for the Tripezzy project, a platform for travel and tourism services."},{"name":"title","value":""}],"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.12.7","publishDate":"2025-04-04T16:03:06.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{"title":"","description":"This documentation outlines the available API endpoints for the Tripezzy project, a platform for travel and tourism services."},"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/7deae46724f427c0bb24ac8c8501520b4695b3a2e03456c80cbacf42b78e36e4","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/2sB2cUANY6"}