Create record
Creates a structured, integrity-hashed record inside a table.
This endpoint also creates versions. ROOTKey groups a record’s versions by the table’s primary key — the schema’s key column, which (until one is explicitly designated) is the first field, by convention an id.
- If no record with that key value exists yet, the payload is stored as a new root record.
- If a record with the same key value already exists, the payload is stored as a new version of that entity (a database-style update). The version’s
parentIdis set to the existing root automatically — you do not send it.
So to update an entity, simply POST the same primary key again — there is no separate version-creation endpoint; versioning is a built-in behaviour of this route.
Versioning only applies when the table has a schema and the payload is a keyed object with a non-empty key value; otherwise the record is stored as a standalone root.
Response: returns only { chainId }. The new record’s id is not returned here — read it from GET /platform/records (the __meta.id field of each item).
id).- New primary-key value → new record.
- Primary-key value that already exists → a new version of that record (a
database-style update). The new version’s
parentIdis set to the existing entity’s root record automatically — you don’t send it.
POST the same primary key again — there is no
separate version-creation endpoint. Versioning is a built-in behaviour of this route,
driven entirely by the primary key.See the Records overview → Versioning
for the full model and how to read a record’s id back.Authorizations
ROOTKey API key (rk_live_... for production, rk_test_... for the test network).
Body
Address of the table that will own the record. (ownerWallet is accepted as an alias.)
"0xdf67CA8286510997567685c0385ECeAb11C23C92"
The record's columns as a JSON object. Values are primitives (string, number, boolean, ISO date, null) or nested objects/arrays within limits: 1 MB per record, 64 KB per string, 100 properties, 10 levels of nesting, 1,000 array elements. Keys beginning with __ (and prototype-polluting keys) are stripped on ingest. The value of the schema's key column (the primary key) determines version grouping — see the endpoint description.
Optional expiry date-time for the record.
Response
Record created (or a new version, if its primary key already existed)
Record create/version response. Note: unlike files, record creation does not return a transactionHash or the new record id — obtain the id from GET /platform/records (__meta.id).
Polygon chain ID (137 in production, 80002 on the Amoy testnet).
137

