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

# One org's upcoming events (FREE, dual-auth).

> Billing: FREE, read-only. This is the FREE event route. For the PAID metered variant that settles one events_pull unit, use GET /api/v1/businesses/{id}/events instead.



## OpenAPI

````yaml /openapi.json get /api/v1/organizations/{id}/events
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/{id}/events:
    get:
      tags:
        - events
      summary: One org's upcoming events (FREE, dual-auth).
      description: >-
        Billing: FREE, read-only. This is the FREE event route. For the PAID
        metered variant that settles one events_pull unit, use GET
        /api/v1/businesses/{id}/events instead.
      operationId: getOrganizationEvents
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
          description: orgId or domain.
      responses:
        '200':
          description: Org + its upcoming events.
          content:
            application/json:
              schema:
                type: object
                properties:
                  organization:
                    $ref: '#/components/schemas/Organization'
                  eventCount:
                    type: integer
                  events:
                    type: array
                    items:
                      $ref: '#/components/schemas/Event'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotIndexed'
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
    Event:
      type: object
      description: >-
        Normalized event record. Fields appear only when available. Shared by
        REST and MCP responses.
      example:
        title: Calligraphy Practice Meet-Up
        description: >-
          A monthly informal calligraphy meet-up and social gathering for
          practicing calligraphy and lettering art, discussing tips, and working
          on calligraphy projects. All levels are welcome, no experience is
          required, and attendees should bring their own calligraphy and
          lettering supplies; the event is held in the Murray Room.
        website: https://thehowe.libcal.com/event/16071917
        more_info_website: null
        ticket_url: null
        open_to_public: true
        rsvp_required: false
        startDate: '2026-10-04T12:00:00-04:00'
        endDate: '2026-10-04T13:30:00-04:00'
        duration: null
        eventStatus: EventScheduled
        attendanceMode: OfflineEventAttendanceMode
        address: 13 South Street, Hanover, NH 03755
        venue:
          name: Howe Library
          address: 13 South Street, Hanover, NH 03755
          latitude: null
          longitude: null
        organizer:
          name: Howe Library
          url: null
        performers:
          - name: Laura Di Piazza
        offers:
          - name: Admission
            price: 0
            priceCurrency: USD
            availability: InStock
            url: https://thehowe.libcal.com/event/16071917
        isAccessibleForFree: true
        cost: Free
        ticket_price: null
        categories:
          - Arts & Crafts
          - Community & Recreation
        image_url: >-
          https://d68g328n4ug0e.cloudfront.net/data/feat_img/5761/16063/1729525749.jpg
        event_id: '16071917'
        is_online: false
        schedule:
          type: recurring
          startDate: '2026-10-04T12:00:00-04:00'
          endDate: '2026-10-04T13:30:00-04:00'
          occurrences: []
          recurrence:
            pattern: monthly
            frequency: 1
            weekdays: null
            ordinal: null
            dayOfMonth: null
            resolvedZone: America/New_York
      properties:
        title:
          type: string
        description:
          type: string
        startDate:
          type: string
          description: ISO 8601 with tz offset.
        endDate:
          type: string
          description: ISO 8601 with tz offset.
        venue:
          type: object
          properties:
            name:
              type:
                - string
                - 'null'
            address:
              type:
                - string
                - 'null'
        address:
          type: string
        city:
          type:
            - string
            - 'null'
        category:
          type:
            - string
            - 'null'
        isAccessibleForFree:
          type: boolean
        cost:
          type: string
        offers:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
              price:
                type:
                  - number
                  - 'null'
              priceCurrency:
                type:
                  - string
                  - 'null'
              availability:
                type: string
        categories:
          type: array
          items:
            type: string
        url:
          type: string
          format: uri
          description: The event's canonical URL.
        website:
          type:
            - string
            - 'null'
          description: The event's own detail page on the org's site.
        ticket_url:
          type:
            - string
            - 'null'
          description: External ticketing/registration/RSVP page, when linked.
        more_info_website:
          type:
            - string
            - 'null'
          description: >-
            External organizer/venue info page. seed_brief uses an off-domain
            value here as the aggregator signal.
    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'
    NotIndexed:
      description: Organization is not indexed. POST /api/v1/orgs to index it.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'

````

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