Skip to content

Keys and usage.

Credentials are issued by Plantactic against your account, and what a query cost comes back on the response that ran it rather than on a dashboard you have to go and read. There is no self-service console yet, so this page is the reference for both.

The two credentials

test ptx_test_………

Reads and writes test-mode datasets, isolated from live data and never billed. A new test account starts empty. Datasets and versions it returns carry livemode: false; the metric grid carries no mode field at all.

live ptx_live_………

Your own data, metered on compute. Issued against your account on request, like the test key — the prefixes differ in what they can reach, not in how you get them.

A key is shown once, at issue time. After that it is stored as a hash and cannot be retrieved by us or by you — a lost key is replaced, never recovered. The two prefixes are never interchangeable, and neither is a dataset created under one: a test key cannot see live data and a live key cannot see the sandbox.

Connecting through Claude produces a third kind — an OAuth credential, issued live, scoped to your account, and never shown to you at all because nothing outside the connector needs it. The connector guide covers it.

Revoking a credential

Revocation takes effect on the next request, not after a cache expires. That is a deliberate property and it cost us a cache to keep: an earlier version of the connector held introspection results briefly, which meant a revoked token kept working for up to a minute. It was removed rather than shortened, because "revoked" that still answers is not revoked.

Disconnecting the connector in Claude revokes its credential the same way. To revoke a REST key, mail support@plantactic.com — say which prefix, not the key itself.

what a revoked key gets
{
  "type":   "https://developer.plantactic.com/errors/unauthorized",
  "title":  "Unauthorized",
  "status": 401,
  "detail": "Unknown or revoked API key."
}

A key that never existed gets the same words. That is deliberate: answering "that one was revoked" confirms it was real, which is information the asker had not earned.

What a query costs

A unit is one contract-month on the axis: the number of contracts in the version, multiplied by the number of months the grid spans, multiplied by the segment combinations evaluated — which is one today. Two contracts over a fourteen-month axis cost twenty-eight.

Note what that is not: it is a rectangle, not a sum of each contract's own term. A contract that covers three months of a sixty-month axis is charged for sixty. The axis is derived from your data rather than chosen, so a dataset of short contracts gets a short axis and a small bill — but within one dataset, every contract costs the same regardless of length.

You do not have to ask what a metrics query cost. The response that ran it carries the number, and it is the same number we record — computed once, so an invoice and a header cannot drift apart. Exports are metered on the same basis but return 202, so their cost is not on the response you get back.

on every metrics response
POST /v1/datasets/{id}/metrics

X-Plantactic-Compute-Units: 19000

# 380 contracts x a 50-month axis, on the
# response that ran it

What this page deliberately does not show you

A usage total, a quota bar, or a billing history. Usage is recorded per request, but there is no self-service view of it and no enforced quota — nothing rejects a query for being over budget today. Drawing a meter here would be drawing a control that does not exist.