Access the Supabase API with managed authentication. Query database tables via PostgREST, manage auth users, and handle storage buckets.
Reference
Get OpenAPI Schema
GET /supabase/rest/v1/Returns the OpenAPI specification describing all available tables and endpoints.
List Records from Table
GET /supabase/rest/v1/{table_name}Query Parameters:
select- Columns to return (e.g.,select=id,name,email)order- Sort order (e.g.,order=created_at.desc)limit- Maximum records to returnoffset- Number of records to skip
Example:
GET /supabase/rest/v1/users?select=id,email&order=created_at.desc&limit=10Get Single Record
GET /supabase/rest/v1/{table_name}?id=eq.{id}&select=*Insert Records
POST /supabase/rest/v1/{table_name}
Content-Type: application/json
Prefer: return=representation
{
"name": "John Doe",
"email": "john@example.com"
}Update Records
PATCH /supabase/rest/v1/{table_name}?id=eq.{id}
Content-Type: application/json
Prefer: return=representation
{
"name": "Jane Doe"
}Delete Records
DELETE /supabase/rest/v1/{table_name}?id=eq.{id}Filtering Operators
| Operator | Meaning | Example |
|---|---|---|
eq | Equals | ?status=eq.active |
neq | Not equals | ?status=neq.deleted |
gt | Greater than | ?age=gt.18 |
gte | Greater than or equal | ?age=gte.18 |
lt | Less than | ?age=lt.65 |
lte | Less than or equal | ?age=lte.65 |
like | Pattern match | ?name=like.*john* |
ilike | Case-insensitive pattern | ?name=ilike.*john* |
in | In list | ?status=in.(active,pending) |
is | Is null/true/false | ?deleted_at=is.null |
Get Auth Health
GET /supabase/auth/v1/healthResponse:
{
"version": "v2.188.1",
"name": "GoTrue",
"description": "GoTrue is a user registration and authentication API"
}Get Auth Settings
GET /supabase/auth/v1/settingsResponse:
{
"external": {
"email": true,
"phone": false,
"google": false,
"github": false
},
"disable_signup": false,
"mailer_autoconfirm": false
}List Users (Admin)
GET /supabase/auth/v1/admin/usersResponse:
{
"users": [
{
"id": "8974a9fa-95c4-4839-8d50-76f4666d2113",
"email": "user@example.com",
"email_confirmed_at": "2026-03-29T23:01:46.718322Z",
"created_at": "2026-03-29T23:01:46.689584Z"
}
],
"aud": "authenticated"
}Get User (Admin)
GET /supabase/auth/v1/admin/users/{user_id}Create User (Admin)
POST /supabase/auth/v1/admin/users
Content-Type: application/json
{
"email": "newuser@example.com",
"password": "securepassword123",
"email_confirm": true
}Response:
{
"id": "8974a9fa-95c4-4839-8d50-76f4666d2113",
"email": "newuser@example.com",
"email_confirmed_at": "2026-03-29T23:01:46.718322Z",
"role": "authenticated",
"app_metadata": {
"provider": "email",
"providers": ["email"]
}
}Update User (Admin)
PUT /supabase/auth/v1/admin/users/{user_id}
Content-Type: application/json
{
"email": "updated@example.com",
"user_metadata": {
"name": "Updated Name"
}
}Delete User (Admin)
DELETE /supabase/auth/v1/admin/users/{user_id}List Buckets
GET /supabase/storage/v1/bucketResponse:
[
{
"id": "avatars",
"name": "avatars",
"public": true,
"created_at": "2026-03-29T23:01:06.638Z",
"updated_at": "2026-03-29T23:01:06.638Z"
}
]Get Bucket
GET /supabase/storage/v1/bucket/{bucket_id}Create Bucket
POST /supabase/storage/v1/bucket
Content-Type: application/json
{
"id": "documents",
"name": "documents",
"public": false,
"file_size_limit": 10485760,
"allowed_mime_types": ["application/pdf", "image/png"]
}Update Bucket
PUT /supabase/storage/v1/bucket/{bucket_id}
Content-Type: application/json
{
"public": true
}Delete Bucket
DELETE /supabase/storage/v1/bucket/{bucket_id}List Objects in Bucket
POST /supabase/storage/v1/object/list/{bucket_id}
Content-Type: application/json
{
"prefix": "",
"limit": 100,
"offset": 0
}Upload Object
POST /supabase/storage/v1/object/{bucket_id}/{path}
Content-Type: {mime_type}
{binary_data}Download Object
GET /supabase/storage/v1/object/{bucket_id}/{path}Delete Object
DELETE /supabase/storage/v1/object/{bucket_id}/{path}