Manage Organizations using the Neon API
Learn how to manage Neon Organizations using the Neon API, including creating and using organization-specific API keys, creating projects, transferring projects, and retrieving consumption metrics.
You can authenticate your API requests using either of these methods:
- Organization API key: Automatically scopes all requests to your organization
- Personal API key: Requires including an
org_id
parameter to specify which organization you're working with
The key difference is in how you structure your API requests. Here's an example of listing projects using both methods:
Using an organization API key:
Using a personal API key:
Both examples retrieve a list of projects, but notice how the personal API key request includes org_id=org-example-12345678
to specify which organization's projects to list. With an organization API key, this parameter isn't needed because the key itself is already tied to a specific organization.
Finding your org_id
To find your organization's org_id
, navigate to your Organization's Settings page, where you'll find it under the General information section. Copy and use this ID in your API requests.
Creating API keys
Only admins can create API keys for the organization. These keys provide admin-level access to all organization resources, including projects, members, and billing information. These are user-independent — they are not tied to a specific user. If any user leaves the organization, including the admin who created the API key, the API key remains active.
To create a new key, go to your organization’s settings and click the Create new API key button in the API keys section.
Organization management actions
The following examples use the organization API key for authentication. If you're using a personal API key, you'll need to include the org_id
parameter to specify which organization you're working with.
Get organization details
Retrieves information about your organization, including its name, plan, and creation date.
Example response:
Get details about all members
Lists all members in your organization. Each entry includes:
- Member ID (
id
): The unique identifier for the member - User ID (
user_id
): The unique ID of the user's Neon account - Organization role and join date
- User's email address
Example response:
note
id
) from this response is needed for operations like updating roles or removing members.Get details about an individual member
Retrieves information about a specific member using their member ID (obtained from the Get all members endpoint).
Example response:
Update the role for an organization member
Changes a member's current role in the organization. If using your personal API key, you need to be an admin in the organization to perform this action. Note: you cannot downgrade the role of the organization's only admin.
Example response:
Remove member from the organization
If using your personal API key, you need to be an admin in the organization to perform this action.
note
Get organization invitation details
Retrieves a list of all pending invitations for the organization.
Example response:
Create organization invitations
Creates invitations for new organization members. Each invited user:
- Receives an email notification about the invitation
- If they have an existing Neon account, they automatically join as a member
- If they don't have an account yet, the email invites them to create one
note
General project actions
These endpoints support both Organization API key and Personal API key authentication. If using a Personal API key, you need to include the org_id
parameter to specify which organization you're working with.
The following examples use the Organization API key method.
Creating projects
Creates a new project within your organization. You can specify:
- Postgres version
- Project name (optional)
- Region (optional)
Listing projects
Lists all projects belonging to your organization, with a default limit of 10 projects per return:
Transfer projects
The Project Transfer API allows you to transfer projects from your personal Neon account to a specified organization account. See Transfer projects via API for details.
Consumption metrics
You can use the Neon API to retrieve three types of consumption metrics for your organization:
note
Some metrics are only available on specific plans. Check the "Plan Availability" column for details.
Metric | Description | Plan Availability |
---|---|---|
Account-level | Total usage across all projects in your organization | Scale plan only |
Project-level (granular) | Project-level metrics available at hourly, daily, or monthly level of granularity | Scale plan only |
Project-level (billing period) | Consumption metrics for each project in your Organization for the current billing period | All plans |
Account-level metrics
To get global totals for all projects in the organization org-ocean-art-12345678
, include the org_id
in the GET /consumption/projects
request. We also need to include:
- A start date
- An end date
- A level of granularity
In this case, we're asking for hourly metrics between June 30th and July 2nd, 2024.
The response will provide aggregated hourly consumption metrics, including active time, compute time, written data, and synthetic storage size, for each hour between June 30 and July 2.
Response
Project-level metrics (granular)
You can also get similar daily, hourly, or monthly metrics across a selected time period, but broken out for each individual project that belongs to your organization.
Using the endpoint GET /consumption_history/projects
, let's use the same start date, end date, and level of granularity as our account-level request: hourly metrics between June 30th and July 2nd, 2024.
Response
Project-level metrics (for the current billing period)
To get basic billing period-based consumption metrics for each project in the organization org-ocean-art-12345678
, include org_id
in the GET /projects
request for consumption metrics:
See more details about using this endpoint on the Manage billing with consumption limits page in our Partner Guide.
List all organizations you belong to
You can use the GET /users/me/organizations
request to retrieve a list of all organizations associated with your personal account.
The response will include details about each organization, including the org_id
, name, and creation date.