Get started¶
Everysk API is organized around the open standard protocol REST. Our API has predictable, resource-oriented URLs, and uses HTTP response codes to indicate API errors. We use built-in HTTP features, like HTTP authentication and HTTP verbs, which are understood by off-the-shelf HTTP clients. All API responses are returned in JSON, including errors.
The API uses standard HTTP verbs: GET to list and retrieve, POST to create and to run calculations, PUT to update and DELETE to delete. For POST and PUT, you send the arguments as a JSON encoded dictionary in the request body.
The API is served over HTTP/2, and a request body can carry up to 125 MB of content. The limit is sized for Base64: a file of 125 MB fits once encoded.
A request sent over HTTP/1.1 is limited to 32 MB instead. curl, browsers and the Everysk SDK use HTTP/2 on their own, but many HTTP libraries use HTTP/1.1 unless you configure them:
| Client | HTTP/2 |
|---|---|
| curl, browsers, the Everysk SDK | By default |
Python httpx |
Pass http2=True and install httpx[http2] |
Python requests |
Not supported. Use httpx for larger bodies |
Node.js fetch |
Use undici with allowH2: true |
| Node.js axios | Not supported |
.NET HttpClient |
Set DefaultRequestVersion to HttpVersion.Version20 |
A proxy or firewall that terminates TLS and only speaks HTTP/1.1 also turns the request into HTTP/1.1, whatever the client sends.
| HTTP Version | Max Payload Size |
|---|---|
| HTTP/2 (default) | 125 MB |
| HTTP/1.1 | 32 MB |
The same limits apply to every request: a compressed body once inflated, and each part of a file upload in parts.
Be sure to encode the Content-Type header for your requests as "application/json".
The API is served over HTTPS. Calls made over plain HTTP will fail.
Authentication is performed via OAuth2 using the JSON Web Token (JWT) format.
API Base URL:
The current version is v2. A new version is released whenever a backwards-incompatible change is made.
You can create your credentials in the API Manager: OAuth2 client credentials in the OAuth2 Credentials tab, and API keys in the API Keys tab. See Authentication for how to use them.
Workspace parameter¶
Every request must include the workspace query parameter. The API uses it to check that the request is scoped to a workspace the user has access to.
curl https://api.everysk.com/v2/<endpoint>?workspace=<WORKSPACE_NAME> \
-H "Authorization: Bearer <ACCESS_TOKEN>"
The only exception is the /workspaces endpoint, which does not take the workspace parameter.