Skip to main content

Base URLs

Authentication

Every request must be authenticated using HMAC-SHA256 request signing. You receive an API key and secret during partner onboarding.

Required Headers Testing

Signature Algorithm

Build the canonical string with these newline-delimited parts, then sign it with HMAC-SHA256:
Use the exact host from the environment you call, keep query parameters in their original order, and use an empty body hash for GET and multipart/form-data requests. See the Authentication page for the full language examples.
The current OpenAPI file still lists api_secret as a security scheme. The narrative integration contract uses the secret as the HMAC signing key, not as a request header. Keep your implementation aligned with the signed-header flow shown here unless Coinut gives you an environment-specific override.
Requests with timestamps older than 60 seconds are rejected. Sync your server clock with NTP.

Authenticated Request Example

Request & Response Format

  • All requests and responses use JSON with UTF-8 encoding.
  • Set Content-Type: application/json on every request.
  • Use POST for mutations and GET for reads unless specified otherwise.

Success Response

Error Response

HTTP Status Codes

Pagination

List endpoints return paginated results using these fields:

Example Paginated Response

Pass pageNum and pageSize as query parameters on list endpoints. pageSize defaults to 10 and caps at 100.

API Categories

Rate Limiting

Rate limits apply per API key. Exceeding the limit returns HTTP 429. Default limits are 100 requests per minute per key. Contact support to raise your limit.
If you hit a 429, wait for the Retry-After header (seconds) before retrying. Use exponential backoff with jitter in your client.