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
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.
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.
{
"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.
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.