API96Astro API

Teams and projects

Invite teammates with roles, switch between organizations, and split keys, usage and budgets into projects.

An organization is your account: its plan, credits, invoices and keys. It can have several members, each with a role, and several projects, each with its own keys, usage and optional monthly credit budget.

Roles

RoleCan do
OwnerEverything, including billing, transferring ownership and asking for the organization to be deleted
AdminMembers, projects, keys and webhooks. Sees billing but cannot pay, change the plan or edit the billing profile
DeveloperAPI keys (creates keys and revokes the ones they created), the playground, usage and webhooks
BillingBilling, invoices and the GST profile; sees usage. No keys
ViewerRead-only: overview, keys (never a key's secret), usage, webhooks, billing

Every page of the dashboard checks your role on the server, so a hidden button is never the only protection. An organization always keeps at least one owner: the last owner cannot leave or be demoted until another member is made an owner.

These are roles inside your organization. They have nothing to do with 96Astro staff.

Inviting teammates

Owners and admins invite people from Team in the dashboard. An admin can invite admins, developers and viewers; only an owner can invite billing members.

  • The invitation email has a link that is valid for 7 days and works once. Resend sends a new link and the old one stops working; Withdraw cancels it.
  • The person must accept with the same email address the invitation was sent to. Without an account yet, they create one with that address from the link and join when they confirm it.
  • Seats count members and pending invitations.
PlanSeatsActive projectsProject budgets
Trial, Starter11No
Growth53No
Business20UnlimitedYes
EnterpriseBy contractUnlimitedYes

After a downgrade, existing members and projects stay; you cannot add more until you are within the new plan's limits.

Several organizations

You can belong to several organizations, for example your company's and a client's. Choose the one you are working in with the switcher at the top of the dashboard. Each browser session remembers its own choice, and it is checked against your memberships on every page: if you are removed from an organization, you lose access to it at your next request.

Removing a member

Owners and admins remove members from Team; anyone can leave. Keys belong to projects, not to people, so a removed member's keys keep working unless you tick Also revoke the keys they created. Review the key list (it shows each key's project) when someone leaves.

Projects

Use projects to separate apps, clients or environments of your own. Each project has:

  • its own test and live keys (choose the project when you create a key);
  • its own usage: filter the usage page and the CSV export by project (the CSV has a project_id column);
  • an optional monthly credit budget (Business and Enterprise).

Owners and admins create, rename and archive projects. A project with active keys cannot be archived (revoke them first), and an organization keeps at least one active project.

Webhook events carry the project_id of the job they report (or null for organization-wide events), and an endpoint can be scoped to one project. See webhooks.

Project budgets

A budget caps the live credits a project's keys may use per calendar month (UTC). It is checked before each call under the same lock as your credits, so concurrent calls cannot overshoot it. A call that does not fit returns:

{
  "error": {
    "code": "project_budget_exceeded",
    "message": "This project's monthly credit budget (50,000) does not cover this call: 49,995 used this month, 10 needed. …",
    "field": null,
    "request_id": "req_…",
    "retryable": false
  }
}

with HTTP status 429. It is not charged and retrying will not help: raise the budget under Projects, use another project's key, or wait for the 1st of the month. Failed calls and sandbox calls never count toward a budget.

On this page