Maia-analytics share API

The share API from Maia-analytics — 17 operation(s) for share.

Operations 17

GET /api/v1/share/{share_token} Get Shared Project #
POST /api/v1/share/{share_token}/view Track Share View #
GET /api/v1/share/{share_token}/layers Get Shared Project Layers #
GET /api/v1/share/{share_token}/enrichments Get Shared Project Enrichments #
POST /api/v1/share/{share_token}/filters Create Shared Filter Spec #
GET /api/v1/share/{share_token}/layers/{layer_id}/tiles/{z}/{x}/{y}.pbf Get Shared Layer Mvt Tile #
GET /api/v1/share/{share_token}/layers/{layer_id}/agg-tiles/{z}/{x}/{y}.pbf Get Shared Layer Mvt Agg Tile #
GET /api/v1/share/{share_token}/layers/{layer_id}/viz-stats Get Shared Layer Viz Stats #
GET /api/v1/share/{share_token}/layers/{layer_id}/extent Get Shared Layer Extent #
GET /api/v1/share/{share_token}/layers/{layer_id}/feature/{feature_id} Get Shared Feature Detail #
GET /api/v1/share/{share_token}/layers/{layer_id}/features/paginated Get Shared Layer Features Paginated #
GET /api/v1/share/{share_token}/layers/{layer_id}/features/filtered-ids Get Shared Layer Filtered Ids #
GET /api/v1/share/{share_token}/layers/{layer_id}/features/filtered-count Get Shared Layer Filtered Count #
GET /api/v1/share/{share_token}/layers/{layer_id}/features/navigate Get Shared Layer Navigate #
GET /api/v1/share/{share_token}/layers/{layer_id}/columns Get Shared Layer Columns Metadata #
GET /api/v1/share/{share_token}/views Get Shared Project Views #
GET /api/v1/share/{share_token}/chats Get Shared Project Chats #

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/maia-analytics-share-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

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

maia-analytics-share-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: MAIA Ah Share API
  description: API for MAIA application (migrated from Firebase)
  version: 0.1.0
