> ## 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.

# Index an organization — fresh crawl (PAID — meters orgs_index, qty 1).

> Billing: PAID. Checks allowance for ONE orgs_index unit (4 ZC units = 40 Momentra credits) before dispatching. Returns 202 with an unguessable status URL and a 24h expiry. Poll GET /api/v1/orgs/{jobId} for progress.



## OpenAPI

````yaml /openapi.json post /api/v1/orgs
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/orgs:
    post:
      tags:
        - indexing
      summary: Index an organization — fresh crawl (PAID — meters orgs_index, qty 1).
      description: >-
        Billing: PAID. Checks allowance for ONE orgs_index unit (4 ZC units = 40
        Momentra credits) before dispatching. Returns 202 with an unguessable
        status URL and a 24h expiry. Poll GET /api/v1/orgs/{jobId} for progress.
      operationId: indexOrganization
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - website
              properties:
                website:
                  type: string
                  description: 'Domain to crawl (alias: domain).'
                hints:
                  type: object
                  description: >-
                    Optional known URLs APPENDED to auto-discovery (never a
                    replacement).
                  properties:
                    calendarUrls:
                      type: array
                      items:
                        type: string
                        format: uri
                    eventUrls:
                      type: array
                      items:
                        type: string
                        format: uri
      responses:
        '202':
          description: Index job accepted.
          content:
            application/json:
              schema:
                type: object
                properties:
                  jobId:
                    type: string
                  statusUrl:
                    type: string
                    format: uri
                  expiresAt:
                    type: string
                    format: date-time
        '400':
          $ref: '#/components/responses/BadRequest'
        '402':
          $ref: '#/components/responses/PaymentRequired'
components:
  responses:
    BadRequest:
      description: Invalid request.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    PaymentRequired:
      description: >-
        ZeroClick 402: identity challenge or insufficient allowance. Body
        carries the usage declaration.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  schemas:
    Error:
      type: object
      properties:
        error:
          type: string
        message:
          type: string

````

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