{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"7c45d10c-b3eb-4325-8e5e-1df3a6ce6811","name":"Precoro API Integration","description":"Our API is structured to closely mirror the Precoro user interface, making it easier to integrate with your systems.\n\nTo build a successful integration you need the following\n\n1. Our trial account or access to your customer's test account.\n    \n2. X-AUTH-TOKEN and its email.\n    \n\nTo obtain the X-AUTH-TOKEN for your company, navigate to Configuration → Integrations → API Key and press the Generate API Key button at the top right.\n\nIn turn, users who registered via email must have appropriate access.\n\nPlease note, the X-AUTH-TOKEN is generated per user and company. This means one user can access multiple companies, but a unique X-AUTH-TOKEN is required for each company.\n\n## **API Usage Guidelines**\n\n- Avoid Excessive Requests: To prevent overloading our API, please contact us if your integration involves more than 10,000 requests per day. We can help optimize your usage for better efficiency.\n    \n- IP Blocking to Ensure Stability: We reserve the right to block any IP address that causes service instability or sends requests without proper authorization.\n    \n- Error Response Handling: Repeated incorrect requests that result in errors may lead to a temporary block after one week.\n    \n- Pagination Options: You can paginate your results with the following options: 10, 20, 50, 100, or 200 items per page.\n    \n\n### Related articles in Precoro Knowledge Base:\n\n- [https://help.precoro.com/using-api-in-precoro](https://help.precoro.com/using-api-in-precoro)\n    \n- [https://help.precoro.com/typical-api-usage-scenarios](https://help.precoro.com/typical-api-usage-scenarios)\n    \n\n## **Regional API Domain Access**\n\nOur API is hosted on two domains, allowing users to access it based on their region. When making API requests, you should use the correct domain based on your location.\n\n### **Available Domains:**\n\n| **Region** | **Domain Suffix** | **Base API URL** |\n| --- | --- | --- |\n| International | .com | [https://api.precoro.com/](https://api.precoro.com/) |\n| United States | .us | [https://api.precoro.us/](https://api.precoro.com/) |\n\n### **API Endpoint Structure**\n\nAll API endpoints follow the same structure, but the domain changes depending on your region. For example:\n\n- [https://api.precoro.com/suppliers](https://api.precoro.com/suppliers)\n    \n- [https://api.precoro.us/suppliers](https://api.precoro.us/suppliers)\n    \n\n### **Important Note**\n\nTo determine which domain to use, check your application’s URL. If your app’s URL is app.precoro.com, use the .com domain, and if it’s app.precoro.us, use the .us domain.\n\nThe examples on this page are hosted on the .com domain. If your company operates on a .us domain, remember to replace .com with the .us domain for API endpoints on this page before using them.\n\nEnsure that all API requests are directed to the correct domain to ensure proper functionality.\n\n### **API Requests Limits**\n\n**The limits for API requests**:\n\n- 60 requests per minute (1 request per 1 second);\n    \n- 1500 requests per hour;\n    \n- 3000 requests per day.\n    \n\n**Special limits are enabled for duplicate requests—identical requests happening in succession:**\n\n- 1 request per minute;\n    \n- 30 requests per hour.\n    \n\n### Date & Time Format\n\nAll date and time fields returned in API responses are in **UTC** (Coordinated Universal Time).\n\nFor example, in a `Purchase Order`, fields like:\n\n- `createDate`\n    \n- `updateDate`\n    \n- `requiredDate`\n    \n\n...will all be returned in **UTC** (e.g., `2025-05-05T23:59:59+00:00`).\n\nBe sure to convert these timestamps to your local timezone if needed.\n\n## **Terminology**\n\n**ID —** Our unique identifier of the document.\n\n**IDN —** your company’s unique identifier of the document.\n\n# **Data Filtering**\n\nYou can request the list of the objects and the object itself.\n\nTo filter GET requests response data, you can use params, sent with your request.\n\n## **API Parameters**\n\n| **Key** | **Value** | **Description** |\n| --- | --- | --- |\n| modifiedSince | 2022-08-10T00:00:00 | If an object was modified since the date, it will appears in results |\n| per_page | 100 | Number of items per page. Available options: 10, 20, 50, 100, 200 |\n| page | 1 | Page number to be displayed |\n\n## **Pagination Structure in API Responses**\n\n**Each list response includes a meta.pagination object at the end of the payload:**\n\n``` json\n\"meta\": {\n  \"pagination\": {\n    \"total\": 3,\n    \"count\": 3,\n    \"per_page\": 100,\n    \"current_page\": 1,\n    \"total_pages\": 1,\n    \"links\": {}\n  }\n}\n\n ```\n\n### **Pagination Fields Explained**\n\n| **Field** | **Description** |\n| --- | --- |\n| **total** | **Total number of records available for the request** |\n| **count** | **Number of records returned in the current response** |\n| **per_page** | **Number of records returned in the current response** |\n| **current_page** | **Maximum number of records per page. Available options: 10, 20, 50, 100, 200** |\n| **total_pages** | **Total number of pages available** |\n| **links** | **Optional navigation links (may be empty)** |\n\n## **Example Pagination Flow**\n\n### **Step 1 - Request the first page**\n\n**`GET /purchaseorders?page=1&per_page=100`**\n\n**Response:**\n\n**`\"current_page\": 1,`**\n\n**`\"total_pages\": 5`**\n\n### **Step 2 - Loop through remaining pages**\n\n**Continue requesting pages until** **`current_page = total_pages`**\n\n**Example:**\n\n**`GET /purchaseorders?page=2&per_page=100`**\n\n**`GET /purchaseorders?page=3&per_page=100`**\n\n## **How to Retrieve Custom Fields for Item Data from the Document**\n\n1. In the response, locate the items field, which contains a collection of document items.\n    \n2. For the specific item you're interested in, find the dataItemCustomFields field. This field contains a collection of custom fields for the item.\n    \n3. Inside the dataItemCustomFields field, locate the value field. This field contains either the selected option ID or, for text or date custom fields, the respective text or date value.\n    \n4. Within the custom field object, identify the itemCustomField field. This field contains the ID of the Custom Field for the Item you need to retrieve.\n    \n5. Send a GET request itemcustomfields/{id} to get all data about the itemcustomfield. If the custom field contains selected options, the response will include an option field with a collection of available options. You can use the ID from dataItemCustomFields → value to find the selected option.\n    \n\n<img src=\"https://content.pstmn.io/ff244bde-c9d5-4fb9-99ef-13f62806596d/VW50aXRsZWQucG5n\" width=\"640\" height=\"372\">","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"6493532","team":3072023,"collectionId":"7c45d10c-b3eb-4325-8e5e-1df3a6ce6811","publishedId":"2sBXijKsRj","public":true,"publicUrl":"https://documenter-api.postman.tech/view/6493532/2sBXijKsRj","privateUrl":"https://go.postman.co/documentation/6493532-7c45d10c-b3eb-4325-8e5e-1df3a6ce6811","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"documentationLayout":"classic-double-column","customisation":{"metaTags":[{"name":"description","value":""},{"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.10.1","publishDate":"2026-03-24T09:59:44.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{"title":"","description":""},"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/c98a0bad5db819ece7df3a10bb881473d29da7ce58f7c9869379544b7f0ae637","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/2sBXijKsRj"}