Find an account or a company and see its tier
const url = 'https://beta-api.plune.ai/v1/admin/tiers?query=example';const options = {method: 'GET', headers: {cookie: 'plune_session=<plune_session>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url 'https://beta-api.plune.ai/v1/admin/tiers?query=example' \ --cookie plune_session=<plune_session>Accounts by part of the address and companies (not in the Bin) by part of the name, up to 25 of each: the tier each is on now, until when, and the newest grant — who gave it and why. Owner-only and session-only (the owner’s plune_session cookie; a bearer token is refused, as every token is minted inside a project); everyone else gets 404. Ten calls a minute.
Authorizations
Section titled “Authorizations ”Parameters
Section titled “ Parameters ”Query Parameters
Section titled “Query Parameters ”Responses
Section titled “ Responses ”The accounts and companies that match
object
object
object
The address of an account, the name of a company.
object
Free and Personal are an account’s, Team and Enterprise a company’s; Free may also be a company’s, as the row that cancels its Team.
Worked out from the grants at the database’s clock, never stored. active: a paid grant covers now. grace: it ended or was cancelled less than 14 days ago, and the limits are still the tier’s. expired: the 14 days are over — Free. disabled: the operator switched it off — Free at once, and nothing is deleted for 14 days. No grant ever is plain Free, active.
What a grant carries besides its tier. A free grant carries none.
object
When the paid period ends — or ended, in grace. null without an end, and on Free.
Only in grace and disabled: when the 14 days end.
The newest row of its history; null when it never had one.
object
object
Free and Personal are an account’s, Team and Enterprise a company’s; Free may also be a company’s, as the row that cancels its Team.
What a grant carries besides its tier. A free grant carries none.
object
The application owner who granted it; null for a payment.
The address of grantedBy; deleted account once the purge has made that account nobody; null for a payment.
Example
{ "results": [ { "subject": { "kind": "company", "id": "6f1c2b3a-0000-4000-8000-0000000000a5" }, "label": "Acme", "standing": { "tier": "team", "state": "active", "options": { "saml": true }, "validUntil": "2099-12-31T23:59:59.000Z", "graceEndsAt": null }, "latest": { "id": "6f1c2b3a-0000-4000-8000-0000000000a6", "subject": { "kind": "company", "id": "6f1c2b3a-0000-4000-8000-0000000000a5" }, "tier": "team", "options": { "saml": true }, "validFrom": "2026-09-16T09:12:04.151Z", "validUntil": "2099-12-31T23:59:59.000Z", "source": "manual", "grantedBy": "u-shop", "note": "annual invoice 2026-114", "disabled": false, "createdAt": "2026-09-16T09:12:04.151Z" } } ]}No query, or one over 100 characters
object
Example
{ "error": "query: must be 1 to 100 characters"}No / invalid session
The caller does not own the application
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