Supabase · Schema

Supabase Project

Represents a Supabase project with its database, services, and configuration. A project is the primary unit of organization in Supabase, containing a PostgreSQL database and associated services like Auth, Storage, Realtime, and Edge Functions.

Backend-as-a-ServicePostgreSQLOpen-SourceAuthenticationReal-TimeStorageEdge FunctionsDatabase

Properties

Name Type Description
id string Unique identifier for the project
name string Display name of the project
organization_id string ID of the organization that owns this project
region string Cloud region where the project is hosted
status string Current operational status of the project
ref string Unique reference identifier used in API URLs
database object
services array Status of each service in the project
api_keys array API keys for accessing the project
plan string Billing plan for the project
created_at string Timestamp when the project was created
updated_at string Timestamp when the project was last updated
View JSON Schema on GitHub

JSON Schema

supabase-project-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://supabase.com/schemas/supabase/project.json",
  "title": "Supabase Project",
  "description": "Represents a Supabase project with its database, services, and configuration. A project is the primary unit of organization in Supabase, containing a PostgreSQL database and associated services like Auth, Storage, Realtime, and Edge Functions.",
  "type": "object",
  "required": ["id", "name", "organization_id", "region", "status"],
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid",
      "description": "Unique identifier for the project"
    },
    "name": {
      "type": "string",
      "description": "Display name of the project",
      "minLength": 1,
      "maxLength": 255
    },
    "organization_id": {
      "type": "string",
      "format": "uuid",
      "description": "ID of the organization that owns this project"
    },
    "region": {
      "type": "string",
      "description": "Cloud region where the project is hosted",
      "enum": [
        "us-east-1",
        "us-west-1",
        "eu-west-1",
        "eu-west-2",
        "eu-central-1",
        "ap-southeast-1",
        "ap-southeast-2",
        "ap-northeast-1",
        "ap-south-1",
        "sa-east-1"
      ]
    },
    "status": {
      "type": "string",
      "description": "Current operational status of the project",
      "enum": [
        "ACTIVE_HEALTHY",
        "ACTIVE_UNHEALTHY",
        "INACTIVE",
        "INIT_FAILED",
        "REMOVED",
        "RESTORING",
        "UPGRADING",
        "PAUSING",
        "COMING_UP"
      ]
    },
    "ref": {
      "type": "string",
      "description": "Unique reference identifier used in API URLs",
      "pattern": "^[a-z]{20}$"
    },
    "database": {
      "$ref": "#/$defs/DatabaseConfig"
    },
    "services": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/ServiceStatus"
      },
      "description": "Status of each service in the project"
    },
    "api_keys": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/ApiKey"
      },
      "description": "API keys for accessing the project"
    },
    "plan": {
      "type": "string",
      "description": "Billing plan for the project",
      "enum": ["free", "pro", "team", "enterprise"]
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "Timestamp when the project was created"
    },
    "updated_at": {
      "type": "string",
      "format": "date-time",
      "description": "Timestamp when the project was last updated"
    }
  },
  "$defs": {
    "DatabaseConfig": {
      "type": "object",
      "description": "PostgreSQL database configuration for the project",
      "properties": {
        "host": {
          "type": "string",
          "description": "Database host address"
        },
        "port": {
          "type": "integer",
          "description": "Database port number",
          "default": 5432
        },
        "name": {
          "type": "string",
          "description": "Database name",
          "default": "postgres"
        },
        "version": {
          "type": "string",
          "description": "PostgreSQL version"
        },
        "ssl_enforced": {
          "type": "boolean",
          "description": "Whether SSL connections are enforced"
        }
      }
    },
    "ServiceStatus": {
      "type": "object",
      "description": "Status of an individual project service",
      "required": ["name", "healthy"],
      "properties": {
        "name": {
          "type": "string",
          "description": "Name of the service",
          "enum": ["database", "auth", "storage", "realtime", "functions", "postgrest"]
        },
        "healthy": {
          "type": "boolean",
          "description": "Whether the service is healthy"
        },
        "status": {
          "type": "string",
          "description": "Detailed status message"
        }
      }
    },
    "ApiKey": {
      "type": "object",
      "description": "An API key for authenticating requests to the project",
      "required": ["name", "api_key"],
      "properties": {
        "name": {
          "type": "string",
          "description": "Key name identifying its role",
          "enum": ["anon", "service_role"]
        },
        "api_key": {
          "type": "string",
          "description": "The API key value (JWT)"
        }
      }
    },
    "Organization": {
      "type": "object",
      "description": "An organization that owns one or more Supabase projects",
      "required": ["id", "name"],
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid",
          "description": "Unique identifier for the organization"
        },
        "name": {
          "type": "string",
          "description": "Display name of the organization",
          "minLength": 1
        },
        "slug": {
          "type": "string",
          "description": "URL-friendly slug"
        },
        "billing_email": {
          "type": "string",
          "format": "email",
          "description": "Billing contact email"
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "description": "Timestamp when the organization was created"
        }
      }
    },
    "EdgeFunction": {
      "type": "object",
      "description": "A deployed Edge Function in a Supabase project",
      "required": ["id", "slug", "name"],
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid",
          "description": "Unique identifier for the function"
        },
        "slug": {
          "type": "string",
          "description": "URL-friendly slug used in the invocation URL",
          "pattern": "^[a-z0-9-]+$"
        },
        "name": {
          "type": "string",
          "description": "Display name of the function"
        },
        "status": {
          "type": "string",
          "description": "Deployment status",
          "enum": ["ACTIVE", "REMOVED", "THROTTLED"]
        },
        "version": {
          "type": "integer",
          "description": "Current deployment version",
          "minimum": 1
        },
        "verify_jwt": {
          "type": "boolean",
          "description": "Whether JWT verification is required for invocations",
          "default": true
        },
        "import_map": {
          "type": "boolean",
          "description": "Whether an import map is used"
        },
        "entrypoint_path": {
          "type": "string",
          "description": "Path to the function entry point file"
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "description": "Timestamp when the function was created"
        },
        "updated_at": {
          "type": "string",
          "format": "date-time",
          "description": "Timestamp when the function was last updated"
        }
      }
    },
    "StorageBucket": {
      "type": "object",
      "description": "A storage bucket for organizing files",
      "required": ["id", "name"],
      "properties": {
        "id": {
          "type": "string",
          "description": "Unique identifier for the bucket"
        },
        "name": {
          "type": "string",
          "description": "Name of the bucket"
        },
        "public": {
          "type": "boolean",
          "description": "Whether the bucket is publicly accessible",
          "default": false
        },
        "file_size_limit": {
          "type": "integer",
          "description": "Maximum file size allowed in bytes",
          "minimum": 0
        },
        "allowed_mime_types": {
          "type": "array",
          "items": {
            "type": "string",
            "pattern": "^[a-zA-Z0-9.*+-]+/[a-zA-Z0-9.*+-]+$"
          },
          "description": "List of allowed MIME types for uploads"
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "description": "Timestamp when the bucket was created"
        },
        "updated_at": {
          "type": "string",
          "format": "date-time",
          "description": "Timestamp when the bucket was last updated"
        }
      }
    },
    "User": {
      "type": "object",
      "description": "A user account managed by Supabase Auth",
      "required": ["id"],
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid",
          "description": "Unique user identifier"
        },
        "email": {
          "type": "string",
          "format": "email",
          "description": "User email address"
        },
        "phone": {
          "type": "string",
          "description": "User phone number in E.164 format"
        },
        "role": {
          "type": "string",
          "description": "User role"
        },
        "email_confirmed_at": {
          "type": ["string", "null"],
          "format": "date-time",
          "description": "Timestamp when email was confirmed"
        },
        "phone_confirmed_at": {
          "type": ["string", "null"],
          "format": "date-time",
          "description": "Timestamp when phone was confirmed"
        },
        "last_sign_in_at": {
          "type": ["string", "null"],
          "format": "date-time",
          "description": "Timestamp of last sign-in"
        },
        "app_metadata": {
          "type": "object",
          "description": "Application-level metadata managed by the system",
          "properties": {
            "provider": {
              "type": "string",
              "description": "Primary authentication provider"
            },
            "providers": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "List of linked authentication providers"
            }
          }
        },
        "user_metadata": {
          "type": "object",
          "description": "Custom user metadata set by the application"
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "description": "Timestamp when user was created"
        },
        "updated_at": {
          "type": "string",
          "format": "date-time",
          "description": "Timestamp when user was last updated"
        }
      }
    }
  }
}

Work with this as data

Every JSON Schema 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 schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • 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 JSON Schema
curl "https://apis.io/api/v1/json-schemas/supabase-project"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

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

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

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