API reference


Introduction

These developer pages document how to make use of Printenbind's RESTFUL API (from now on: "API").

With this API, you are able to create shopping orders, place articles from Printenbind in it, and actually order those articles under your name to your specified address. Naturally, you are able to retrieve the data of any order/article/delivery data you placed.

With these functionalities we hope to encourage developers to integrate their application with that of Printenbind!


Authentication

For any request to any of the endpoints in this API, you are required to set the Authorization HTTP header with as value your API token. You are able to generate your API token at your profile page.
Failing to provide a valid API token will result in your request being denied by the API. If this would be the case, you would receive a 401 UNAUTHORIZED response error.

Example Authorization header

An example of what the Authorization HTTP header should look like:

Authorization: "a963dua0-3j3a-xd3e-a23x-dfs2xle37ahd"


Rate Limiting

This API implements a method of limiting the amount of requests a client can make on the API. Naturally, this is simply to prevent excessive spam on our servers. Clients that regularly hit and ignore the rate limit will have their API key temporarily revoked.

It's possible to execute requests on all endpoints combined up to 10 times per second. Should it happen that you hit the limit of the amount of requests you can make, then you would receive a 429 Too many requests response error.

Rate limit headers

In all responses of this API, the following rate limit headers are set:

Header Description
X-RateLimit-Limit The amount of requests you are able to make per second.
X-RateLimit-Remaining The amount of requests remaining you are able to make in the current second.


Rate limit headers example

An example of the headers that a response (in this example, the response of a order creation) could have:

date: Fri, 15 Dec 2017 12:49:50 GMT
server: Apache/2.4.27 (Win32) PHP/7.1.9 OpenSSL/1.0.2l
x-ratelimit-remaining: 7
x-ratelimit-limit: 10
content-type: text/html
location: api/orders/110
connection: Keep-Alive
keep-alive: timeout=5, max=100
content-length: 0
status: 201 Created
response-text: