Geniffy Admin API

The Admin API from Geniffy — 15 operation(s) for admin.

GitHub OpenAPI

Operations 16

GET /api/admin/v2/me Admin Me #
GET /api/admin/v2/health Admin Health #
GET /api/admin/v2/users List Users #
GET /api/admin/v2/segments/counts Segment Counts #
GET /api/admin/v2/today Today View #
GET /api/admin/v2/users/{user_id}/notes List User Notes #
POST /api/admin/v2/users/{user_id}/notes Create User Note #
DELETE /api/admin/v2/notes/{note_id} Delete User Note #
GET /api/admin/v2/users/search Search Users #
GET /api/admin/v2/users/{user_id} Get User #
GET /api/admin/v2/users/{user_id}/actions Get User Actions #
GET /api/admin/v2/partners List Partners #
GET /api/admin/v2/audit List Audit #
GET /api/admin/v2/metrics/overview Metrics Overview #
GET /api/admin/v2/metrics/analytics Metrics Analytics #
GET /api/admin/v2/metrics/product Metrics Product #

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/geniffy-com:geniffy-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

geniffy-com-admin-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Genify Backend Admin API
  version: 0.1.0
tags:
- name: Admin
paths:
  /api/admin/v2/me:
    get:
      tags:
      - Admin
      summary: Admin Me
      operationId: admin_me_api_admin_v2_me_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                additionalProperties: true
                type: object
                title: Response Admin Me Api Admin V2 Me Get
      security:
      - HTTPBearer: []
  /api/admin/v2/health:
    get:
      tags:
      - Admin
      summary: Admin Health
      operationId: admin_health_api_admin_v2_health_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                additionalProperties: true
                type: object
                title: Response Admin Health Api Admin V2 Health Get
  /api/admin/v2/users:
    get:
      tags:
      - Admin
      summary: List Users
      operationId: list_users_api_admin_v2_users_get
      security:
      - HTTPBearer: []
      parameters:
      - name: q
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: email / uid / name substring
          title: Q
        description: email / uid / name substring
      - name: segment
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: all|new|active|power|at_risk|dormant
          title: Segment
        description: all|new|active|power|at_risk|dormant
      - name: include_test
        in: query
        required: false
        schema:
          type: boolean
          description: include test-domain accounts
          default: false
          title: Include Test
        description: include test-domain accounts
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 200
          minimum: 1
          default: 50
          title: Limit
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          minimum: 0
          default: 0
          title: Offset
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserListResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/admin/v2/segments/counts:
    get:
      tags:
      - Admin
      summary: Segment Counts
      operationId: segment_counts_api_admin_v2_segments_counts_get
      security:
      - HTTPBearer: []
      parameters:
      - name: include_test
        in: query
        required: false
        schema:
          type: boolean
          default: false
          title: Include Test
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SegmentCounts'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/admin/v2/today:
    get:
      tags:
      - Admin
      summary: Today View
      operationId: today_view_api_admin_v2_today_get
      security:
      - HTTPBearer: []
      parameters:
      - name: include_test
        in: query
        required: false
        schema:
          type: boolean
          default: false
          title: Include Test
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TodayResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/admin/v2/users/{user_id}/notes:
    get:
      tags:
      - Admin
      summary: List User Notes
      operationId: list_user_notes_api_admin_v2_users__user_id__notes_get
      security:
      - HTTPBearer: []
      parameters:
      - name: user_id
        in: path
        required: true
        schema:
          type: integer
          title: User Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserNoteListResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    post:
      tags:
      - Admin
      summary: Create User Note
      operationId: create_user_note_api_admin_v2_users__user_id__notes_post
      security:
      - HTTPBearer: []
      parameters:
      - name: user_id
        in: path
        required: true
        schema:
          type: integer
          title: User Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateNoteRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserNote'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/admin/v2/notes/{note_id}:
    delete:
      tags:
      - Admin
      summary: Delete User Note
      operationId: delete_user_note_api_admin_v2_notes__note_id__delete
      security:
      - HTTPBearer: []
      parameters:
      - name: note_id
        in: path
        required: true
        schema:
          type: integer
          title: Note Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                title: Response Delete User Note Api Admin V2 Notes  Note Id  Delete
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/admin/v2/users/search:
    get:
      tags:
      - Admin
      summary: Search Users
      operationId: search_users_api_admin_v2_users_search_get
      security:
      - HTTPBearer: []
      parameters:
      - name: q
        in: query
        required: true
        schema:
          type: string
          minLength: 2
          title: Q
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 100
          minimum: 1
          default: 25
          title: Limit
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserSearchResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/admin/v2/users/{user_id}:
    get:
      tags:
      - Admin
      summary: Get User
      operationId: get_user_api_admin_v2_users__user_id__get
      security:
      - HTTPBearer: []
      parameters:
      - name: user_id
        in: path
        required: true
        schema:
          type: integer
          title: User Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserFullResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/admin/v2/users/{user_id}/actions:
    get:
      tags:
      - Admin
      summary: Get User Actions
      operationId: get_user_actions_api_admin_v2_users__user_id__actions_get
      security:
      - HTTPBearer: []
      parameters:
      - name: user_id
        in: path
        required: true
        schema:
          type: integer
          title: User Id
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 200
          minimum: 1
          default: 50
          title: Limit
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserRecentActionsResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/admin/v2/partners:
    get:
      tags:
      - Admin
      summary: List Partners
      operationId: list_partners_api_admin_v2_partners_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartnersResponse'
      security:
      - HTTPBearer: []
  /api/admin/v2/audit:
    get:
      tags:
      - Admin
      summary: List Audit
      operationId: list_audit_api_admin_v2_audit_get
      security:
      - HTTPBearer: []
      parameters:
      - name: actor
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Actor
      - name: action
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Action
      - name: target_id
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Target Id
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 500
          minimum: 1
          default: 100
          title: Limit
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuditListResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/admin/v2/metrics/overview:
    get:
      tags:
      - Admin
      summary: Metrics Overview
      operationId: metrics_overview_api_admin_v2_metrics_overview_get
      security:
      - HTTPBearer: []
      parameters:
      - name: days
        in: query
        required: false
        schema:
          type: integer
          maximum: 365
          minimum: 1
          default: 30
          title: Days
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                title: Response Metrics Overview Api Admin V2 Metrics Overview Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/admin/v2/metrics/analytics:
    get:
      tags:
      - Admin
      summary: Metrics Analytics
      operationId: metrics_analytics_api_admin_v2_metrics_analytics_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                additionalProperties: true
                type: object
                title: Response Metrics Analytics Api Admin V2 Metrics Analytics Get
      security:
      - HTTPBearer: []
  /api/admin/v2/metrics/product:
    get:
      tags:
      - Admin
      summary: Metrics Product
      description: 'The core loop: meetings recorded, reports delivered, routines run.


        Open to sales as well as admins — this is product usage, not money.'
      operationId: metrics_product_api_admin_v2_metrics_product_get
      security:
      - HTTPBearer: []
      parameters:
      - name: days
        in: query
        required: false
        schema:
          type: integer
          maximum: 365
          minimum: 1
          default: 30
          title: Days
      - name: weeks
        in: query
        required: false
        schema:
          type: integer
          maximum: 26
          minimum: 4
          default: 8
          title: Weeks
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                title: Response Metrics Product Api Admin V2 Metrics Product Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    UserNoteListResponse:
      properties:
        count:
          type: integer
          title: Count
        results:
          items:
            $ref: '#/components/schemas/UserNote'
          type: array
          title: Results
      type: object
      required:
      - count
      - results
      title: UserNoteListResponse
    UserRecentActionsResponse:
      properties:
        user_id:
          type: integer
          title: User Id
        firebase_uid:
          type: string
          title: Firebase Uid
        count:
          type: integer
          title: Count
        results:
          items:
            $ref: '#/components/schemas/UserActionEntry'
          type: array
          title: Results
      type: object
      required:
      - user_id
      - firebase_uid
      - count
      - results
      title: UserRecentActionsResponse
    UserActionEntry:
      properties:
        id:
          type: string
          title: Id
        chat_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Chat Id
        app:
          type: string
          title: App
        action:
          type: string
          title: Action
        route:
          type: string
          title: Route
        status:
          type: string
          title: Status
        parameters:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Parameters
        result:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Result
        error_message:
          anyOf:
          - type: string
          - type: 'null'
          title: Error Message
        duration_ms:
          anyOf:
          - type: integer
          - type: 'null'
          title: Duration Ms
        cost_usd:
          anyOf:
          - type: number
          - type: 'null'
          title: Cost Usd
        created_at:
          type: string
          format: date-time
          title: Created At
      type: object
      required:
      - id
      - app
      - action
      - route
      - status
      - created_at
      title: UserActionEntry
    UserListResponse:
      properties:
        count:
          type: integer
          title: Count
        total:
          type: integer
          title: Total
        limit:
          type: integer
          title: Limit
        offset:
          type: integer
          title: Offset
        results:
          items:
            $ref: '#/components/schemas/UserListItem'
          type: array
          title: Results
      type: object
      required:
      - count
      - total
      - limit
      - offset
      - results
      title: UserListResponse
    CreateNoteRequest:
      properties:
        body:
          type: string
          maxLength: 4000
          minLength: 1
          title: Body
      type: object
      required:
      - body
      title: CreateNoteRequest
    UserSearchHit:
      properties:
        id:
          type: integer
          title: Id
        firebase_uid:
          type: string
          title: Firebase Uid
        email:
          type: string
          title: Email
        full_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Full Name
        is_active:
          type: boolean
          title: Is Active
        created_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Created At
      type: object
      required:
      - id
      - firebase_uid
      - email
      - is_active
      title: UserSearchHit
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    UserSearchResponse:
      properties:
        query:
          type: string
          title: Query
        count:
          type: integer
          title: Count
        results:
          items:
            $ref: '#/components/schemas/UserSearchHit'
          type: array
          title: Results
      type: object
      required:
      - query
      - count
      - results
      title: UserSearchResponse
    AuditListResponse:
      properties:
        count:
          type: integer
          title: Count
        results:
          items:
            $ref: '#/components/schemas/AuditEntry'
          type: array
          title: Results
      type: object
      required:
      - count
      - results
      title: AuditListResponse
    UserNote:
      properties:
        id:
          type: integer
          title: Id
        user_id:
          type: integer
          title: User Id
        author_email:
          type: string
          title: Author Email
        body:
          type: string
          title: Body
        created_at:
          type: string
          format: date-time
          title: Created At
      type: object
      required:
      - id
      - user_id
      - author_email
      - body
      - created_at
      title: UserNote
    UserFullResponse:
      properties:
        user:
          $ref: '#/components/schemas/UserSearchHit'
        recent_audit:
          items:
            $ref: '#/components/schemas/AuditEntry'
          type: array
          title: Recent Audit
          default: []
      type: object
      required:
      - user
      title: UserFullResponse
    AuditEntry:
      properties:
        id:
          type: integer
          title: Id
        actor_email:
          type: string
          title: Actor Email
        actor_source:
          type: string
          title: Actor Source
        action:
          type: string
          title: Action
        target_type:
          type: string
          title: Target Type
        target_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Target Id
        target_email:
          anyOf:
          - type: string
          - type: 'null'
          title: Target Email
        result:
          type: string
          title: Result
        reason:
          anyOf:
          - type: string
          - type: 'null'
          title: Reason
        severity:
          type: string
          title: Severity
        created_at:
          type: string
          format: date-time
          title: Created At
      type: object
      required:
      - id
      - actor_email
      - actor_source
      - action
      - target_type
      - result
      - severity
      - created_at
      title: AuditEntry
    TodayResponse:
      properties:
        new_today:
          items:
            $ref: '#/components/schemas/TodayUser'
          type: array
          title: New Today
        returned_today:
          items:
            $ref: '#/components/schemas/TodayUser'
          type: array
          title: Returned Today
        at_risk_this_week:
          items:
            $ref: '#/components/schemas/TodayUser'
          type: array
          title: At Risk This Week
        generated_at:
          type: string
          format: date-time
          title: Generated At
      type: object
      required:
      - new_today
      - returned_today
      - at_risk_this_week
      - generated_at
      title: TodayResponse
    PartnersResponse:
      properties:
        count:
          type: integer
          title: Count
        results:
          items:
            $ref: '#/components/schemas/PartnerRow'
          type: array
          title: Results
        generated_at:
          type: string
          format: date-time
          title: Generated At
      type: object
      required:
      - count
      - results
      - generated_at
      title: PartnersResponse
    UserListItem:
      properties:
        id:
          type: integer
          title: Id
        firebase_uid:
          type: string
          title: Firebase Uid
        email:
          type: string
          title: Email
        full_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Full Name
        is_active:
          type: boolean
          title: Is Active
        email_verified:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Email Verified
        created_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Created At
        last_active_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Last Active At
        lifecycle_stage:
          type: string
          title: Lifecycle Stage
        is_test_account:
          type: boolean
          title: Is Test Account
        active_days_7d:
          type: integer
          title: Active Days 7D
        activity_sparkline:
          items:
            type: integer
          type: array
          title: Activity Sparkline
        signal:
          type: string
          title: Signal
      type: object
      required:
      - id
      - firebase_uid
      - email
      - is_active
      - lifecycle_stage
      - is_test_account
      - active_days_7d
      - activity_sparkline
      - signal
      title: UserListItem
    TodayUser:
      properties:
        id:
          type: integer
          title: Id
        email:
          type: string
          title: Email
        full_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Full Name
        lifecycle_stage:
          type: string
          title: Lifecycle Stage
        signal:
          type: string
          title: Signal
        created_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Created At
        last_active_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Last Active At
      type: object
      required:
      - id
      - email
      - lifecycle_stage
      - signal
      title: TodayUser
    PartnerRow:
      properties:
        code:
          type: string
          title: Code
        partner_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Partner Name
        partner_email:
          anyOf:
          - type: string
          - type: 'null'
          title: Partner Email
        is_active:
          type: boolean
          title: Is Active
        clicks:
          type: integer
          title: Clicks
        signups:
          type: integer
          title: Signups
        last_signup_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Last Signup At
        created_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Created At
      type: object
      required:
      - code
      - is_active
      - clicks
      - signups
      title: PartnerRow
    SegmentCounts:
      properties:
        all:
          type: integer
          title: All
        new:
          type: integer
          title: New
        active:
          type: integer
          title: Active
        power:
          type: integer
          title: Power
        at_risk:
          type: integer
          title: At Risk
        dormant:
          type: integer
          title: Dormant
        test:
          type: integer
          title: Test
        generated_at:
          type: string
          format: date-time
          title: Generated At
      type: object
      required:
      - all
      - new
      - active
      - power
      - at_risk
      - dormant
      - test
      - generated_at
      title: SegmentCounts
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
  securitySchemes:
    HTTPBearer:
      type: http
      scheme: bearer