{"version":"1.0.0","description":"Public API of [RetJet](https:\/\/retjet.com), the returns and warranty platform for online\nshops. It handles returns from every sales channel a shop sells through, in one place.\n\nToday it covers returns. Shipping and tracking will join it under the same base URL, each\nversioned on its own, so nothing here changes when they do.\n\nThis API is what an integration talks to: a shop platform, a middleware, or a piece of\nsoftware you wrote yourself. With it you can register a return on a customer's behalf,\nread the returns already registered, follow what happened to each of them, exchange\nmessages with the customer, and settle the amount to refund.\n\n## Getting an API key\n\nGenerate a key in your RetJet account settings, under API keys. Keys belong to the\ncompany rather than to the person who created them, so a key keeps working after that\nperson leaves. If you cannot find the section, ask us to enable API access for your\naccount.\n\n## Authentication\n\nAll endpoints require a valid API key passed via the `Authorization` header:\n\n```\nAuthorization: Bearer <your-api-key>\n```\n\n## Rate limits\n\nTwo limits apply per key: 60 requests in quick succession, refilling at 60 per minute,\nand 10 000 requests a day. Every response carries `X-RateLimit-Limit`,\n`X-RateLimit-Remaining` and `X-RateLimit-Reset` for whichever of the two is closest to\nrefusing you, and a refusal carries `Retry-After`, which says how long to wait.\n\n## Identifying a request\n\nEvery response carries an `X-Request-Id` header holding a unique identifier for that\ncall. It is worth keeping in your own logs: quoting it when you report a problem points\nus straight at the record of what you sent, what we did about it and what came back,\nrather than at a search by timestamp.\n\n## Collections\n\nCollection endpoints take `page` and `limit`. The default page size is 30 and the\nlargest accepted is 100.\n\nEvery collection response says how much there is, so you never have to fetch another\npage to find out whether one exists:\n\n| Header | Meaning |\n|---|---|\n| `X-Total-Count` | how many records match, across all pages |\n| `X-Page` | the page you are looking at |\n| `X-Per-Page` | how many records a page holds |\n| `X-Total-Pages` | how many pages there are |\n\nWhere there is a page after or before this one, a `Link` header carries it ready to\nfollow, with your filters preserved:\n\n```\nLink: <https:\/\/api.retjet.com\/returns\/v1\/rma-requests?limit=30&page=2>; rel=\"next\"\n```\n\nA `Link` header with no `rel=\"next\"` means you have reached the end. Endpoints that\nalways answer with a complete list, such as the dictionaries, report a single page\nholding everything and send no `Link` at all.\n\n## Response format\n\nAll responses are returned in JSON format. Successful responses return HTTP 200 for reads and HTTP 201 for resource creation.\n\n## Error handling\n\n| HTTP Code | Description |\n|-----------|-------------|\n| 400 | Invalid request data \u2014 check the response body for field-level errors |\n| 401 | Missing or invalid API key |\n| 403 | Insufficient permissions for this operation |\n| 404 | Requested resource not found |\n| 429 | Rate limit exceeded \u2014 retry after the indicated delay |\n| 500 | Internal server error \u2014 contact support if persistent |\n","title":"RetJet API","resourceNameCollection":["ApiPlatform\\State\\ApiResource\\Error","ApiPlatform\\Validator\\Exception\\ValidationException","App\\ApiResource\\ApiRequestLog","App\\ApiResource\\Bulk\\BulkOwner","App\\ApiResource\\Bulk\\BulkStar","App\\ApiResource\\Bulk\\BulkStatusChange","App\\ApiResource\\OrderedProduct","App\\ApiResource\\ReturnPointAddress","App\\ApiResource\\RmaRequest","App\\ApiResource\\RmaRequestApprovedAmount","App\\ApiResource\\RmaRequestAttachment","App\\ApiResource\\RmaRequestDeadline","App\\ApiResource\\RmaRequestFollower","App\\ApiResource\\RmaRequestIItemResolution","App\\ApiResource\\RmaRequestItemCondition","App\\ApiResource\\RmaRequestItemReason","App\\ApiResource\\RmaRequestMessage","App\\ApiResource\\RmaRequestOwner","App\\ApiResource\\RmaRequestProductUpdate","App\\ApiResource\\RmaRequestStamp","App\\ApiResource\\RmaRequestStar","App\\ApiResource\\RmaRequestStatusChange","App\\ApiResource\\RmaRequestTimeline","App\\ApiResource\\SaleChannel"]}