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

# What a procedure’s runs cost

> At list price. A run is a conversation (or a task on its own) that got the procedure: the chat replies that read it, the tasks that followed it and its AI Review checks. `revisions`: each revision’s runs and average run (`avg_cents` null when none got it), oldest first. `last_30_days`: the last 30 days’ runs split by what for (`replies`, `tasks`, `qa`) and by model (tokens and price before each reply and task is rounded up to a whole cent).



## OpenAPI

````yaml /api-reference/openapi.json get /v1/agents/{agent_id}/procedures/{procedure_id}/costs
openapi: 3.1.0
info:
  title: Eager API
  version: 1.0.0
  description: >-
    Train AI agents like new hires: hand an agent your files and coach it, and
    it writes its own procedures and works in any software, even without an API.
    Talk to your agents one message at a time (POST
    /v1/agents/{agent_id}/responses): they answer from their files, procedures
    and your HTTP tools, and run tasks on their own cloud browser or your linked
    computers when an answer needs a website or a desktop app. Manage agents
    (versioned: save a draft, publish it), their procedures, browser and
    computers; follow conversations and tasks, answer approvals, and fetch
    history and recordings. Run tasks yourself on a session: a customer’s
    computer through an invite link, or a cloud browser. Test agents with evals:
    chat, browser and desktop test cases, run several times against your agents
    and judged on the answer. Every change is in the org’s audit log.
servers:
  - url: https://guidinghand.ai
    description: Production
  - url: https://dev.guidinghand.ai
    description: Development (Stripe test mode)
security:
  - bearerAuth: []
tags:
  - name: Agents
  - name: Agent files
  - name: Agent tools
  - name: Agent folders
  - name: Computers
    description: >-
      Computers your org links with the Eager app, and pools of them, for
      agents’ desktop tasks. Attach them to an agent in its
      `resources.computers`.
  - name: Phone numbers
    description: >-
      Bring your own Twilio numbers: connect the account, add its numbers, and
      pick the agent that answers each. Calls are answered by the agent's
      published version.
  - name: Sessions
  - name: Tasks
  - name: Webhooks
  - name: Audit log
  - name: Test cases
  - name: Test sets
  - name: Test runs
  - name: Start states
  - name: Runners
  - name: Responses
    description: >-
      Talk to an agent: each call is one turn of a conversation. The agent
      answers with its files, procedures and tools (and, with Run code, its own
      sandbox), asks for details with forms, and runs browser and desktop tasks
      when an answer needs a website or a desktop app.
  - name: Conversations
    description: >-
      The history of each conversation: messages, tool calls and the tasks the
      agent started, in order.
  - name: Uploads
    description: >-
      Files for conversations: attach them to a message, and download what the
      agent’s code made. Kept as long as their conversation.
  - name: Procedures
    description: >-
      An agent’s playbooks: when to use each and its steps. The agent finds and
      follows them; ones it writes from a first run are marked written_by:
      agent.
  - name: Categories
    description: The kinds of request an org’s procedures and test cases are sorted into.
  - name: Escalations
    description: >-
      What needs your team: an approval only the team can give or a question
      only it can answer, in a real conversation; a procedure run that failed;
      and one that worked another way, with the procedure rewritten to match (a
      proposed change). Test chats never escalate; evals do, without webhooks.
  - name: Schedules
    description: >-
      Run an agent’s procedure on a cron expression, in a time zone, with the
      inputs it needs. Each run is a conversation of its own with nobody in it
      (`channel` `schedule` in its variables): the procedure’s steps without AI
      run outright when it has them, else the model follows it to its end. Its
      record says how it ended, what the agent said last and what it cost; the
      team hears by webhook (`schedule.run_completed`, `schedule.run_failed`),
      email and Slack or Teams, as the schedule says.
paths:
  /v1/agents/{agent_id}/procedures/{procedure_id}/costs:
    parameters:
      - name: agent_id
        in: path
        required: true
        description: The agent’s id.
        schema:
          type: string
      - name: procedure_id
        in: path
        required: true
        schema:
          type: string
    get:
      tags:
        - Procedures
      summary: What a procedure’s runs cost
      description: >-
        At list price. A run is a conversation (or a task on its own) that got
        the procedure: the chat replies that read it, the tasks that followed it
        and its AI Review checks. `revisions`: each revision’s runs and average
        run (`avg_cents` null when none got it), oldest first. `last_30_days`:
        the last 30 days’ runs split by what for (`replies`, `tasks`, `qa`) and
        by model (tokens and price before each reply and task is rounded up to a
        whole cent).
      operationId: getProcedureCosts
      responses:
        '200':
          description: Its costs.
          content:
            application/json:
              schema:
                type: object
                properties:
                  object:
                    type: string
                    enum:
                      - procedure_costs
                  procedure_id:
                    type: string
                  revisions:
                    type: array
                    items:
                      type: object
                      properties:
                        revision:
                          type: integer
                        saved_at:
                          type: string
                          format: date-time
                          nullable: true
                        current:
                          type: boolean
                        runs:
                          type: integer
                        total_cents:
                          type: number
                        avg_cents:
                          type: number
                          nullable: true
                  last_30_days:
                    type: object
                    properties:
                      runs:
                        type: integer
                      total_cents:
                        type: number
                      avg_cents:
                        type: number
                        nullable: true
                      replies:
                        type: object
                      tasks:
                        type: object
                      qa:
                        type: object
                      models:
                        type: array
                        items:
                          type: object
        '404':
          description: No such procedure.
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: An org API key (`gh_live_…`) from Settings → API keys in the console.

````

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