API
This specification
https://ecdsa.com/api/v1/openapi.jsonThe OpenAPI 3.1 document of this API, generated from the same operation definitions the server runs. The same document for every caller: cached by the CDN for an hour, not rate limited.
- API key
- Not read: the answer is the same for everyone
- Rate limit
- None: served from the CDN cache
Request
This operation takes no input.
Responses
200OpenAPI 3.1 document.
| Field | Type | Required | Description |
|---|---|---|---|
| openapi | string | yes | The OpenAPI version, "3.1.0". |
| info | object | yes |
|
| info.title | string | yes | |
| info.version | string | yes | |
| paths | object | yes |
|
| Status | Meaning | Codes |
|---|---|---|
| 404 | Not found. | |
| 405 | Method not allowed. | |
| 500 | Internal server error. |
Every error answer carries the JSON envelope; the error table says what each code means and what to do.
Example
The OpenAPI document
curl -sS 'https://ecdsa.com/api/v1/openapi.json'const response = await fetch("https://ecdsa.com/api/v1/openapi.json");
console.log(response.status, await response.json());import httpx
response = httpx.get("https://ecdsa.com/api/v1/openapi.json", timeout=30.0)
print(response.status_code, response.json())The 200 answer is 109 KB of JSON, too long to show here: open it.
The API’s answer to this example, produced for this page on October 20, 2026; relative times and day counts in it refer to that day.
Error codes
| Code | Status | Meaning |
|---|---|---|
| not_found | 404 | No operation exists at this path. |
| method_not_allowed | 405 | The path exists but does not accept this HTTP method; see the Allow header. |
| internal_error | 500 | Unexpected server error. |
Schemas
Error
The error envelope of every non-2xx response.
| Field | Type | Required | Description |
|---|---|---|---|
| error | object | yes | |
| error.code | string | yes | Machine-readable error code. Each response lists the codes it can carry; new codes may be added within v1, so treat an unknown code by its HTTP status. |
| error.message | string | yes | Human-readable explanation (English). |
| error.requestId | string | no | The X-Request-Id of this request — quote it when reporting a problem. Sent since v1.1. |
| error.detail | object | no | Structured context for the error, such as the offending field; omitted when there is none.
|
| error.docs | string | no | Where the error codes are explained. Sent since v1.1.
|
All operations are listed in the API reference.