> ## Documentation Index
> Fetch the complete documentation index at: https://docs.momentra.org/llms.txt
> Use this file to discover all available pages before exploring further.

# List or search organizations (FREE, dual-auth).

> Billing: FREE, read-only. q is optional (omit to list all). Paginated via offset; the response carries total/offset/limit.



## OpenAPI

````yaml /openapi.json get /api/v1/organizations
openapi: 3.1.0
info:
  title: Momentra Events — REST + MCP API
  version: 1.0.0
  description: >-
    Momentra Events exposes local family-event data two ways in ONE document:


    1. A conventional HTTP REST API under `/api/v1/*`, fronted by the ZeroClick
    storefront at `https://agents.momentra.org/zcj/{session}`. PATH NOTE: every
    REST request MUST include the full `/api/v1` prefix exactly as shown;
    dropping it returns 403 'Missing Authentication Token'. The `/api/v1` prefix
    is owned by the PATHS, not the base URL. REST auth: a ZeroClick-signed
    request (zc-signature) with a registered agent credential, or
    `Authorization: Bearer <agent key>` on read routes. REST billing: free
    routes do an identity check only; paid routes check allowance and settle via
    a `zc-usage` response header on the 200.


    2. A Model Context Protocol (MCP) server at `POST /mcp` on
    `https://mcp.momentra.org` — a single JSON-RPC 2.0 endpoint over Streamable
    HTTP/SSE. It is NOT REST: every capability is an MCP `tools/call` with a
    `name` + `arguments`, and the 24 tools are enumerated by `tools/list`. MCP
    auth is OAuth 2.1 + PKCE (CIMD); some tools work anonymously (noauth).
    Per-tool auth + cost are noted in each `Tool_*` schema. The `/mcp` path
    carries a per-path `servers` override (mcp.momentra.org); the REST paths use
    the storefront server.


    The two surfaces bill the same underlying `momentra-events` service through
    different channels (ZeroClick per-request units vs. prepaid Momentra
    credits).
  contact:
    name: Momentra
    url: https://momentra.org
servers:
  - url: https://agents.momentra.org/zcj/{session}
    description: >-
      REST: ZeroClick storefront (session-scoped base path) — how agents CALL
      the /api/v1 paths.
    variables:
      session:
        default: SESSION
        description: ZeroClick session token segment issued by the storefront.
security: []
tags:
  - name: search
    description: 'REST: free, identity-scoped discovery over the global index.'
  - name: events
    description: 'REST: read event/organization data.'
  - name: indexing
    description: 'REST: index an organization and poll the job.'
  - name: mcp
    description: 'MCP: the JSON-RPC tools endpoint (tools/list, tools/call).'
  - name: index
    description: 'MCP: add organizations'' calendars and poll crawl jobs.'
  - name: discover
    description: 'MCP: search and read events/organizations already in your scope.'
  - name: identity
    description: 'MCP: connected-account profile.'
  - name: brief
    description: 'MCP: the editorial include/exclude policy (one per account).'
  - name: matching
    description: 'MCP: brief-driven discovery of events and organizations.'
  - name: curation
    description: 'MCP: accept/reject overrides that feed matching.'
  - name: evaluation
    description: 'MCP: certify a single item against the brief.'
  - name: seed
    description: 'MCP: learn a brief from a trusted aggregator org.'
  - name: support
    description: 'MCP: report a data/crawl issue to the Momentra team.'
paths:
  /api/v1/organizations:
    get:
      tags:
        - events
      summary: List or search organizations (FREE, dual-auth).
      description: >-
        Billing: FREE, read-only. q is optional (omit to list all). Paginated
        via offset; the response carries total/offset/limit.
      operationId: listOrganizations
      parameters:
        - name: q
          in: query
          required: false
          schema:
            type: string
          description: 'Name/domain substring (alias: query). Omit to list all.'
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            default: 25
            minimum: 1
            maximum: 1000
        - name: offset
          in: query
          required: false
          schema:
            type: integer
            default: 0
            minimum: 0
      responses:
        '200':
          description: Organizations page.
          content:
            application/json:
              schema:
                type: object
                properties:
                  count:
                    type: integer
                  total:
                    type: integer
                  offset:
                    type: integer
                  limit:
                    type: integer
                  query:
                    type: string
                    nullable: true
                  organizations:
                    type: array
                    items:
                      $ref: '#/components/schemas/Organization'
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  schemas:
    Organization:
      type: object
      description: >-
        Flat organization record. Fields appear only when available. Shared by
        REST and MCP responses.
      properties:
        id:
          type: string
          description: org:<orgId>
        orgId:
          type: string
        domain:
          type: string
        url:
          type: string
        website:
          type:
            - string
            - 'null'
        name:
          type:
            - string
            - 'null'
        description:
          type: string
        indexStatus:
          type: string
          enum:
            - ok
            - no_events_found
          description: >-
            'ok' when the last crawl produced events; 'no_events_found' when
            empty (re-crawled next index_org).
        address:
          type: string
        phone:
          type:
            - string
            - 'null'
        email:
          type:
            - string
            - 'null'
        categories:
          type: array
          items:
            type: string
        socials:
          type: array
          items:
            type: object
            properties:
              type:
                type: string
              url:
                type: string
        eventCount:
          type: integer
        lastIndexedAt:
          type: string
          format: date-time
    Error:
      type: object
      properties:
        error:
          type: string
        message:
          type: string
  responses:
    Unauthorized:
      description: >-
        Missing/invalid credential. Provide a ZeroClick-signed request or
        Authorization: Bearer <agent key>.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.