Organizations API
List, read and update organizations, and read their quota and audit history.
Read and manage the organizations you belong to. Base path: /v1/organizations. All requests need a bearer token; see Authentication.
Organizations used to be called accounts. /v1/accounts/... paths still work and take the same IDs. The audit route below exists only under /v1/accounts.
List organizations
GET /v1/organizations?limit=100Returns the organizations you can read.
curl -s -H "Authorization: Bearer $TOKEN" "https://platform.groundfloor.cloud/v1/organizations"Get an organization
GET /v1/organizations/{organization_id}Permission: read on the organization.
Update an organization
PATCH /v1/organizations/{organization_id}Rename the organization or change its billing contact (up to 320 characters).
Permission: a request that changes only billing_contact needs view_billing (Owner, Admin or Billing admin). Any other field needs administer (Owner or Admin).
Request deletion
POST /v1/organizations/{organization_id}/deletion
DELETE /v1/organizations/{organization_id}/deletionPOST schedules the organization for deletion after a grace period (202 Accepted). The body is { "confirm_name": "…" }, which must match the organization's name exactly. DELETE cancels a scheduled deletion. A cancel works until the deletion starts, even after the scheduled date; once the deletion has started it returns 409.
Permission: the Owner role on the organization. An Admin gets 403.
Quota
GET /v1/organizations/{organization_id}/quotaYour usage against your plan's limits. Read-only. See Quotas and limits.
Permission: read on the organization.
Audit history
GET /v1/accounts/{organization_id}/audit?limit=50Changes made in the organization, newest first. This route is only available under /v1/accounts; pass the organization ID.
Permission: read on the organization.
Look up by identity-provider organization
GET /v1/organizations/by-org/{external_org_id}Returns the organization linked to an identity-provider organization ID. Returns 404 if you can't see one.
Create an organization
POST /v1/organizationsOrganizations are set up for you by Groundfloor: Groundfloor is invite-only. This route works for a signed-in user only where self-service creation is turned on, which it is not by default; elsewhere it returns 403 and you should contact the Groundfloor team. GET /v1/me/capabilities returns can_create_organization, which tells you whether you can use it.
| Field | Required | Description |
|---|---|---|
name | Yes | 1 to 255 characters |
tenancy_archetype | Yes | isv, enterprise, or si_agency |
billing_contact | No | Billing contact |
external_org_id | No | Ignored for self-service requests. A sign-in group is created for the organization automatically when the identity provider is configured |
Returns 201 with the organization, and you become its Owner. Plan tier and billing tier are set by Groundfloor: a self-service request can't choose them, and any values you send for them are ignored. You can also send plan_tier and billing_tier, which only Groundfloor operators can set.
Members and invitations
GET /v1/accounts/{account_id}/members
POST /v1/accounts/{account_id}/invitationsThese two routes exist only under /v1/accounts; pass the organization ID.
GET …/members returns up to 200 members, each with membership_id, user_id, role, created_at, email and display_name. Permission: read on the organization.
POST …/invitations takes { "email": "…", "role": "member" }, sends the person an invitation email to join the organization's sign-in group, and returns 202 with invitation_id, email, role and status. The role field is only recorded in the audit log; the route doesn't assign it. To give someone a role, use the Memberships API. Returns 409 if the organization has no linked identity-provider organization, or if that sign-in group is also linked to another organization (contact Groundfloor support with your organization's ID; it isn't caused by the email address), and 502 if the invitation email can't be sent. Permission: manage_members on the organization.
Related
- Workspaces API — including
GET /v1/workspaces/by-organization/{organization_id} - Memberships API — your team and their roles
- Organizations — the same in the Client Portal