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

# Record Observed Tools

> RecordObservedTools is the gateway's push path. After every successful
 upstream tools/list (shared or per-user), the gateway buffers the result
 and a worker batches pushes here. The handler upserts each tool, advances
 last_seen_at, and appends a schema-version row when the input_schema hash
 changes.

 Caller must be identity.Gateway. Permission: gateway.manage.



## OpenAPI

````yaml POST /v1/tools/{connection_id}/catalog/observed
openapi: 3.0.3
info:
  title: Dome Platform API
  description: Connect and REST APIs for the Dome agent governance platform.
  version: 2.0.0
servers:
  - url: https://api.domesystems.ai
    description: Production
security: []
tags:
  - name: Agents
  - name: Authorization
  - name: Guards
  - name: Tools
  - name: Tool Catalog
  - name: Models
  - name: Model Pools
  - name: Quotas
  - name: Gateways
  - name: Webhooks
  - name: Audit
  - name: Workspaces
  - name: Access Control
  - name: Tenants
  - name: Platform Keys
  - name: Enrollment
  - name: Platform
  - name: Identity
paths:
  /v1/tools/{connection_id}/catalog/observed:
    post:
      tags:
        - Tools
      description: |-
        RecordObservedTools is the gateway's push path. After every successful
         upstream tools/list (shared or per-user), the gateway buffers the result
         and a worker batches pushes here. The handler upserts each tool, advances
         last_seen_at, and appends a schema-version row when the input_schema hash
         changes.

         Caller must be identity.Gateway. Permission: gateway.manage.
      operationId: MCPToolCatalog_RecordObservedTools
      parameters:
        - name: connection_id
          in: path
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RecordObservedToolsRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecordObservedToolsResponse'
components:
  schemas:
    RecordObservedToolsRequest:
      type: object
      properties:
        workspace_id:
          type: string
        connection_id:
          type: string
        observed_at:
          type: string
          format: date-time
        tools:
          type: array
          items:
            $ref: '#/components/schemas/ObservedTool'
    RecordObservedToolsResponse:
      type: object
      properties:
        inserted:
          type: integer
          description: >-
            Per-tool outcome counters. Useful for gateway observability; not
            load-bearing.
          format: int32
        updated_schema:
          type: integer
          format: int32
        updated_last_seen:
          type: integer
          format: int32
    ObservedTool:
      type: object
      properties:
        name:
          type: string
        description:
          type: string
        input_schema:
          type: string
          description: |-
            input_schema is the JSON Schema bytes from the upstream tools/list
             response. Canonicalized and SHA-256 hashed by the handler to compute
             the schema_hash for version tracking.
          format: bytes

````