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

# ListLeadPlaybookRevisionsAPI mirrors the erdo_list_lead_playbook_revisions


> MCP tool: every saved version of the playbook, newest first.




## OpenAPI

````yaml /api/openapi.json get /v1/lead-playbook/revisions
openapi: 3.0.0
info:
  title: Erdo API
  description: >-
    Erdo's REST API: query and write datasets, run agents, manage threads,
    integrations, pages, evals, workstreams, experiments, and bounded outreach.
    Authenticate with a Bearer API key (erdo_api_...) or scoped token
    (erdo_token_...).
  version: '2026-09-22'
servers:
  - url: https://api.erdo.ai
    description: Production
security:
  - bearerAuth: []
paths:
  /v1/lead-playbook/revisions:
    get:
      summary: >
        ListLeadPlaybookRevisionsAPI mirrors the
        erdo_list_lead_playbook_revisions
      description: |
        MCP tool: every saved version of the playbook, newest first.
      operationId: GET:mcp.ListLeadPlaybookRevisionsAPI
      parameters:
        - allowEmptyValue: true
          description: >
            Limit caps the returned revisions, newest first. Defaults to 20,
            capped at 100.
          explode: true
          in: query
          name: limit
          required: false
          schema:
            format: int64
            type: integer
          style: form
        - allowEmptyValue: true
          description: |
            Offset skips that many revisions, for paging further back.
          explode: true
          in: query
          name: offset
          required: false
          schema:
            format: int64
            type: integer
          style: form
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  limit:
                    format: int64
                    type: integer
                  offset:
                    format: int64
                    type: integer
                  revisions:
                    items:
                      $ref: >-
                        #/components/schemas/leadaction.LeadPlaybookRevisionSummary
                    type: array
                  total:
                    description: |
                      backwards knows where history stops.
                    format: int64
                    title: >
                      Total is how many revisions the organization has kept, so
                      a caller paging
                    type: integer
                type: object
          description: Success response
        default:
          $ref: '#/components/responses/APIError'
components:
  schemas:
    leadaction.LeadPlaybookRevisionSummary:
      description: >
        everything except the text and the read-back, which is what reading one
        revision answers with: a playbook is up to 20,000 characters and its
        read-back a few kilobytes more, so a page of them in full is a payload
        nobody reads.
      properties:
        agent_id:
          description: >
            deliberately not resolved to an agent: a revision is a record of
            what was saved, and an agent archived since must not erase it.
          title: >
            AgentID is the concierge this revision was saved with, as an id. It
            is
          type: string
        daily_contact_cap:
          format: int64
          type: integer
        enabled:
          title: >
            Enabled is whether the sweep was on as this revision was saved, not
            now.
          type: boolean
        revision:
          format: int64
          type: integer
        saved_at:
          format: date-time
          type: string
        saved_by:
          description: |
            recorded from a playbook whose author was never stored.
          title: |
            SavedBy is the user who saved it, empty for a revision the backfill
          type: string
        signature_name:
          description: >
            Empty is both "the operator set none, so it signed as the
            concierge's own display name" and "this revision predates the
            setting" — the same thing from the lead's side either way.
          title: >
            SignatureName is the name this revision signed messages to leads
            with.
          type: string
      title: >
        LeadPlaybookRevisionSummary is one saved revision as a list row. It
        carries
      type: object
  responses:
    APIError:
      content:
        application/json:
          schema:
            externalDocs:
              url: https://pkg.go.dev/encore.dev/beta/errs#Error
            properties:
              code:
                description: Error code
                example: not_found
                externalDocs:
                  url: https://pkg.go.dev/encore.dev/beta/errs#ErrCode
                type: string
              details:
                description: Error details
                type: object
              message:
                description: Error message
                type: string
            title: APIError
            type: object
      description: Error response
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: An Erdo API key (erdo_api_...) or scoped token (erdo_token_...).

````