2ejjeh REST API

Public API for 2ejjeh management. Base URL: /api/v1

Status

Online - use GET /api/v1/health for health checks.

Authentication

Main Resources (CRUD)

Pagination

Rate Limits

Security Defaults

Error Format

All error responses use a consistent schema:

{ success: false, code, message, requestId, details }

Sample Requests & Responses

Login request:

POST /api/v1/auth/login
Content-Type: application/json

{
  "idToken": "FIREBASE_ID_TOKEN"
}

Login response:

{
  "success": true,
  "data": {
    "accessToken": "eyJhbGciOi...",
    "refreshToken": "eyJhbGciOi...",
    "accessTokenExpiresIn": "24h",
    "refreshTokenExpiresIn": "30d",
    "user": {
      "uid": "abc123",
      "email": "user@example.com"
    }
  }
}

Refresh request:

POST /api/v1/auth/refresh
Content-Type: application/json

{
  "refreshToken": "eyJhbGciOi..."
}

Paginated list response:

{
  "success": true,
  "data": [
    { "id": "doc_1", "name": "Item 1" },
    { "id": "doc_2", "name": "Item 2" }
  ],
  "meta": {
    "limit": 25,
    "count": 2,
    "nextCursor": "doc_2",
    "hasNextPage": true
  }
}

Standard error response:

{
  "success": false,
  "code": "VALIDATION_ERROR",
  "message": "Validation failed",
  "requestId": "f1e4a641-0b5f-4ce7-8a83-4c20d74bb62f",
  "details": {
    "source": "body",
    "errors": [
      { "path": "idToken", "message": "Required" }
    ]
  }
}

Quick Test

Run from terminal:

curl https://api.2ejjeh.com/api/v1/health