servers:
- url: https://api.maia-analytics.com
  description: Base URL declared by the provider in apis.yml (roadmap#122).
tags:
- name: share
paths:
  /api/v1/share/{share_token}:
    get:
      tags:
      - share
      summary: Get Shared Project
      description: "Get metadata for a shared project (read-only, no side effects).\n\nThis is the primary entry point for shared project access. Validates\nthe share token and returns project metadata. View count tracking is\nhandled separately via POST /{share_token}/view.\n\nArgs:\n    share: Validated ProjectShare from token (injected by validate_share_token)\n    share_service: ProjectShareService for fetching project data\n\nReturns:\n    Shared project metadata (subset of full project data)\n\nRaises:\n    HTTPException: 404 if project not found"
      operationId: get_shared_project_api_v1_share__share_token__get
      parameters:
      - name: share_token
        in: path
        required: true
        schema:
          type: string
          title: Share Token
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SharedProjectResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/share/{share_token}/view:
    post:
      tags:
      - share
      summary: Track Share View
      description: "Increment the view count for a shared project.\n\nCalled by the frontend once per browser session to track views.\nSeparated from the GET endpoint to avoid double-counting from\nReact StrictMode's double-mount cycle.\n\nArgs:\n    share: Validated ProjectShare from token\n    share_service: ProjectShareService for view count operations\n\nReturns:\n    Success confirmation"
      operationId: track_share_view_api_v1_share__share_token__view_post
      parameters:
      - name: share_token
        in: path
        required: true
        schema:
          type: string
          title: Share Token
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ShareViewResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/share/{share_token}/layers:
    get:
      tags:
      - share
      summary: Get Shared Project Layers
      description: "Get all layers for a shared project.\n\nArgs:\n    share: Validated ProjectShare from token\n    layer_service: Service for fetching layer data\n\nReturns:\n    List of layers in API format (excludes soft-deleted and\n    parcel-restricted layers)"
      operationId: get_shared_project_layers_api_v1_share__share_token__layers_get
      parameters:
      - name: share_token
        in: path
        required: true
        schema:
          type: string
          title: Share Token
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/LayerModel'
                title: Response Get Shared Project Layers Api V1 Share  Share Token  Layers Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/share/{share_token}/enrichments:
    get:
      tags:
      - share
      summary: Get Shared Project Enrichments
      description: "Get enrichment metadata for a shared project (slim, read-only).\n\nReturns only the fields needed for column mapping (id, name, layer_id,\nis_data_source, dtype). Excludes sensitive fields like params, tool,\nand description. Enrichments on share-restricted (parcel) layers are\ndropped — the layer is hidden, so its enrichment metadata must be too.\n\nArgs:\n    share: Validated ProjectShare from token\n    enrichment_repo: Repository for fetching enrichment data\n    layer_service: Service resolving which layers are share-restricted\n\nReturns:\n    Slim enrichment metadata for visible enrichments on non-restricted layers"
      operationId: get_shared_project_enrichments_api_v1_share__share_token__enrichments_get
      parameters:
      - name: share_token
        in: path
        required: true
        schema:
          type: string
          title: Share Token
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SharedEnrichmentListResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/share/{share_token}/filters:
    post:
      tags:
      - share
      summary: Create Shared Filter Spec
      description: 'Share-mode twin of ``POST /filters`` — anonymous viewers create the

        FilterSpec their tile / paginated / count requests will dereference.


        Without this, share-mode clients had no path to a ``filter_id``: the

        authed ``POST /filters`` blocks on Firebase auth that share viewers don''t

        have, so polygon and column filters never synced to map tiles on shared

        dashboards. ``favoritesOnly`` is rejected up front — share mode has no

        user identity to resolve favorites against (matches

        ``_reject_favorites_in_share_mode``).'
      operationId: create_shared_filter_spec_api_v1_share__share_token__filters_post
      parameters:
      - name: share_token
        in: path
        required: true
        schema:
          type: string
          title: Share Token
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FilterSpecRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FilterSpecResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/share/{share_token}/layers/{layer_id}/tiles/{z}/{x}/{y}.pbf:
    get:
      tags:
      - share
      summary: Get Shared Layer Mvt Tile
      description: 'Serve an MVT tile for a layer in a shared project (anonymous access).


        ``filter_id`` references a server-side FilterSpec; when present, the

        tile contains only matching rows. ``viz`` is the share-mode twin of the

        authed tile endpoint''s param — it names a layer column to embed so

        classed styling has values below the include-all zoom.'
      operationId: get_shared_layer_mvt_tile_api_v1_share__share_token__layers__layer_id__tiles__z___x___y__pbf_get
      parameters:
      - name: share_token
        in: path
        required: true
        schema:
          type: string
          title: Share Token
      - name: z
        in: path
        required: true
        schema:
          type: integer
          title: Z
      - name: x
        in: path
        required: true
        schema:
          type: integer
          title: X
      - name: y
        in: path
        required: true
        schema:
          type: integer
          title: Y
      - name: layer_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Layer Id
      - name: v
        in: query
        required: false
        schema:
          type: string
          default: '0'
          title: V
      - name: filter_id
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Filter Id
      - name: viz
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            maxLength: 200
          - type: 'null'
          title: Viz
      responses:
        '200':
          description: Successful Response
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/share/{share_token}/layers/{layer_id}/agg-tiles/{z}/{x}/{y}.pbf:
    get:
      tags:
      - share
      summary: Get Shared Layer Mvt Agg Tile
      description: 'Serve an aggregate MVT tile for a layer in a shared project.


        ``filter_id`` — share-mode twin of the auth-side agg-tile endpoint;

        counts only matching rows when present.'
      operationId: get_shared_layer_mvt_agg_tile_api_v1_share__share_token__layers__layer_id__agg_tiles__z___x___y__pbf_get
      parameters:
      - name: share_token
        in: path
        required: true
        schema:
          type: string
          title: Share Token
      - name: z
        in: path
        required: true
        schema:
          type: integer
          title: Z
      - name: x
        in: path
        required: true
        schema:
          type: integer
          title: X
      - name: y
        in: path
        required: true
        schema:
          type: integer
          title: Y
      - name: layer_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Layer Id
      - name: v
        in: query
        required: false
        schema:
          type: string
          default: '0'
          title: V
      - name: filter_id
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Filter Id
      responses:
        '200':
          description: Successful Response
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/share/{share_token}/layers/{layer_id}/viz-stats:
    get:
      tags:
      - share
      summary: Get Shared Layer Viz Stats
      description: 'Share-mode twin of ``GET /map/{layer_id}/viz-stats``.


        Shared views persist ``layerViz``, so anonymous viewers need the same

        whole-layer quantile breaks that drive classed styling for the owner.'
      operationId: get_shared_layer_viz_stats_api_v1_share__share_token__layers__layer_id__viz_stats_get
      parameters:
      - name: share_token
        in: path
        required: true
        schema:
          type: string
          title: Share Token
      - name: layer_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Layer Id
      - name: column
        in: query
        required: true
        schema:
          type: string
          maxLength: 200
          title: Column
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LayerVizStatsResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/share/{share_token}/layers/{layer_id}/extent:
    get:
      tags:
      - share
      summary: Get Shared Layer Extent
      description: Bounding box of a shared layer's features (anonymous access).
      operationId: get_shared_layer_extent_api_v1_share__share_token__layers__layer_id__extent_get
      parameters:
      - name: layer_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Layer Id
      - name: share_token
        in: path
        required: true
        schema:
          type: string
          title: Share Token
      - name: searchText
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            maxLength: 200
          - type: 'null'
          title: Searchtext
      - name: filterModel
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Filtermodel
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LayerExtentResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/share/{share_token}/layers/{layer_id}/feature/{feature_id}:
    get:
      tags:
      - share
      summary: Get Shared Feature Detail
      description: Full properties + GeoJSON geometry for a single feature in a shared layer.
      operationId: get_shared_feature_detail_api_v1_share__share_token__layers__layer_id__feature__feature_id__get
      parameters:
      - name: share_token
        in: path
        required: true
        schema:
          type: string
          title: Share Token
      - name: feature_id
        in: path
        required: true
        schema:
          type: string
          title: Feature Id
      - name: layer_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Layer Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FeatureDetailResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/share/{share_token}/layers/{layer_id}/features/paginated:
    get:
      tags:
      - share
      summary: Get Shared Layer Features Paginated
      description: 'Share-scoped AG Grid SSR paginated features. Mirrors the authenticated

        path in ``table_handlers.get_layer_features_paginated`` but guards with the

        share token + verifies the layer belongs to the shared project.'
      operationId: get_shared_layer_features_paginated_api_v1_share__share_token__layers__layer_id__features_paginated_get
      parameters:
      - name: layer_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Layer Id
      - name: share_token
        in: path
        required: true
        schema:
          type: string
          title: Share Token
      - name: startRow
        in: query
        required: false
        schema:
          anyOf:
          - type: integer
            minimum: 0
          - type: 'null'
          default: 0
          title: Startrow
      - name: endRow
        in: query
        required: false
        schema:
          anyOf:
          - type: integer
            exclusiveMinimum: 0
          - type: 'null'
          default: 100
          title: Endrow
      - name: sortModel
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Sortmodel
      - name: filterModel
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Filtermodel
      - name: filterId
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Filterid
      - name: groupKeys
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Groupkeys
      - name: rowGroupCols
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Rowgroupcols
      - name: searchText
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            maxLength: 200
          - type: 'null'
          title: Searchtext
      - name: geometry
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Geometry
      - name: favoritesOnly
        in: query
        required: false
        schema:
          anyOf:
          - type: boolean
          - type: 'null'
          default: false
          title: Favoritesonly
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedFeaturesResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/share/{share_token}/layers/{layer_id}/features/filtered-ids:
    get:
      tags:
      - share
      summary: Get Shared Layer Filtered Ids
      description: 'Share-scoped feature ids matching the current filter set.


        Mirrors ``table_handlers.get_layer_filtered_ids`` but guards with the

        share token + verifies the layer belongs to the shared project. Powers

        map-filter sync and spatial polygon filtering on shared dashboards.'
      operationId: get_shared_layer_filtered_ids_api_v1_share__share_token__layers__layer_id__features_filtered_ids_get
      parameters:
      - name: layer_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Layer Id
      - name: share_token
        in: path
        required: true
        schema:
          type: string
          title: Share Token
      - name: enrichmentState
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            maxLength: 32
          - type: 'null'
          title: Enrichmentstate
      - name: enrichmentName
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Enrichmentname
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 500000
          minimum: 1
          default: 100000
          title: Limit
      - name: startRow
        in: query
        required: false
        schema:
          anyOf:
          - type: integer
            minimum: 0
          - type: 'null'
          default: 0
          title: Startrow
      - name: endRow
        in: query
        required: false
        schema:
          anyOf:
          - type: integer
            exclusiveMinimum: 0
          - type: 'null'
          default: 100
          title: Endrow
      - name: sortModel
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Sortmodel
      - name: filterModel
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Filtermodel
      - name: filterId
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Filterid
      - name: groupKeys
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Groupkeys
      - name: rowGroupCols
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Rowgroupcols
      - name: searchText
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            maxLength: 200
          - type: 'null'
          title: Searchtext
      - name: geometry
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Geometry
      - name: favoritesOnly
        in: query
        required: false
        schema:
          anyOf:
          - type: boolean
          - type: 'null'
          default: false
          title: Favoritesonly
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FilteredIdsResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/share/{share_token}/layers/{layer_id}/features/filtered-count:
    get:
      tags:
      - share
      summary: Get Shared Layer Filtered Count
      description: 'Share-scoped total row count matching the current filter set.


        Mirrors ``table_handlers.get_layer_filtered_count`` but guards with the

        share token + verifies the layer belongs to the shared project.'
      operationId: get_shared_layer_filtered_count_api_v1_share__share_token__layers__layer_id__features_filtered_count_get
      parameters:
      - name: layer_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Layer Id
      - name: share_token
        in: path
        required: true
        schema:
          type: string
          title: Share Token
      - name: enrichmentState
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            maxLength: 32
          - type: 'null'
          title: Enrichmentstate
      - name: enrichmentName
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Enrichmentname
      - name: startRow
        in: query
        required: false
        schema:
          anyOf:
          - type: integer
            minimum: 0
          - type: 'null'
          default: 0
          title: Startrow
      - name: endRow
        in: query
        required: false
        schema:
          anyOf:
          - type: integer
            exclusiveMinimum: 0
          - type: 'null'
          default: 100
          title: Endrow
      - name: sortModel
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Sortmodel
      - name: filterModel
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Filtermodel
      - name: filterId
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Filterid
      - name: groupKeys
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Groupkeys
      - name: rowGroupCols
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Rowgroupcols
      - name: searchText
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            maxLength: 200
          - type: 'null'
          title: Searchtext
      - name: geometry
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Geometry
      - name: favoritesOnly
        in: query
        required: false
        schema:
          anyOf:
          - type: boolean
          - type: 'null'
          default: false
          title: Favoritesonly
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FilteredCountResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/share/{share_token}/layers/{layer_id}/features/navigate:
    get:
      tags:
      - share
      summary: Get Shared Layer Navigate
      description: 'Share-scoped prev/next cursor for shared dashboards. Mirrors

        ``table_handlers.navigate_layer_feature`` — single CTE per call,

        cap-free up to whatever the filtered set contains.'
      operationId: get_shared_layer_navigate_api_v1_share__share_token__layers__layer_id__features_navigate_get
      parameters:
      - name: layer_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Layer Id
      - name: share_token
        in: path
        required: true
        schema:
          type: string
          title: Share Token
      - name: currentId
        in: query
        required: true
        schema:
          type: string
          minLength: 1
          title: Currentid
      - name: wrap
        in: query
        required: false
        schema:
          type: boolean
          default: true
          title: Wrap
      - name: enrichmentState
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            maxLength: 32
          - type: 'null'
          title: Enrichmentstate
      - name: enrichmentName
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Enrichmentname
      - name: startRow
        in: query
        required: false
        schema:
          anyOf:
          - type: integer
            minimum: 0
          - type: 'null'
          default: 0
          title: Startrow
      - name: endRow
        in: query
        required: false
        schema:
          anyOf:
          - type: integer
            exclusiveMinimum: 0
          - type: 'null'
          default: 100
          title: Endrow
      - name: sortModel
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Sortmodel
      - name: filterModel
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Filtermodel
      - name: filterId
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Filterid
      - name: groupKeys
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Groupkeys
      - name: rowGroupCols
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Rowgroupcols
      - name: searchText
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            maxLength: 200
          - type: 'null'
          title: Searchtext
      - name: geometry
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Geometry
      - name: favoritesOnly
        in: query
        required: false
        schema:
          anyOf:
          - type: boolean
          - type: 'null'
          default: false
          title: Favoritesonly
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NavigateCursorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/share/{share_token}/layers/{layer_id}/columns:
    get:
      tags:
      - share
      summary: Get Shared Layer Columns Metadata
      description: 'Share-scoped column metadata + aggregate stats. Mirrors

        ``table_handlers.get_layer_columns_metadata`` with a share-token guard.'
      operationId: get_shared_layer_columns_metadata_api_v1_share__share_token__layers__layer_id__columns_get
      parameters:
      - name: share_token
        in: path
        required: true
        schema:
          type: string
          title: Share Token
      - name: layer_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Layer Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ColumnsMetadataResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/share/{share_token}/views:
    get:
      tags:
      - share
      summary: Get Shared Project Views
      description: "Get all views for a shared project.\n\nPer-view state is keyed by layer id (filters, column visibility/order,\nlayer visibility), so state for share-restricted (parcel) layers is\nstripped from each view — otherwise a shared view leaks the parcel\nlayer's column keys and the user's filter values even though the layer\nis omitted from the shared layer list.\n\nArgs:\n    share: Validated ProjectShare from token\n    share_service: ProjectShareService for fetching view data\n    layer_service: Service resolving which layers are share-restricted\n\nReturns:\n    List of views with filters converted to client display units\n\nRaises:\n    HTTPException: 404 if project not found"
      operationId: get_shared_project_views_api_v1_share__share_token__views_get
      parameters:
      - name: share_token
        in: path
        required: true
        schema:
          type: string
          title: Share Token
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ViewsGetResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/share/{share_token}/chats:
    get:
      tags:
      - share
      summary: Get Shared Project Chats
      description: "Get chat history for a shared project (read-only).\n\nStructured tool data IS stripped: tool-call and tool-return parts (e.g.\nquery_sql parcel rows persisted as ToolReturnParts) are removed before the\npayload reaches the anonymous share wire. Only prose is not stripped —\nassistant natural-language messages are preserved, because scanning free-form\nconversation for incidental parcel mentions would mean parsing LLM text,\nunreliable and out of this restriction's scope.\n\nArgs:\n    share: Validated ProjectShare from token\n    share_service: ProjectShareService for fetching chat data\n\nReturns:\n    Chat history with system instructions stripped, or None if no chat exists"
      operationId: get_shared_project_chats_api_v1_share__share_token__chats_get
      parameters:
      - name: share_token
        in: path
        required: true
        schema:
          type: string
          title: Share Token
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema

# --- truncated at 32 KB (130 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/maia-analytics/refs/heads/main/openapi/maia-analytics-share-api-openapi.yml