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

# Get agent overview

> One AI SDR's overview (by sid) for a period (all, 30d, 7d): the replies it read and sent, calls booked, median reply time, hand-offs, unsure replies, credits spent, the funnel from reply to goal, the outcome (what the lead did after its reply, against the corpus baseline), the same scalars for the period before, and, now, its conversations by state and the workflows its threads name. For how the agent is doing, never for one thread (get_conversation) or one run (search_agent_runs).

Contract:
- MCP tool `get_agent_overview`, registry package `mcp.unibox/agents`, mount `unibox.agent`.
- Operation `action`, response envelope `action`.
- Flags: read only.



## OpenAPI

````yaml /api-reference/unibox/openapi.yaml get /api/agents/{sid}/overview
openapi: 3.0.3
info:
  title: 'GetSales public contract: gs.service.unibox'
  description: >-
    The team inbox and the AI SDR: every LinkedIn and email thread in one place
    (conversations, messages, the timeline events), the manual tasks a thread
    spawns, the sender profiles the team speaks through with their LinkedIn
    account and mailboxes, and the one agent per team with its scenarios, plans
    and runs.


    GENERATED. This document is projected from the Zod MCP tool registry in
    `product/mcp/gs.mcp` (one tool per public endpoint, 1:1). Do not edit it by
    hand; edit the tool definition and regenerate with `pnpm openapi:public`.


    Surface: the public `/api` contract of `gs.service.unibox`, 125 operations.
    This is the only OpenAPI document the platform publishes. Internal
    (`/internal`) and health endpoints are deliberately absent: they are not
    part of any contract, they can change without notice, and the service source
    is their only description.


    Conventions:

    - Auth is a bearer JWT, optionally narrowed by the `Team-SID` header.

    - Every success body is an MCP envelope: `success: true` plus one typed
    `operation` shape (`search`, `get`, `create`, `update`, `delete`, `metrics`,
    `group_by`, `action`), and a `meta` block with `trace_id` for support.

    - Every failure is the same `McpError` envelope with a code from a fixed
    16-code taxonomy, so a client maps errors once.

    - Lists page with `page_size` (0 to 500, default 50) plus an opaque forward
    `cursor`; `page_size: 0` returns counts only.

    - On `GET` and `DELETE`, object-valued query parameters (`filter`, `sort`)
    travel as JSON text and array-valued ones repeat as `name[]=value`.

    - The MCP-only `_meta` field (usage analytics) never reaches the backend and
    is not part of this contract.
  version: '1.0'
  contact:
    name: GetSales
    url: https://getsales.io
    email: support@getsales.io
  license:
    name: Proprietary
    url: https://getsales.io/terms
servers:
  - url: https://beta.getsales.io/unibox/v1
    description: >-
      Production (the gateway path on the beta ring; the origin is provisioned
      per DEPLOY_MAP.md)
security:
  - BearerJwt: []
    TeamSid: []
tags:
  - name: agent_answers
    description: >-
      Registry package `mcp.unibox/agent_answers`, served on MCP mount
      `unibox.knowledge`.
  - name: agent_conversation_uploads
    description: >-
      Registry package `mcp.unibox/agent_conversation_uploads`, served on MCP
      mount `unibox.agent-memory`.
  - name: agent_examples
    description: >-
      Registry package `mcp.unibox/agent_examples`, served on MCP mount
      `unibox.agent-memory`.
  - name: agent_hints
    description: >-
      Registry package `mcp.unibox/agent_hints`, served on MCP mount
      `unibox.agent-memory`.
  - name: agent_plans
    description: >-
      Registry package `mcp.unibox/agent_plans`, served on MCP mount
      `unibox.agent`.
  - name: agent_runs
    description: >-
      Registry package `mcp.unibox/agent_runs`, served on MCP mount
      `unibox.agent-memory`.
  - name: agent_scenarios
    description: >-
      Registry package `mcp.unibox/agent_scenarios`, served on MCP mount
      `unibox.agent`.
  - name: agent_source_parses
    description: >-
      Registry package `mcp.unibox/agent_source_parses`, served on MCP mount
      `unibox.knowledge`.
  - name: agent_sources
    description: >-
      Registry package `mcp.unibox/agent_sources`, served on MCP mount
      `unibox.knowledge`.
  - name: agent_tests
    description: >-
      Registry package `mcp.unibox/agent_tests`, served on MCP mount
      `unibox.agent-memory`.
  - name: agents
    description: >-
      Registry package `mcp.unibox/agents`, served on MCP mount
      `unibox.website`.
  - name: conversation_events
    description: >-
      Registry package `mcp.unibox/conversation_events`, served on MCP mount
      `unibox.inbox`.
  - name: conversations
    description: >-
      Registry package `mcp.unibox/conversations`, served on MCP mount
      `unibox.inbox`.
  - name: messages
    description: >-
      Registry package `mcp.unibox/messages`, served on MCP mount
      `unibox.inbox`.
  - name: sender_profiles
    description: >-
      Registry package `mcp.unibox/sender_profiles`, served on MCP mount
      `unibox.sender-profiles`.
  - name: tasks
    description: Registry package `mcp.unibox/tasks`, served on MCP mount `unibox.inbox`.
  - name: timeline
    description: >-
      Registry package `mcp.unibox/timeline`, served on MCP mount
      `unibox.inbox`.
