Skip to main content

Overview

The Polygon One API enables you to manage your EUDR compliance data programmatically. It is designed for server-to-server integration with your ERP system (SAP, Oracle, Microsoft Dynamics, etc.). What you can do with the API:
  • Articles — Create, update, and query articles. EUDR relevance is determined automatically based on the HS code.
  • Suppliers — Manage supplier data and link suppliers to articles.
  • Orders — Import purchase and sale orders (individually or in batches). Orders can be assigned to DDS statements automatically.
  • DDS Statements — Create and manage due diligence statements for TRACES submission.

Authentication

All API endpoints require a bearer token. Generate your API key in the Polygon One dashboard:
  1. Navigate to Settings > API Keys
  2. Click Create API Key
  3. Select the required permissions (e.g. articles:read, orders:write)
  4. Copy the generated key
Include the key in the Authorization header of every request:
Authorization: Bearer eudr_8f7d2a...
API keys are confidential credentials for server-to-server communication. Store them in environment variables and never expose them in client-side code.

Base URL

All API requests are directed to the following URL:
https://app.polygonone.com

Permissions

Each API key is assigned specific permissions that govern access:
PermissionDescription
articles:readRead articles
articles:writeCreate, update, and delete articles
suppliers:readRead suppliers
suppliers:writeCreate, update, and delete suppliers
orders:readRead orders
orders:writeCreate, update, and delete orders
dds:readRead DDS statements
dds:writeCreate, update, and delete DDS statements
Write permissions include the corresponding read permission. A key with articles:write may therefore perform both write operations and GET requests for articles.

Response Format

Successful responses return JSON data directly. List endpoints return arrays, while single-resource endpoints return objects. Creating a single resource returns HTTP 201:
{
  "article": { "id": "...", "name": "..." }
}
Batch imports return HTTP 200 with a summary:
{
  "imported": [{ "id": "...", "orderNumber": "ORD-001" }],
  "failed": [{ "orderNumber": "ORD-002", "error": "Supplier not found" }],
  "skipped": 0
}

Error Handling

The API uses standard HTTP status codes:
CodeDescription
200OK — Request successful
201Created — Resource created successfully
400Bad Request — Invalid input data or validation error
401Unauthorized — Invalid or missing API key
403Forbidden — API key lacks the required permissions, or account setup is incomplete
404Not Found — Resource does not exist or does not belong to your company
500Internal Server Error — An error occurred on our side
Error responses include an error field and optionally details:
{
  "error": "Validation failed",
  "details": [{ "path": ["hsCode"], "message": "Commodity is required." }]
}