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

# Get Agent Run



## OpenAPI

````yaml api-reference/speakeasy/textql-api-with-code-samples.yaml POST /textql.rpc.public.agent.AgentService/GetAgentRun
openapi: 3.1.0
info:
  title: TextQL API
  version: 1.0.0
  description: |
    TextQL public API. Generated from protobuf service definitions; internal
    endpoints are excluded via google.api.visibility / file_visibility.
servers:
  - url: https://app.textql.com
security:
  - apiKey: []
tags:
  - name: DashboardService
  - name: AppService
    description: |-
      AppService manages data apps: the generative app execution primitive.
       An app is agent-authored single-file HTML/JS/CSS executing in a CSP sandbox,
       fed a snapshot of its declared data sources. First-class resource, not a dashboard.
  - name: ConnectorService
  - name: PowerBIService
  - name: TableauService
  - name: DatasetService
  - name: OntologyManagementService
  - name: ChatService
  - name: AgentService
  - name: AuditLogService
  - name: MCPService
  - name: MetricsExportService
  - name: ObservabilityService
  - name: PlaybookService
  - name: RBACService
    description: RBAC service for managing roles, permissions, and access control
  - name: SandboxAdminService
  - name: SandboxQueryService
  - name: SandboxCapabilityService
  - name: ScimService
  - name: SecretService
  - name: SlackService
  - name: TeamsService
paths:
  /textql.rpc.public.agent.AgentService/GetAgentRun:
    post:
      tags:
        - AgentService
      summary: GetAgentRun
      operationId: AgentService_GetAgentRun
      parameters:
        - name: Connect-Protocol-Version
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/connect-protocol-version'
        - name: Connect-Timeout-Ms
          in: header
          schema:
            $ref: '#/components/schemas/connect-timeout-header'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/textql.rpc.public.agent.GetAgentRunRequest'
        required: true
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/textql.rpc.public.agent.GetAgentRunResponse
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
      x-codeSamples:
        - lang: python
          label: Python (SDK)
          source: |-
            import os
            from textql_sdk import Textql


            with Textql(
                api_key=os.getenv("TEXTQL_API_KEY", ""),
            ) as textql:

                res = textql.agents.get_run()

                # Handle response
                print(res)
        - lang: typescript
          label: TypeScript (SDK)
          source: |-
            import { Textql } from "@textql/sdk";

            const textql = new Textql({
              apiKey: process.env["TEXTQL_API_KEY"] ?? "",
            });

            async function run() {
              const result = await textql.agents.getRun({
                body: {},
              });

              console.log(result);
            }

            run();
