Save a version of the matrix
const url = 'https://beta-api.plune.ai/v1/matrix-versions';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"from":"2026-09-16T00:00:00+03:00","to":"2026-10-15T23:59:59+03:00"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://beta-api.plune.ai/v1/matrix-versions \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "from": "2026-09-16T00:00:00+03:00", "to": "2026-10-15T23:59:59+03:00" }'An owner’s or a member’s. Counts the matrix over from–to the way GET /v1/requirements?cases=true does, and freezes it as the next number of the project, with the date and the author; the open matrix stays live. The text of the requirements is not kept. A snapshot over 262144 bytes of JSON is a 413 naming the limit: choose a shorter period. Nothing in it changes afterwards.
Authorizations
Section titled “Authorizations ”Request Body required
Section titled “Request Body required ”object
ISO 8601 with a zone, as on GET /v1/requirements.
Included; not before from.
Example
{ "from": "2026-09-16T00:00:00+03:00", "to": "2026-10-15T23:59:59+03:00"}Responses
Section titled “ Responses ”Saved
object
Stable: it names this snapshot for good, so a link can point at it (#1266).
V1, v2, … within the project; a number is never reused.
The start of the period the coverage was counted over.
The end of the period, included.
When the snapshot was saved.
Whoever saved it: their name, or their address when they have none; as it was then.
Example
{ "id": "6f1c2b3a-0000-4000-8000-0000000000b3", "number": 3, "periodFrom": "2026-09-16T00:00:00.000Z", "periodTo": "2026-10-15T23:59:59.999Z", "builtAt": "2026-09-16T09:12:04.151Z", "authorName": "Dana"}Invalid body, or from later than to
object
Example generated
{ "error": "example"}No / invalid token or session
You are in the project as a reader
Another version was saved at the same moment: try again
object
Example generated
{ "error": "example"}The snapshot is over the limit
object
Example generated
{ "error": "example"}Rate-limited: the per-route throttle, or the per-minute request limit of the plan an API token counts by (#1442; the body names the plan, #2092). Retry-After carries the seconds until the window rolls over.
object
Example generated
{ "error": "example"}Headers
Section titled “Headers ”Seconds until the window rolls over