Supabase Session Manager
API Contract
REST
/api/v1/sessions
8 endpoints
GET
/api/v1/sessions/api/v1/sessions
Public
Response Example
{
"data": [
{
"id": "sess_7d3k99",
"user_id": "usr_9a2f31",
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"refresh_token": "v1.Mi8xNm...",
"expires_at": "2026-03-26T11:00:00Z",
"is_valid": true,
"created_at": "2026-03-26T08:00:00Z"
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 3
}
}
GET
/api/v1/sessions/api/v1/sessions/current
Public
Response Example
{
"id": "sess_7d3k99",
"user_id": "usr_9a2f31",
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"refresh_token": "v1.Mi8xNm...",
"expires_at": "2026-03-26T11:00:00Z",
"is_valid": true,
"created_at": "2026-03-26T08:00:00Z"
}
GET
/api/v1/sessions/api/v1/sessions/:id
Public
Response Example
{
"id": "sess_7d3k99",
"user_id": "usr_9a2f31",
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"refresh_token": "v1.Mi8xNm...",
"expires_at": "2026-03-26T11:00:00Z",
"is_valid": true,
"created_at": "2026-03-26T08:00:00Z"
}
GET
/api/v1/sessions/api/v1/sessions/:id/validity
Public
Response Example
{
"is_valid": true,
"expires_at": "2026-03-26T11:00:00Z",
"seconds_remaining": 3540
}
POST
/api/v1/sessions/api/v1/sessions/refresh
Public
Request Example
{
"refresh_token": "v1.Mi8xNm..."
}
Response Example
{
"id": "sess_8e4m00",
"user_id": "usr_9a2f31",
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.new...",
"refresh_token": "v1.Nk9yOp...",
"expires_at": "2026-03-26T13:00:00Z",
"is_valid": true,
"created_at": "2026-03-26T11:00:01Z"
}
PUT
/api/v1/sessions/api/v1/sessions/:id
Public
Request Example
{
"device_label": "iPhone 15 Pro — primary",
"last_biometric_at": "2026-03-26T10:45:00Z"
}
Response Example
{
"id": "sess_7d3k99",
"user_id": "usr_9a2f31",
"device_label": "iPhone 15 Pro — primary",
"last_biometric_at": "2026-03-26T10:45:00Z",
"expires_at": "2026-03-26T11:00:00Z",
"is_valid": true
}
DELETE
/api/v1/sessions/api/v1/sessions
Public
Response Example
{
"signed_out": true,
"message": "Session invalidated successfully"
}
DELETE
/api/v1/sessions/api/v1/sessions/:id
Public
Response Example
{
"deleted": true,
"id": "sess_7d3k99"
}