Skip to content
Daniel Ramsay edited this page Mar 19, 2023 · 7 revisions

Blocked API

The API is REST-inspired, allowing the submission and retrieval of test cases and statistics.

Versioning

The current API version is 1.2. All API function URLs are prefixed with /1.2.

HTTP Response Codes

Result / Description HTTP Code
Generic Success 200
Signature verification failed 403
Probe / User created 201
Omitted elements in request 400
Create a probe with duplicate UUID 409

Authentication

Most API endpoints are authenticated by a set of username and secret credentials. The credentials can be used as a username and password in Basic authentication, or they can be used to create a signature which is passed as a query string parameter or post variable.

Signature generation

Each API endpoint lists the fields that it requires in the signature. The values are concatenated using a : character, and a SHA512 HMAC is made using the secret value.

Example

GET /1.2/status/url?url=http%3a%2f%2fwww.example.com&date=2010-10-27+11

The status/url endpoint requires the URL and date fields to be signed, so the signature is generated using:

hex_hmac_sha512("http://www.example.com:2010-10-27 11:00:00", "my_api-secret");

This is appended to the GET request to give:

GET /1.2/status/url?url=http%3a%2f%2fwww.example.com&date=2010-10-27+11
%3a00%3a00&signature=b75eb4882f1e7bb53b52c5928788c0622ec671314291a80fac17e4ca1facab76d45e46de53304c59bb0dd536852874ae65e312310cb97fe6981fb5a38d238341

API endpoint reference