Concepts

Amounts, times and versions

The conventions every endpoint follows: JSON bodies, decimal strings, UTC times, prefixed ids and a stable v1.

Requests

  • The base URL is https://public-api.myntkaup.is, and every path starts with /v1.
  • Request bodies are JSON, sent with Content-Type: application/json, and at most 8 KB.
  • Unknown fields in a body and unknown query parameters are rejected with 400 invalid_request. The message names the field.
  • Every response carries an MK-Request-Id header, req_ followed by 26 characters. Log it.

Environments

EnvironmentBase URLKeys
Productionhttps://public-api.myntkaup.ismk_live_…
Staginghttps://public-api.staging.myntkaup.ismk_test_…

Staging is for Myntkaup's own testing for now. A public sandbox for developers is planned.

Amounts

  • Amounts are decimal strings: "0.00104210", "100.00", "-100.00". They are never JSON numbers, which would lose precision.
  • Parse them with a decimal type, such as decimal.Decimal in Python or a decimal library in JavaScript, or keep them as strings. Don't convert them to floating point to do arithmetic.
  • Amounts you send are positive, with up to 20 digits before the point and 18 after. Trade amounts are rounded to the asset's base_increment (see GET/v1/assets).
  • Trades settle in USDC (quote_currency). Values in ISK (value_isk, total_value_isk, isk_estimate) are indicative only.

Assets

Asset symbols are upper case: "BTC", "ETH", "USDC". GET/v1/assets lists the ones you can trade, with their sizes and precision. A delisted asset can still be sold.

Times

  • Times in responses are ISO 8601 in UTC with a Z: "2026-11-03T10:15:10Z".
  • The from and to filters also accept an offset: 2026-11-03T00:00:00+00:00.
  • MK-Timestamp is different: milliseconds since the Unix epoch.
  • A "day" in limits is the UTC day.

Ids

Ids are opaque strings with a prefix that tells you what they are:

PrefixObject
qt_Quote
tr_Trade
tx_Ledger entry (transaction)
gc_Gift card
req_Request id
mk_live_, mk_test_API key

Store them as strings of up to 70 characters. Don't parse what comes after the prefix.

Versioning

The version is in the path: /v1. Within v1, changes are only additive:

  • new endpoints;
  • new optional request fields and parameters;
  • new fields in responses.

So ignore response fields you don't know, rather than rejecting them. Removing or changing something would come with Deprecation and Sunset headers on the affected endpoints, and a new version. The changelog lists every change.