components:
  schemas:
    connect-protocol-version:
      type: number
      title: Connect-Protocol-Version
      enum:
        - 1
      description: Define the version of the Connect protocol
      const: 1
      default: 1
    connect-timeout-header:
      type: number
      title: Connect-Timeout-Ms
      description: Define the timeout, in ms
    textql.rpc.public.agent.GetAgentRunRequest:
      type: object
      properties:
        runId:
          type: string
          title: run_id
      title: GetAgentRunRequest
      additionalProperties: false
    textql.rpc.public.agent.GetAgentRunResponse:
      type: object
      properties:
        run:
          $ref: '#/components/schemas/textql.rpc.public.agent.AgentRun'
          title: run
      title: GetAgentRunResponse
      additionalProperties: false
    connect.error:
      type: object
      properties:
        code:
          type: string
          examples:
            - not_found
          enum:
            - canceled
            - unknown
            - invalid_argument
            - deadline_exceeded
            - not_found
            - already_exists
            - permission_denied
            - resource_exhausted
            - failed_precondition
            - aborted
            - out_of_range
            - unimplemented
            - internal
            - unavailable
            - data_loss
            - unauthenticated
          description: >-
            The status code, which should be an enum value of
            [google.rpc.Code][google.rpc.Code].
        message:
          type: string
          description: >-
            A developer-facing error message, which should be in English. Any
            user-facing error message should be localized and sent in the
            [google.rpc.Status.details][google.rpc.Status.details] field, or
            localized by the client.
        details:
          type: array
          items:
            $ref: '#/components/schemas/connect.error_details.Any'
          description: >-
            A list of messages that carry the error details. There is no limit
            on the number of messages.
      title: Connect Error
      additionalProperties: true
      description: >-
        Error type returned by Connect:
        https://connectrpc.com/docs/go/errors/#http-representation
    textql.rpc.public.agent.AgentRun:
      type: object
      properties:
        id:
          type: string
          title: id
        agentId:
          type: string
          title: agent_id
        triggerSource:
          type: string
          title: trigger_source
        status:
          type: string
          title: status
        chatId:
          type: string
          title: chat_id
        webhookTriggerId:
          type: string
          title: webhook_trigger_id
        triggeredByMemberId:
          type: string
          title: triggered_by_member_id
        triggeredByAgentId:
          type: string
          title: triggered_by_agent_id
        errorKind:
          type: string
          title: error_kind
        errorMessage:
          type: string
          title: error_message
        attempt:
          type: integer
          title: attempt
          format: int32
        toolCallsCount:
          type: integer
          title: tool_calls_count
          format: int32
        lastSummary:
          type: string
          title: last_summary
        createdAt:
          $ref: '#/components/schemas/google.protobuf.Timestamp'
          title: created_at
        startedAt:
          $ref: '#/components/schemas/google.protobuf.Timestamp'
          title: started_at
        finishedAt:
          $ref: '#/components/schemas/google.protobuf.Timestamp'
          title: finished_at
        triggerMetadata:
          $ref: '#/components/schemas/textql.rpc.public.agent.AgentRunTriggerMetadata'
          title: trigger_metadata
          nullable: true
        toolsSummary:
          $ref: '#/components/schemas/textql.rpc.public.agent.AgentRunToolsSummary'
          title: tools_summary
          nullable: true
        delivery:
          $ref: '#/components/schemas/textql.rpc.public.agent.AgentRunDelivery'
          title: delivery
          nullable: true
        egressSummary:
          $ref: '#/components/schemas/textql.rpc.public.chat.EgressSummary'
          title: egress_summary
          nullable: true
        connectorIds:
          type: array
          items:
            type: integer
            format: int32
          title: connector_ids
        sandboxMountMs:
          type:
            - integer
            - string
          title: sandbox_mount_ms
          format: int64
      title: AgentRun
      additionalProperties: false
    connect.error_details.Any:
      type: object
      properties:
        type:
          type: string
          description: >-
            A URL that acts as a globally unique identifier for the type of the
            serialized message. For example:
            `type.googleapis.com/google.rpc.ErrorInfo`. This is used to
            determine the schema of the data in the `value` field and is the
            discriminator for the `debug` field.
        value:
          type: string
          format: binary
          description: >-
            The Protobuf message, serialized as bytes and base64-encoded. The
            specific message type is identified by the `type` field.
        debug:
          oneOf:
            - type: object
              title: Any
              additionalProperties: true
              description: Detailed error information.
          discriminator:
            propertyName: type
          title: Debug
          description: >-
            Deserialized error detail payload. The 'type' field indicates the
            schema. This field is for easier debugging and should not be relied
            upon for application logic.
      additionalProperties: true
      description: >-
        Contains an arbitrary serialized message along with a @type that
        describes the type of the serialized message, with an additional debug
        field for ConnectRPC error details.
    google.protobuf.Timestamp:
      type: string
      examples:
        - '2023-01-15T01:30:15.01Z'
        - '2024-12-25T12:00:00Z'
      format: date-time
      description: >-
        A Timestamp represents a point in time independent of any time zone or
        local
         calendar, encoded as a count of seconds and fractions of seconds at
         nanosecond resolution. The count is relative to an epoch at UTC midnight on
         January 1, 1970, in the proleptic Gregorian calendar which extends the
         Gregorian calendar backwards to year one.

         All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap
         second table is needed for interpretation, using a [24-hour linear
         smear](https://developers.google.com/time/smear).

         The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By
         restricting to that range, we ensure that we can convert to and from [RFC
         3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.

         # Examples

         Example 1: Compute Timestamp from POSIX `time()`.

             Timestamp timestamp;
             timestamp.set_seconds(time(NULL));
             timestamp.set_nanos(0);

         Example 2: Compute Timestamp from POSIX `gettimeofday()`.

             struct timeval tv;
             gettimeofday(&tv, NULL);

             Timestamp timestamp;
             timestamp.set_seconds(tv.tv_sec);
             timestamp.set_nanos(tv.tv_usec * 1000);

         Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.

             FILETIME ft;
             GetSystemTimeAsFileTime(&ft);
             UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;

             // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z
             // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.
             Timestamp timestamp;
             timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));
             timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));

         Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.

             long millis = System.currentTimeMillis();

             Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)
                 .setNanos((int) ((millis % 1000) * 1000000)).build();

         Example 5: Compute Timestamp from Java `Instant.now()`.

             Instant now = Instant.now();

             Timestamp timestamp =
                 Timestamp.newBuilder().setSeconds(now.getEpochSecond())
                     .setNanos(now.getNano()).build();

         Example 6: Compute Timestamp from current time in Python.

             timestamp = Timestamp()
             timestamp.GetCurrentTime()

         # JSON Mapping

         In JSON format, the Timestamp type is encoded as a string in the
         [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the
         format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z"
         where {year} is always expressed using four digits while {month}, {day},
         {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional
         seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),
         are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone
         is required. A proto3 JSON serializer should always use UTC (as indicated by
         "Z") when printing the Timestamp type and a proto3 JSON parser should be
         able to accept both UTC and other timezones (as indicated by an offset).

         For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past
         01:30 UTC on January 15, 2017.

         In JavaScript, one can convert a Date object to this format using the
         standard
         [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)
         method. In Python, a standard `datetime.datetime` object can be converted
         to this format using
         [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with
         the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use
         the Joda Time's [`ISODateTimeFormat.dateTime()`](
         http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()
         ) to obtain a formatter capable of generating timestamps in this format.
    textql.rpc.public.agent.AgentRunTriggerMetadata:
      type: object
      properties:
        authMethod:
          type: string
          title: auth_method
        memberId:
          type: string
          title: member_id
        apiKeyId:
          type: string
          title: api_key_id
        clientId:
          type: string
          title: client_id
        userAgent:
          type: string
          title: user_agent
        ip:
          type: string
          title: ip
        geo:
          $ref: '#/components/schemas/textql.rpc.public.agent.AgentRunTriggerGeo'
          title: geo
          nullable: true
      title: AgentRunTriggerMetadata
      additionalProperties: false
    textql.rpc.public.agent.AgentRunToolsSummary:
      type: object
      properties:
        totalCalls:
          type: integer
          title: total_calls
          format: int32
        toolCounts:
          type: object
          title: tool_counts
          additionalProperties:
            type: integer
            title: value
            format: int32
        details:
          type: array
          items:
            $ref: '#/components/schemas/textql.rpc.public.agent.AgentRunToolCall'
          title: details
      title: AgentRunToolsSummary
      additionalProperties: false
    textql.rpc.public.agent.AgentRunDelivery:
      type: object
      properties:
        slackChannelId:
          type: string
          title: slack_channel_id
          nullable: true
        teamsChannelId:
          type: string
          title: teams_channel_id
          nullable: true
        slackDmUserIds:
          type: array
          items:
            type: string
          title: slack_dm_user_ids
        teamsDmUserAadIds:
          type: array
          items:
            type: string
          title: teams_dm_user_aad_ids
        emailRecipientMemberIds:
          type: array
          items:
            type: string
          title: email_recipient_member_ids
        feedChannelIds:
          type: array
          items:
            type: string
          title: feed_channel_ids
        channels:
          type: array
          items:
            $ref: >-
              #/components/schemas/textql.rpc.public.agent.AgentRunDeliveryChannel
          title: channels
      title: AgentRunDelivery
      additionalProperties: false
    textql.rpc.public.chat.EgressSummary:
      type: object
      properties:
        totalCalls:
          type: integer
          title: total_calls
          format: int32
        outcomeCounts:
          type: object
          title: outcome_counts
          additionalProperties:
            type: integer
            title: value
            format: int32
          description: outcome -> count (ok/denied/error)
        calls:
          type: array
          items:
            $ref: '#/components/schemas/textql.rpc.public.chat.EgressCall'
          title: calls
          description: bounded; newest first
      title: EgressSummary
      additionalProperties: false
    textql.rpc.public.agent.AgentRunTriggerGeo:
      type: object
      properties:
        city:
          type: string
          title: city
        region:
          type: string
          title: region
        country:
          type: string
          title: country
        countryCode:
          type: string
          title: country_code
      title: AgentRunTriggerGeo
      additionalProperties: false
    textql.rpc.public.agent.AgentRunToolCall:
      type: object
      properties:
        tool:
          type: string
          title: tool
        summary:
          type: string
          title: summary
        error:
          type: string
          title: error
        resultJson:
          type: string
          title: result_json
        cellId:
          type: string
          title: cell_id
        durationMs:
          type:
            - integer
            - string
          title: duration_ms
          format: int64
        startedAtMs:
          type:
            - integer
            - string
          title: started_at_ms
          format: int64
      title: AgentRunToolCall
      additionalProperties: false
    textql.rpc.public.agent.AgentRunDeliveryChannel:
      type: object
      properties:
        type:
          type: string
          title: type
          description: >-
            slack_channel | teams_channel | slack_dm | teams_dm | email |
            feed_channel
        id:
          type: string
          title: id
          description: raw identifier (channel id, member id, aad id)
        label:
          type: string
          title: label
          description: resolved human-readable label (#channel, email address)
      title: AgentRunDeliveryChannel
      additionalProperties: false
    textql.rpc.public.chat.EgressCall:
      type: object
      properties:
        id:
          type: string
          title: id
        method:
          type: string
          title: method
        scheme:
          type: string
          title: scheme
        host:
          type: string
          title: host
        path:
          type: string
          title: path
        statusCode:
          type: integer
          title: status_code
          format: int32
        outcome:
          type: string
          title: outcome
          description: ok | denied | error
        durationMs:
          type:
            - integer
            - string
          title: duration_ms
          format: int64
        requestBytes:
          type:
            - integer
            - string
          title: request_bytes
          format: int64
        responseBytes:
          type:
            - integer
            - string
          title: response_bytes
          format: int64
        apiAccessKeyId:
          type: string
          title: api_access_key_id
          description: connector attribution, empty old secret
        occurredAt:
          $ref: '#/components/schemas/google.protobuf.Timestamp'
          title: occurred_at
        cellId:
          type: string
          title: cell_id
          description: chat cell that made the request, empty if unknown
        interpretation:
          type: string
          title: interpretation
          description: abstractive "what this call did", empty if unavailable
      title: EgressCall
      additionalProperties: false
      description: EgressCall is a single outbound HTTP(S) request a chat's sandbox made,
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: tql_api_key

````