paths:
  /api/agents/{sid}/overview:
    get:
      tags:
        - agents
      summary: Get agent overview
      description: >-
        One AI SDR's overview (by sid) for a period (all, 30d, 7d): the replies
        it read and sent, calls booked, median reply time, hand-offs, unsure
        replies, credits spent, the funnel from reply to goal, the outcome (what
        the lead did after its reply, against the corpus baseline), the same
        scalars for the period before, and, now, its conversations by state and
        the workflows its threads name. For how the agent is doing, never for
        one thread (get_conversation) or one run (search_agent_runs).


        Contract:

        - MCP tool `get_agent_overview`, registry package `mcp.unibox/agents`,
        mount `unibox.agent`.

        - Operation `action`, response envelope `action`.

        - Flags: read only.
      operationId: get_agent_overview
      parameters:
        - name: sid
          in: path
          required: true
          description: The agent whose overview is read (ub_ag_…).
          schema:
            type: string
            minLength: 18
            maxLength: 18
            pattern: ^ub_ag_
            description: The agent whose overview is read (ub_ag_…).
        - name: period
          in: query
          required: false
          description: >-
            What to count over: all (since ever), 30d (the default) or 7d. The
            Now block is the same whatever the period.
          schema:
            type: string
            enum:
              - all
              - 30d
              - 7d
            description: >-
              What to count over: all (since ever), 30d (the default) or 7d. The
              Now block is the same whatever the period.
      responses:
        '200':
          description: '`action` success envelope.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAgentOverviewResponse'
        4XX:
          $ref: '#/components/responses/McpClientError'
        5XX:
          $ref: '#/components/responses/McpServerError'
