Eformogi Admin API

Admin dashboard and user management

GitHub OpenAPI

Operations 7

GET /api/admin-users Admin user management #
GET /api/admin-broadcast List recent broadcasts #
POST /api/admin-broadcast Send broadcast notification #
GET /api/admin-feature-flags List all feature flags #
PATCH /api/admin-feature-flags Toggle feature flags #
GET /api/admin-error-logs View error logs #
GET /api/feedback List feedback (admin) #

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/eformogi-com:eformogi-com-admin-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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.

OpenAPI Specification

eformogi-com-admin-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Eformogi Admin API
  version: 33.5.1
  description: 'Eformogi is a record of learning the student owns, witnessed by the adults who were there, verifiable at one link with no login, and issued by the schools and counselors who hold the learners. The family-issued receipt (`tr_`) is a Witness Transcript. This document describes the machine-readable surface: verification, witness attestation, consent, the agent protocol, and the issuer rail (enrollment, roster, declared courses, and the family side that folds them into the transcript). The open record format itself is published at https://eformogi.com/spec.'
  contact:
    url: https://eformogi.com
  license:
    name: Proprietary
servers:
- url: https://eformogi.com
  description: Production
tags:
- name: Admin
  description: Admin dashboard and user management
paths:
  /api/admin-users:
    get:
      summary: Admin user management
      description: Paginated user list with vault/credential/share counts. Pass userId query param for single user detail. Requires admin secret.
      tags:
      - Admin
      parameters:
      - name: x-admin-secret
        in: header
        required: true
        schema:
          type: string
      - name: userId
        in: query
        schema:
          type: string
        description: Get single user detail
      - name: page
        in: query
        schema:
          type: integer
          default: 1
      - name: limit
        in: query
        schema:
          type: integer
          default: 20
          maximum: 50
      - name: search
        in: query
        schema:
          type: string
        description: Search by email or name
      - name: sort
        in: query
        schema:
          type: string
          enum:
          - created_at
          - updated_at
          - email
          - last_sign_in_at
      - name: order
        in: query
        schema:
          type: string
          enum:
          - asc
          - desc
      responses:
        '200':
          description: User list or single user detail
        '401':
          description: Admin authorization required
        '429':
          description: Rate limited (20/min)
      operationId: getApiAdminUsers
      x-operation-id-source: derived
  /api/admin-broadcast:
    get:
      summary: List recent broadcasts
      description: Returns deduplicated list of recent system-wide broadcast notifications. Requires admin secret.
      tags:
      - Admin
      parameters:
      - name: x-admin-secret
        in: header
        required: true
        schema:
          type: string
      responses:
        '200':
          description: List of recent broadcasts with recipient counts
        '401':
          description: Admin authorization required
      operationId: getApiAdminBroadcast
      x-operation-id-source: derived
    post:
      summary: Send broadcast notification
      description: Sends a notification to all users. Batched in groups of 100. Requires admin secret.
      tags:
      - Admin
      parameters:
      - name: x-admin-secret
        in: header
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - title
              properties:
                title:
                  type: string
                  maxLength: 200
                  description: Notification title
                body:
                  type: string
                  maxLength: 1000
                  description: Optional body text
                type:
                  type: string
                  enum:
                  - system
                  - account_update
                  default: system
      responses:
        '200':
          description: Broadcast sent with recipient count and broadcast ID
        '400':
          description: Invalid input
        '401':
          description: Admin authorization required
        '429':
          description: Rate limited (10/min)
      operationId: postApiAdminBroadcast
      x-operation-id-source: derived
  /api/admin-feature-flags:
    get:
      summary: List all feature flags
      description: Returns all feature flags with current values, defaults, override status, and descriptions. Requires admin secret.
      tags:
      - Admin
      parameters:
      - name: x-admin-secret
        in: header
        required: true
        schema:
          type: string
      responses:
        '200':
          description: List of feature flags with enabled state and metadata
        '401':
          description: Admin authorization required
        '429':
          description: Rate limited (30/min)
      operationId: getApiAdminFeatureFlags
      x-operation-id-source: derived
    patch:
      summary: Toggle feature flags
      description: Update one or more feature flags. Values are persisted in the database and override defaults. Requires admin secret.
      tags:
      - Admin
      parameters:
      - name: x-admin-secret
        in: header
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - flags
              properties:
                flags:
                  type: object
                  description: Map of flag names to boolean values
                  example:
                    FAMILY_VAULT_ADVANCED: true
                    CHAT_ACTIONS: false
      responses:
        '200':
          description: Flags updated successfully
        '207':
          description: 'Partial success: some flags updated, some failed'
        '400':
          description: Invalid input or unknown flag names
        '401':
          description: Admin authorization required
        '429':
          description: Rate limited (30/min)
      operationId: patchApiAdminFeatureFlags
      x-operation-id-source: derived
  /api/admin-error-logs:
    get:
      summary: View error logs
      description: Returns recent error reports from the error_logs table with filtering, pagination, and summary stats. Requires admin secret.
      tags:
      - Admin
      parameters:
      - name: x-admin-secret
        in: header
        required: true
        schema:
          type: string
      - name: limit
        in: query
        schema:
          type: integer
          default: 25
          maximum: 100
      - name: offset
        in: query
        schema:
          type: integer
          default: 0
      - name: type
        in: query
        schema:
          type: string
          description: Filter by error_type
      - name: env
        in: query
        schema:
          type: string
          description: Filter by environment
      - name: search
        in: query
        schema:
          type: string
          description: Search in error message
      - name: hours
        in: query
        schema:
          type: integer
          description: Only errors from last N hours
      responses:
        '200':
          description: Error logs with summary stats, pagination, and type breakdown
        '401':
          description: Admin authorization required
        '429':
          description: Rate limited (20/min)
      operationId: getApiAdminErrorLogs
      x-operation-id-source: derived
  /api/feedback:
    get:
      summary: List feedback (admin)
      description: Returns submitted feedback with filtering and summary stats. Admin secret required.
      tags:
      - Admin
      parameters:
      - name: type
        in: query
        schema:
          type: string
          enum:
          - bug
          - feature
          - general
          - question
      - name: status
        in: query
        schema:
          type: string
          enum:
          - new
          - reviewed
          - resolved
          - archived
      - name: limit
        in: query
        schema:
          type: integer
          default: 50
      - name: offset
        in: query
        schema:
          type: integer
          default: 0
      responses:
        '200':
          description: Feedback list with summary stats
        '401':
          description: Admin authentication required
      operationId: getApiFeedback
      x-operation-id-source: derived
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: Supabase JWT access token
    orgApiKey:
      type: apiKey
      in: header
      name: Authorization
      description: Institutional org API key. Use "Bearer efg_org_..." or "Api-Key efg_org_..." header. Keys are scoped to specific data categories.