Xata Projects API

Operations for creating, retrieving, updating, and deleting projects within an organization

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/xata-projects-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

xata-projects-api-openapi.yml Raw ↑
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