Xata Projects API
Operations for creating, retrieving, updating, and deleting projects within an organization
Operations for creating, retrieving, updating, and deleting projects within an organization
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/xata-projects-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
openapi: 3.0.0
info:
title: Xata API Keys Projects API
description: Xata API
version: '1.0'
contact:
name: help@xata.io
servers:
- url: https://api.xata.tech
description: Xata API
tags:
- name: Projects
description: Operations for creating, retrieving, updating, and deleting projects within an organization
x-displayName: Projects
paths:
/organizations/{organizationID}/regions:
summary: Region Operations
description: Endpoints for retrieving available regions for deploying projects within an organization.
get:
operationId: listRegions
summary: Get available regions
description: Retrieves a list of all regions where new branches can be deployed for the specified organization.
parameters:
- name: organizationID
in: path
description: Unique identifier of the organization to check region availability for
required: true
schema:
$ref: '#/components/schemas/OrganizationID'
responses:
'200':
description: List of regions available for the organization
content:
application/json:
schema:
type: object
properties:
regions:
description: Array of available regions with their properties
type: array
items:
type: object
properties:
id:
description: Unique identifier for the region
type: string
publicAccess:
description: Whether data plane is public-facing to the internet in this region
type: boolean
backupsEnabled:
description: Whether backups are enabled for branches created in this region
type: boolean
provider:
description: Cloud provider the region runs on
type: string
enum:
- aws
- gcp
- custom
organizationId:
description: Organization that owns this region, if set the region is only available to this organization
type: string
nullable: true
required:
- id
- publicAccess
- backupsEnabled
- provider
- organizationId
required:
- regions
'400':
$ref: '#/components/responses/GenericError'
'401':
$ref: '#/components/responses/AuthorizationError'
5XX:
description: Unexpected Error
default:
description: Unexpected Error
security:
- xata:
- project:read
tags:
- Projects
/organizations/{organizationID}/instanceTypes:
summary: Instance Types Operations
description: Endpoints for retrieving available instance types for creating branches within an organization.
get:
operationId: listInstanceTypes
summary: Get available instance types
description: Retrieves a list of all instance types for the specified organization and region
parameters:
- name: organizationID
in: path
description: Unique identifier of the organization to check instance type availability for
required: true
schema:
$ref: '#/components/schemas/OrganizationID'
- name: region
in: query
description: Region to check instance type availability for
required: true
schema:
type: string
responses:
'200':
description: List of instance types available for the organization
content:
application/json:
schema:
type: object
properties:
instanceTypes:
description: Array of available instance types with their properties
type: array
items:
type: object
properties:
name:
description: Instance type name
type: string
vcpus:
description: number of vCPUs
type: integer
ram:
description: memory in Gi
type: integer
hourlyRate:
description: price per hour for this instance type and region
type: number
format: double
storageMonthlyRate:
description: price per month for a GB of storage for this region
type: number
format: double
region:
description: region where this instance type is available
type: string
required:
- name
- vcpus
- ram
- hourlyRate
- region
- storageMonthlyRate
required:
- instanceTypes
'400':
$ref: '#/components/responses/GenericError'
'401':
$ref: '#/components/responses/AuthorizationError'
5XX:
description: Unexpected Error
default:
description: Unexpected Error
security:
- xata:
- org:read
tags:
- Projects
/organizations/{organizationID}/images:
summary: Images Operations
description: Endpoints for retrieving available images for creating branches within an organization.
get:
operationId: listImages
summary: Get available images
description: Retrieves a list of all images for the specified organization and region
parameters:
- name: organizationID
in: path
description: Unique identifier of the organization to check image availability
required: true
schema:
$ref: '#/components/schemas/OrganizationID'
- name: region
in: query
description: Region to check image availability for organization
schema:
type: string
responses:
'200':
description: List of images available for the organization
content:
application/json:
schema:
type: object
properties:
images:
description: Array of available images with their properties
type: array
items:
$ref: '#/components/schemas/Image'
required:
- images
'400':
$ref: '#/components/responses/GenericError'
'401':
$ref: '#/components/responses/AuthorizationError'
5XX:
description: Unexpected Error
default:
description: Unexpected Error
security:
- xata:
- org:read
tags:
- Projects
/organizations/{organizationID}/extensions:
summary: Extensions Operations
description: Endpoints for retrieving available extensions of images used for creating branches within an organization.
get:
operationId: listExtensions
summary: Get available extensions for image
description: Retrieves a list of all extensions for the specified image in the organization and region given
parameters:
- name: organizationID
in: path
description: Unique identifier of the organization to check instance type availability for
required: true
schema:
$ref: '#/components/schemas/OrganizationID'
- name: image
in: query
description: Image for which we list extensions
required: true
schema:
type: string
- name: region
in: query
description: Region to list extensions for image in
schema:
type: string
responses:
'200':
description: List of extensions available for the image in the organization
content:
application/json:
schema:
type: object
properties:
extensions:
description: Array of available images with their properties
type: array
items:
$ref: '#/components/schemas/Extension'
required:
- extensions
'400':
$ref: '#/components/responses/GenericError'
'401':
$ref: '#/components/responses/AuthorizationError'
5XX:
description: Unexpected Error
default:
description: Unexpected Error
security:
- xata:
- org:read
tags:
- Projects
x-excluded: true
x-internal: true
/organizations/{organizationID}/limits:
summary: Organization Limits
description: Endpoint for retrieving the effective resource limits for an organization. Call this before creating a project or branch to know what constraints apply.
get:
operationId: getOrganizationLimits
summary: Get organization resource limits
description: Retrieves the effective org-level limits, including project creation limits and branch configuration defaults. Project-specific overrides are not applied here.
parameters:
- name: organizationID
in: path
description: Unique identifier of the organization
required: true
schema:
$ref: '#/components/schemas/OrganizationID'
responses:
'200':
description: Effective resource limits for the organization
content:
application/json:
schema:
$ref: '#/components/schemas/OrganizationLimits'
'401':
$ref: '#/components/responses/AuthorizationError'
'403':
$ref: '#/components/responses/AuthorizationError'
5XX:
description: Unexpected Error
security:
- xata:
- org:read
tags:
- Projects
/organizations/{organizationID}/projects/limits:
summary: Project Limits
description: Endpoint for retrieving the default resource limits for projects within an organization.
get:
operationId: getDefaultProjectLimits
summary: Get project resource limits
description: Retrieves the default resource limits for projects in the specified organization, including maximum instances, storage, and allowed regions.
parameters:
- name: organizationID
in: path
description: Unique identifier of the organization to get project limits for
required: true
schema:
$ref: '#/components/schemas/OrganizationID'
responses:
'200':
description: Default resource limits for projects in the organization
content:
application/json:
schema:
$ref: '#/components/schemas/ProjectLimits'
security:
- xata:
- project:read
tags:
- Projects
/organizations/{organizationID}/projects:
summary: Projects Management
description: Endpoints for listing and creating projects within an organization.
get:
operationId: listProjects
summary: List all projects
description: Retrieves a list of all projects within the specified organization that the authenticated user has access to.
parameters:
- name: organizationID
in: path
description: Unique identifier of the organization to list projects from
required: true
schema:
$ref: '#/components/schemas/OrganizationID'
responses:
'200':
description: A list of projects within the organization
content:
application/json:
schema:
type: object
properties:
projects:
description: Array of project objects with their metadata
type: array
items:
$ref: '#/components/schemas/Project'
required:
- projects
'400':
$ref: '#/components/responses/GenericError'
'401':
$ref: '#/components/responses/AuthorizationError'
5XX:
description: Unexpected Error
default:
description: Unexpected Error
security:
- xata:
- project:read
tags:
- Projects
post:
operationId: createProject
summary: Create a new project
description: Creates a new project within the specified organization. Projects are containers for database branches and resources.
parameters:
- name: organizationID
in: path
description: Unique identifier of the organization to create the project in
required: true
schema:
$ref: '#/components/schemas/OrganizationID'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
description: Human-readable name for the new project
type: string
configuration:
$ref: '#/components/schemas/ProjectConfiguration'
required:
- name
responses:
'201':
description: Project successfully created
content:
application/json:
schema:
$ref: '#/components/schemas/Project'
'400':
$ref: '#/components/responses/GenericError'
'401':
$ref: '#/components/responses/AuthorizationError'
5XX:
description: Unexpected Error
default:
description: Unexpected Error
security:
- xata:
- project:write
tags:
- Projects
/organizations/{organizationID}/projects/{projectID}:
summary: Project Operations
description: Endpoints for retrieving, updating, and deleting a specific project by ID.
get:
operationId: getProject
summary: Get project details
description: Retrieves detailed information about a specific project by its ID within the specified organization.
parameters:
- name: organizationID
in: path
description: Unique identifier of the organization containing the project
required: true
schema:
$ref: '#/components/schemas/OrganizationID'
- name: projectID
in: path
description: Unique identifier of the project to retrieve
required: true
schema:
type: string
responses:
'200':
description: Project details retrieved successfully
content:
application/json:
schema:
$ref: '#/components/schemas/Project'
'400':
$ref: '#/components/responses/GenericError'
'401':
$ref: '#/components/responses/AuthorizationError'
'404':
$ref: '#/components/responses/GenericError'
5XX:
description: Unexpected Error
default:
description: Unexpected Error
security:
- xata:
- project:read
tags:
- Projects
patch:
operationId: updateProject
summary: Update project details
description: Updates the details of a specific project by its ID, such as changing its name.
parameters:
- name: organizationID
in: path
description: Unique identifier of the organization containing the project
required: true
schema:
$ref: '#/components/schemas/OrganizationID'
- name: projectID
in: path
description: Unique identifier of the project to update
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
description: New name for the project
type: string
configuration:
$ref: '#/components/schemas/UpdateProjectConfiguration'
responses:
'200':
description: Project successfully updated
content:
application/json:
schema:
$ref: '#/components/schemas/Project'
'400':
$ref: '#/components/responses/GenericError'
'401':
$ref: '#/components/responses/AuthorizationError'
'404':
$ref: '#/components/responses/GenericError'
5XX:
description: Unexpected Error
default:
description: Unexpected Error
security:
- xata:
- project:write
tags:
- Projects
delete:
operationId: deleteProject
summary: Delete a project
description: Permanently deletes a specific project by its ID and all associated resources including branches and databases. This action cannot be undone.
parameters:
- name: organizationID
in: path
description: Unique identifier of the organization containing the project
required: true
schema:
$ref: '#/components/schemas/OrganizationID'
- name: projectID
in: path
description: Unique identifier of the project to delete
required: true
schema:
type: string
responses:
'204':
description: Project successfully deleted
'400':
$ref: '#/components/responses/GenericError'
'401':
$ref: '#/components/responses/AuthorizationError'
'404':
$ref: '#/components/responses/GenericError'
5XX:
description: Unexpected Error
default:
description: Unexpected Error
security:
- xata:
- project:write
tags:
- Projects
/organizations/{organizationID}/projects/{projectID}/limits:
summary: Project Limits
description: Endpoint for retrieving the effective resource limits for a specific project.
get:
operationId: getProjectLimits
summary: Get project resource limits
description: Retrieves the effective resource limits for the specified project, merging organization-level overrides with any project-specific overrides.
parameters:
- name: organizationID
in: path
description: Unique identifier of the organization
required: true
schema:
$ref: '#/components/schemas/OrganizationID'
- name: projectID
in: path
description: Unique identifier of the project to get limits for
required: true
schema:
type: string
responses:
'200':
description: Effective resource limits for the project
content:
application/json:
schema:
$ref: '#/components/schemas/EffectiveProjectLimits'
'401':
$ref: '#/components/responses/AuthorizationError'
5XX:
description: Unexpected Error
default:
description: Unexpected Error
security:
- xata:
- project:read
tags:
- Projects
/organizations/{organizationID}/projects/{projectID}/backups:
summary: Backups Operations
description: Endpoints for managing project backups.
get:
operationId: listBackups
summary: List project backups
description: Retrieves a list of backups for the specified project.
parameters:
- name: organizationID
in: path
description: Unique identifier of the organization containing the project
required: true
schema:
$ref: '#/components/schemas/OrganizationID'
- name: projectID
in: path
description: Unique identifier of the project to retrieve backups for
required: true
schema:
type: string
responses:
'200':
description: A list of backups within the project
content:
application/json:
schema:
type: object
properties:
backups:
description: list of backups within the project
type: array
items:
$ref: '#/components/schemas/BackupMetadata'
required:
- backups
'400':
$ref: '#/components/responses/GenericError'
'401':
$ref: '#/components/responses/AuthorizationError'
'404':
$ref: '#/components/responses/GenericError'
5XX:
description: Unexpected Error
default:
description: Unexpected Error
security:
- xata:
- project:read
tags:
- Projects
x-excluded: true
x-internal: true
/organizations/{organizationID}/projects/{projectID}/backups/{backupID}:
summary: Backup Operations
description: Endpoints for getting project backup.
get:
operationId: getBackup
summary: Get project backup by ID
description: Retrieves a backup by ID for the specified project.
parameters:
- name: organizationID
in: path
description: Unique identifier of the organization containing the project
required: true
schema:
$ref: '#/components/schemas/OrganizationID'
- name: projectID
in: path
description: Unique identifier of the project to retrieve backups for
required: true
schema:
type: string
- name: backupID
in: path
description: Unique identifier of the backup for the project
required: true
schema:
type: string
responses:
'200':
description: The backup metadata
content:
application/json:
schema:
$ref: '#/components/schemas/BackupMetadata'
'400':
$ref: '#/components/responses/GenericError'
'401':
$ref: '#/components/responses/AuthorizationError'
'404':
$ref: '#/components/responses/GenericError'
5XX:
description: Unexpected Error
default:
description: Unexpected Error
security:
- xata:
- project:read
tags:
- Projects
x-excluded: true
x-internal: true
components:
schemas:
OrganizationLimits:
description: Effective resource limits for an organization, covering org-level defaults for all projects plus organization-specific constraints
allOf:
- $ref: '#/components/schemas/EffectiveProjectLimits'
- type: object
properties:
maxProjects:
description: Maximum number of projects allowed in the organization
type: integer
minimum: 1
title: Maximum number of projects
maxProjectsPerHour:
description: Maximum number of projects that can be created in a rolling one-hour window
type: integer
minimum: 1
title: Maximum project creation rate per hour
maxBranchesPerOrg:
description: Maximum number of active branches allowed across all projects in the organization
type: integer
minimum: 1
title: Maximum number of branches per organization
required:
- maxProjects
- maxProjectsPerHour
- maxBranchesPerOrg
EffectiveProjectLimits:
description: Full set of resource limits applicable to a project and its branches
type: object
properties:
maxDescriptionLength:
description: Maximum character length allowed for project descriptions
type: integer
minimum: 25
title: Maximum length of a project description
maxBranchesPerProject:
description: Maximum number of branches allowed per project
type: integer
title: Maximum number of branches per project
maxInstancesPerBranch:
description: Maximum number of database instances allowed per branch
type: integer
minimum: 1
title: Maximum number of instances per branch
minInstancesPerBranch:
description: Minimum number of database instances required per branch
type: integer
minimum: 1
title: Minimum number of instances per branch
maxAllowedInstanceType:
description: Maximum VCPUs (in millicores) allowed per instance; instance types with a higher VCPUsRequest are unavailable
type: integer
minimum: 1
title: Maximum allowed instance type (VCPUs in millicores)
maxBranchesPerHour:
description: Maximum number of branches that can be created in a rolling one-hour window
type: integer
minimum: 1
title: Maximum branch creation rate per hour
required:
- maxDescriptionLength
- maxBranchesPerProject
- maxInstancesPerBranch
- minInstancesPerBranch
- maxAllowedInstanceType
- maxBranchesPerHour
Image:
description: Details of a postgres image
type: object
properties:
name:
description: Image name
type: string
majorVersion:
description: major postgres version
type: string
fullVersion:
description: full postgres version
type: string
region:
description: region where this instance type is available
type: array
items:
type: string
minItems: 1
required:
- name
- majorVersion
- fullVersion
ProjectLimits:
description: Resource limits and constraints for projects within an organization
type: object
properties:
maxInstances:
description: Maximum number of database instances allowed per branch
type: integer
minimum: 1
title: Maximum number of instances in a branch
minInstances:
description: Minimum number of database instances required per branch
type: integer
minimum: 1
title: Minimum number of instances in a branch
maxDescriptionLength:
description: Maximum character length allowed for project descriptions
type: integer
minimum: 25
title: Maximum length of a project description
maxBranches:
description: Maximum number of branches allowed per project
type: integer
title: Maximum number of branches per project
required:
- maxInstances
- minInstances
- maxDescriptionLength
- maxBranches
BackupMetadata:
description: metadata about a continuous backup
type: object
properties:
id:
description: unique identifier for the backup
type: string
branchID:
description: the branchID the branch associated with the backup
type: string
earliestRestore:
description: the earlies point in time available for restoring the branch
type: string
format: date-time
latestRestore:
description: the latest point in time available for restoring the branch
type: string
format: date-time
description:
description: description of the backup
type: string
required:
- id
- branchID
- description
IPFilteringConfiguration:
description: Configuration for IP filtering on project branches
type: object
properties:
enabled:
description: Whether IP filtering is enabled
type: boolean
cidr:
type: array
items:
$ref: '#/components/schemas/CidrEntry'
required:
- enabled
- cidr
OrganizationID:
title: OrganizationID
type: string
pattern: '[a-zA-Z0-9_-~:]+'
x-oapi-codegen-extra-tags:
validate: identifier
ProjectConfiguration:
description: Configuration details for a project, including its scale to zero settings
type: object
properties:
scaleToZero:
$ref: '#/components/schemas/ProjectScaleToZeroConfiguration'
ipFiltering:
$ref: '#/components/schemas/IPFilteringConfiguration'
required:
- scaleToZero
Project:
description: Details of a project including its ID, name, and creation/update timestamps
type: object
properties:
id:
description: Unique identifier for the project
type: string
name:
description: Human-readable name of the project
type: string
createdAt:
description: Timestamp when the project was created
type: string
format: date-time
updatedAt:
description: Timestamp when the project was last updated
type: string
format: date-time
configuration:
$ref: '#/components/schemas/ProjectConfiguration'
required:
- id
- name
- createdAt
- updatedAt
- configuration
Extension:
description: Details of a postgres extension
type: object
properties:
name:
description: Extension name
type: string
version:
description: Extension version
type: string
description:
description: Extension description
type: string
docs:
description: Documentation URL
type: string
preloadRequired:
description: is preload required for the extension or not
type: boolean
type:
description: type of installation
type: string
enum:
- extension
- plugin
- module
required:
- name
- description
- version
- docs
- preloadRequired
- type
x-excluded: true
x-internal: true
UpdateProjectConfiguration:
description: Partial configuration update for a project
type: object
properties:
scaleToZero:
$ref: '#/components/schemas/ProjectScaleToZeroConfiguration'
ipFiltering:
$ref: '#/components/schemas/IPFilteringConfiguration'
CidrEntry:
type: object
properties:
cidr:
description: CIDR block (e.g., "192.168.0.0/24")
type: string
description:
description: Optional label for the CIDR entry
type: string
required:
- cidr
ScaleToZeroConfiguration:
description: Configuration for scaling branches to zero when not in use
type: object
properties:
enabled:
description: Whether scale to zero is enabled
type: boolean
inactivityPeriodMinutes:
description: Duration in minutes after which branches will be hibernated if not accessed
type: integer
default: 30
required:
- enabled
- inactivityPeriodMinutes
ProjectScaleToZeroConfiguration:
description: Whether the project branches are configured to scale down to zero when not in use
type: object
properties:
baseBranches:
$ref: '#/components/schemas/ScaleToZeroConfiguration'
childBranches:
$ref: '#/components/schemas/ScaleToZeroConfiguration'
required:
- baseBranches
- childBranches
responses:
GenericError:
description: Generic error response for most error conditions
content:
application/json:
schema:
type: object
properties:
id:
description: Error identifier for tracking and debugging
type: string
message:
# --- truncated at 32 KB (34 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/xata/refs/heads/main/openapi/xata-projects-api-openapi.yml