components:
  schemas:
    GetAgentOverviewResponse:
      type: object
      properties:
        success:
          type: boolean
          enum:
            - true
        operation:
          type: string
          enum:
            - action
        action:
          type: string
          description: kebab-case verb; matches the route segment.
        item: {}
        result:
          type: object
          properties:
            period:
              type: object
              properties:
                key:
                  type: string
                  enum:
                    - all
                    - 30d
                    - 7d
                days:
                  type: integer
                  nullable: true
                  description: 30, 7, or null for all time.
                since:
                  type: string
                  nullable: true
                  description: ISO 8601 UTC, the period's first instant; null for all time.
                until:
                  type: string
                  description: ISO 8601 UTC, now.
              required:
                - key
                - days
                - since
                - until
            replies:
              type: object
              properties:
                received:
                  type: integer
                  description: >-
                    The replies the agent read in the period: the classify runs
                    that labelled a reply, one per reply (a burst merged into
                    one).
                sent:
                  type: integer
                  description: >-
                    The agent's messages that went out in the period, a reply
                    split into parts counted once.
                sent_as_written:
                  type: integer
                  description: >-
                    Of them, the ones no person changed before approving and
                    nobody asked for again: the ring.
                as_written_share:
                  type: number
                  nullable: true
                  description: sent_as_written over sent, 0..1; null when nothing was sent.
                answered_by_person:
                  type: integer
                  description: >-
                    The answers a person typed in the period: by hand, no
                    workflow step behind them, with the lead's message before
                    them in the thread.
                a_day:
                  type: object
                  properties:
                    days:
                      type: integer
                      description: >-
                        How many days the series covers: the period's, or 90 for
                        all time.
                    since:
                      type: string
                      description: The first day, YYYY-MM-DD in the workspace's zone.
                    counts:
                      type: array
                      items:
                        type: integer
                      description: >-
                        The replies read per day, oldest first, one number per
                        day.
                  required:
                    - days
                    - since
                    - counts
              required:
                - received
                - sent
                - sent_as_written
                - as_written_share
                - answered_by_person
                - a_day
            calls_booked:
              type: integer
              description: >-
                The leads who said yes in the period on a goal of the kind call
                (the dialog_objective_reached pills with kind call).
            said_yes:
              type: integer
              description: The leads who said yes to the offer in the period, on any goal.
            median_reply_seconds:
              type: integer
              nullable: true
              description: >-
                The median from the lead's message to the agent's answer that
                went out within two days of it; null when none.
            handed_to_you:
              type: integer
              description: >-
                The hand-offs in the period: a trigger that fired (once per
                hand-off), the credits cap.
            unsure:
              type: integer
              description: >-
                The replies the classifier read under the confidence floor (0.5)
                in the period.
            credits:
              type: object
              properties:
                spent:
                  type: number
                  description: >-
                    What the turns cost in the period, in credits (25 a dollar,
                    rounded up to the hundredth: two decimals since 2026-10-21).
                per_thread_median:
                  type: number
                  nullable: true
                  description: >-
                    What a thread cost at the median, to the hundredth; null
                    when nothing was spent.
                per_thread_max:
                  type: number
                  nullable: true
                  description: What the most expensive thread cost.
              required:
                - spent
                - per_thread_median
                - per_thread_max
            funnel:
              type: object
              properties:
                replied:
                  type: integer
                  description: The threads that replied in the period.
                engaged:
                  type: integer
                  description: >-
                    The threads the Playbook took in the period (the cohort the
                    rows below count).
                discovered:
                  type: integer
                  description: Of them, the ones that reached Discover or past it.
                heard_the_bridge:
                  type: integer
                  description: >-
                    Of them, the ones that reached Bridge or past it
                    (2026-10-19).
                got_the_offer:
                  type: integer
                  description: >-
                    Of them, the ones the offer went to, or that reached the
                    Offer or past it.
                said_yes:
                  type: integer
                  description: Of them, the ones who said yes to the offer.
                booked:
                  type: integer
                  description: >-
                    Of them, the ones whose goal landed after the yes: the call
                    booked, the sign-up or the registration (never a custom
                    goal, whose yes is its end).
              required:
                - replied
                - engaged
                - discovered
                - heard_the_bridge
                - got_the_offer
                - said_yes
                - booked
            golden_set:
              type: object
              properties:
                replies:
                  type: integer
                  description: The agent's replies that went out in the period.
                matched:
                  type: integer
                  description: >-
                    Of them, the ones written with the team's own replies in
                    front of the turn (search_agent_examples).
                words_caught:
                  type: integer
                  description: >-
                    How often the send door refused a word the team never
                    writes; each time the turn wrote the sentence again.
                words_caught_by_word:
                  anyOf:
                    - type: object
                      additionalProperties: {}
                    - type: array
                      items: {}
                  description: >-
                    The same, per word: the never as the team wrote it, or the
                    long dash, with its count.
                edits_kept:
                  type: integer
                  description: >-
                    The drafts a person edited that joined the set as golden in
                    the period (Keep).
                edits_waiting:
                  type: integer
                  description: 'Now: the edits waiting for a Keep (From your edits).'
                rows:
                  type: integer
                  description: 'Now: the rows in the set.'
              required:
                - replies
                - matched
                - words_caught
                - words_caught_by_word
                - edits_kept
                - edits_waiting
                - rows
              description: >-
                The golden set in the period (2026-10-20): replies matched, the
                Words caught, the edits kept and waiting, the rows.
            knowledge:
              type: object
              properties:
                replies:
                  type: integer
                  description: The agent's replies that went out in the period.
                read:
                  type: integer
                  description: Of them, the ones whose turn carried a Knowledge answer.
                most_read:
                  type: object
                  nullable: true
                  properties:
                    sid:
                      type: string
                      description: The document (ub_as_…).
                    kind:
                      type: string
                      enum:
                        - file
                        - website
                    title:
                      type: string
                    reads:
                      type: integer
                      description: The replies that read one of its answers.
                  required:
                    - sid
                    - kind
                    - title
                    - reads
                  description: >-
                    The document whose answers were read in the most replies;
                    null when none was read (an answer added by hand counts for
                    no document).
                documents:
                  type: integer
                  description: 'Now: the documents, files and websites.'
                answers:
                  type: integer
                  description: 'Now: the answers ready to be read, what a turn picks from.'
                answers_from_documents:
                  type: integer
                  description: Of them, the ones read from a document.
                answers_manual:
                  type: integer
                  description: Of them, the ones added by hand.
                reading:
                  type: integer
                  description: 'Now: the documents being read.'
              required:
                - replies
                - read
                - most_read
                - documents
                - answers
                - answers_from_documents
                - answers_manual
                - reading
              description: >-
                Knowledge in the period (2026-10-20, block 7; answers and
                documents since block AC3, 2026-10-26): the replies that read it
                and the most read document; the questions it did not answer are
                the hints (search_agent_hints) since 2026-10-26.
            hints:
              type: object
              properties:
                open:
                  type: integer
                  description: 'Now: the open hints, what needs you.'
                missing_answer:
                  type: integer
                  description: >-
                    Of them, the questions leads ask that nothing in Knowledge
                    answers.
                no_example:
                  type: integer
                  description: >-
                    Of them, the situations with no close dialogue in the Golden
                    set.
              required:
                - open
                - missing_answer
                - no_example
              description: >-
                The open hints now, whatever the period (2026-10-26, the
                Analyzer's Hints tab): the Overview's Needs you row. The rows
                are search_agent_hints on /mcp/unibox/agent-memory.
            outcome:
              type: object
              properties:
                replied_threads:
                  type: integer
                  description: >-
                    The threads a lead wrote on in the period (a landed inbound
                    of theirs on a one-to-one thread, recalled ones left out):
                    the denominator of the three rates.
                evidence:
                  type: object
                  properties:
                    their_link:
                      type: integer
                      description: >-
                        The threads where the lead first sent a calendar link in
                        the period, after a reply of ours (the thread's
                        lead_evidence.their_link_at).
                    confirmed_time:
                      type: integer
                      description: >-
                        The threads where the lead first confirmed a day or a
                        time we proposed in the period.
                    handoff_after_reply:
                      type: integer
                      description: >-
                        The threads where the lead first handed over a phone
                        number, an email address or a colleague after our reply
                        in the period.
                    strict:
                      type: integer
                      description: >-
                        The threads with their link or a confirmed time first
                        fired in the period: the study's strict evidence,
                        against baseline.strict.
                    any:
                      type: integer
                      description: >-
                        The threads with any of the three first fired in the
                        period, against the positive band baseline.positive_low
                        to positive_high.
                  required:
                    - their_link
                    - confirmed_time
                    - handoff_after_reply
                    - strict
                    - any
                  description: >-
                    The lead-side evidence of the period by class (research
                    conversations.md, lead_evidence): a thread counts once per
                    class, at the first time the class fired.
                replies:
                  type: object
                  properties:
                    total:
                      type: integer
                      description: >-
                        The lead's replies in the period: every landed inbound
                        of theirs on a one-to-one thread.
                    judged:
                      type: integer
                      description: >-
                        Of them, the ones older than 24 hours: the only ones "we
                        stopped" can be said of.
                    we_stopped:
                      type: integer
                      description: >-
                        Of the judged, the ones no message of ours (the agent's,
                        a person's or a workflow's) followed within 24 hours:
                        "replied, we stopped", against baseline.we_stopped.
                    answered:
                      type: integer
                      description: The replies a message of ours followed, whenever.
                    within_hour:
                      type: integer
                      description: >-
                        Of the answered, the ones answered within 60 minutes,
                        against baseline.within_hour.
                  required:
                    - total
                    - judged
                    - we_stopped
                    - answered
                    - within_hour
                  description: >-
                    The two counters over the lead's replies of the period:
                    whether the team answers at all, and how fast.
                baseline:
                  type: object
                  properties:
                    positive_low:
                      type: number
                      description: >-
                        8.6: the low end of the positive outcomes, percent of
                        replied threads.
                    positive_high:
                      type: number
                      description: '11.4: the high end.'
                    strict:
                      type: number
                      description: >-
                        0.6: strict lead-side evidence, percent of replied
                        threads.
                    we_stopped:
                      type: number
                      description: '39: the replies people never answered, percent.'
                    within_hour:
                      type: number
                      description: >-
                        28.5: the answered replies people answered within the
                        hour, percent.
                  required:
                    - positive_low
                    - positive_high
                    - strict
                    - we_stopped
                    - within_hour
                  description: >-
                    The corpus study's human baseline, in percent, as constants:
                    what people did on the legacy platform across 22 million
                    threads. Draw the team's rates against these.
              required:
                - replied_threads
                - evidence
                - replies
                - baseline
              description: >-
                The measurement block (2026-10-25): what the lead did after our
                reply in the period, the two counters, and the corpus baseline
                to draw them against. The one way to judge the agent: never by
                continuation, never by our own links.
            against:
              type: object
              properties:
                agent:
                  type: object
                  properties:
                    replies:
                      type: integer
                      description: >-
                        The column's replies that went out in the period: the
                        denominator of the three evidence shares.
                    strict:
                      type: integer
                      description: >-
                        Of them, the replies after which the lead first sent a
                        calendar link or confirmed a time we proposed (each fact
                        attributed to the last message of ours before it).
                    contact:
                      type: integer
                      description: >-
                        Of them, the replies after which the lead first handed
                        over a phone, an email or a colleague.
                    ended_well:
                      type: integer
                      description: >-
                        Of them, the replies after which any of the three fired,
                        or the dialog said yes or ended on its goal (a call
                        booked, a sign-up, a registration): a call, a yes or a
                        next step, against the positive band of
                        outcome.baseline.
                    answered:
                      type: integer
                      description: >-
                        Of the replies, the ones that answered a lead's message
                        within two days of it.
                    within_hour:
                      type: integer
                      description: Of those, within 60 minutes.
                    median_reply_seconds:
                      type: integer
                      nullable: true
                      description: The median gap over the answered; null when none.
                    silence:
                      type: integer
                      description: >-
                        The lead's replies of the period older than 24 hours
                        with no message of ours within 24 hours after them, on
                        this side: the agent's when a classify read the reply
                        within the day and handed nothing over, the team's
                        otherwise.
                  required:
                    - replies
                    - strict
                    - contact
                    - ended_well
                    - answered
                    - within_hour
                    - median_reply_seconds
                    - silence
                  description: >-
                    The agent's replies that went out in the period
                    (replies.sent).
                team:
                  type: object
                  properties:
                    replies:
                      type: integer
                      description: >-
                        The column's replies that went out in the period: the
                        denominator of the three evidence shares.
                    strict:
                      type: integer
                      description: >-
                        Of them, the replies after which the lead first sent a
                        calendar link or confirmed a time we proposed (each fact
                        attributed to the last message of ours before it).
                    contact:
                      type: integer
                      description: >-
                        Of them, the replies after which the lead first handed
                        over a phone, an email or a colleague.
                    ended_well:
                      type: integer
                      description: >-
                        Of them, the replies after which any of the three fired,
                        or the dialog said yes or ended on its goal (a call
                        booked, a sign-up, a registration): a call, a yes or a
                        next step, against the positive band of
                        outcome.baseline.
                    answered:
                      type: integer
                      description: >-
                        Of the replies, the ones that answered a lead's message
                        within two days of it.
                    within_hour:
                      type: integer
                      description: Of those, within 60 minutes.
                    median_reply_seconds:
                      type: integer
                      nullable: true
                      description: The median gap over the answered; null when none.
                    silence:
                      type: integer
                      description: >-
                        The lead's replies of the period older than 24 hours
                        with no message of ours within 24 hours after them, on
                        this side: the agent's when a classify read the reply
                        within the day and handed nothing over, the team's
                        otherwise.
                  required:
                    - replies
                    - strict
                    - contact
                    - ended_well
                    - answered
                    - within_hour
                    - median_reply_seconds
                    - silence
                  description: >-
                    Every reply a person sent by hand in the period on a thread
                    the agent had read into a scenario before it; replies 0 when
                    nobody did, and the page then shows people in general
                    (outcome.baseline), marked so.
              required:
                - agent
                - team
              description: >-
                The agent against the team (2026-10-27, block AC8): the five
                measures of the Overview's block in two columns, what the lead
                did after each reply. Read the shares off the counts; outcome
                keeps the whole inbox's counters and the corpus baseline.
            previous:
              type: object
              nullable: true
              properties:
                replies_received:
                  type: integer
                replies_sent:
                  type: integer
                sent_as_written:
                  type: integer
                  description: >-
                    Of them, the ones sent as written (2026-10-20): the widget's
                    change in points.
                calls_booked:
                  type: integer
                said_yes:
                  type: integer
                handed_to_you:
                  type: integer
                unsure:
                  type: integer
                credits_spent:
                  type: number
              required:
                - replies_received
                - replies_sent
                - sent_as_written
                - calls_booked
                - said_yes
                - handed_to_you
                - unsure
                - credits_spent
              description: >-
                The same scalars for the period of the same length before this
                one, so a reader can say what moved; null for all time.
            now:
              type: object
              properties:
                talking:
                  type: object
                  properties:
                    total:
                      type: integer
                      description: >-
                        The threads the agent stands on now in any of the five
                        states.
                    leading:
                      type: integer
                      description: 'It leads: its plan runs, or it is reading or writing.'
                    awaiting_approval:
                      type: integer
                      description: >-
                        It waits for a person's OK: a draft, a proposed plan, a
                        parked step.
                    handed_off:
                      type: integer
                      description: >-
                        Handed to a person: a hand-off task open, a give-up, a
                        failed step.
                    taken_over:
                      type: integer
                      description: >-
                        A person writes: they stepped in, nothing of the agent's
                        in flight.
                    stalled:
                      type: integer
                      description: The lead went quiet and no follow-up may follow.
                  required:
                    - total
                    - leading
                    - awaiting_approval
                    - handed_off
                    - taken_over
                    - stalled
                  description: >-
                    The agent's conversations now, one state per thread (the
                    search's own counts over agent_state not none). Open one
                    state with search_conversations and filter.agent_state.
                workflows:
                  type: array
                  items:
                    type: object
                    properties:
                      workflow_sid:
                        type: string
                        description: >-
                          The workflow the threads name as their owner
                          (wf_wf_…).
                      workflow_name:
                        type: string
                        description: Its name as the threads' refs carry it.
                      playtable_sid:
                        type: string
                        nullable: true
                        description: >-
                          Its table (pt_tb_…); null on refs frozen before it
                          rode along.
                      ai_agent_mode:
                        type: string
                        description: >-
                          Its After a reply as the refs carry it: autopilot,
                          copilot or off.
                      threads:
                        type: integer
                        description: The threads the workflow owns in the inbox.
                      with_agent_now:
                        type: integer
                        description: Of them, the threads the agent stands on now.
                      replies:
                        type: integer
                        description: >-
                          The agent's replies that went out on them in the
                          period.
                      calls_booked:
                        type: integer
                        description: The calls booked on them in the period.
                    required:
                      - workflow_sid
                      - workflow_name
                      - playtable_sid
                      - ai_agent_mode
                      - threads
                      - with_agent_now
                      - replies
                      - calls_booked
                  description: >-
                    The workflows the threads name as their owner, the busiest
                    first. A workflow's enrolled people are playtables'
                    (search_workflows with include records_counts).
              required:
                - talking
                - workflows
          required:
            - period
            - replies
            - calls_booked
            - said_yes
            - median_reply_seconds
            - handed_to_you
            - unsure
            - credits
            - funnel
            - golden_set
            - knowledge
            - hints
            - outcome
            - against
            - previous
            - now
        meta:
          type: object
          properties:
            trace_id:
              type: string
              description: UUID v7; same 128-bit value as the X-Trace-Id header.
            span_id:
              type: string
              pattern: ^[0-9a-f]{16}$
              description: 16 hex chars, root span of this request.
            timestamp:
              type: string
              description: ISO 8601 UTC (Y-m-dTH:i:sZ), response time.
            duration_ms:
              type: integer
              minimum: 0
              description: Server-side wall clock.
            team_sid:
              type: string
              nullable: true
              description: >-
                The team this call ran in (the token team, or the team_sid
                override). Null when unauthenticated; absent from pre-2026-08-20
                backends.
            actor_type:
              type: string
              nullable: true
              description: >-
                user | agent | api_key | system. Null when unauthenticated;
                absent from pre-2026-08-20 backends.
          required:
            - trace_id
            - span_id
            - timestamp
            - duration_ms
      required:
        - success
        - operation
        - action
        - item
        - result
        - meta
    McpError:
      type: object
      properties:
        success:
          type: boolean
          enum:
            - false
        error:
          type: object
          properties:
            code:
              type: string
              enum:
                - validation_failed
                - nothing_to_update
                - not_found
                - relation_not_found
                - invalid_transition
                - limit_exceeded
                - payment_required
                - duplicate_rejected
                - conflict
                - delete_blocked
                - unauthorized
                - forbidden
                - rate_limited
                - internal_error
                - service_unavailable
                - not_implemented
            message:
              type: string
            recoverable:
              type: boolean
            suggestion:
              type: string
            field_errors:
              type: object
              additionalProperties:
                type: array
                items:
                  type: object
                  properties:
                    rule:
                      type: string
                    message:
                      type: string
                  required:
                    - rule
                    - message
            blockers:
              type: array
              items:
                type: object
                properties:
                  type:
                    type: string
                    description: >-
                      Machine-readable blocker type (active_flow, pending_tasks,
                      …).
                  severity:
                    type: string
                    enum:
                      - hard
                      - soft
                    description: >-
                      hard = external action required; soft = acknowledge is
                      enough.
                  description:
                    type: string
                  entity_sid:
                    type: string
                    nullable: true
                  count:
                    type: integer
                  resolution:
                    type: string
                    description: 'Hard: tool name to call. Soft: code for acknowledge[].'
                  resolution_hint:
                    type: string
                required:
                  - type
                  - severity
                  - description
                  - entity_sid
                  - resolution
                  - resolution_hint
            context:
              type: object
              additionalProperties: {}
          required:
            - code
            - message
            - recoverable
        meta:
          type: object
          properties:
            trace_id:
              type: string
              description: UUID v7; same 128-bit value as the X-Trace-Id header.
            span_id:
              type: string
              pattern: ^[0-9a-f]{16}$
              description: 16 hex chars, root span of this request.
            timestamp:
              type: string
              description: ISO 8601 UTC (Y-m-dTH:i:sZ), response time.
            duration_ms:
              type: integer
              minimum: 0
              description: Server-side wall clock.
            team_sid:
              type: string
              nullable: true
              description: >-
                The team this call ran in (the token team, or the team_sid
                override). Null when unauthenticated; absent from pre-2026-08-20
                backends.
            actor_type:
              type: string
              nullable: true
              description: >-
                user | agent | api_key | system. Null when unauthenticated;
                absent from pre-2026-08-20 backends.
          required:
            - trace_id
            - span_id
            - timestamp
            - duration_ms
      required:
        - success
        - error
  responses:
    McpClientError:
      description: >-
        MCP error envelope. `error.code` is one of validation_failed,
        nothing_to_update, not_found, relation_not_found, invalid_transition,
        limit_exceeded, payment_required, duplicate_rejected, conflict,
        delete_blocked, unauthorized, forbidden, rate_limited, not_implemented.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/McpError'
    McpServerError:
      description: >-
        MCP error envelope with `error.code` internal_error or
        service_unavailable.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/McpError'
  securitySchemes:
    BearerJwt:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        Access token issued by gs.service.id. Its `access_identity` claim
        carries `team_sid`, `actor_sid` and `actor_type`, and that team scope is
        authoritative.
    TeamSid:
      type: apiKey
      in: header
      name: Team-SID
      description: >-
        Team scope for tokens that do not carry one. Ignored when the token
        already names a team.

````

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