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

# Where the organization stands with setup

> One read of onboarding readiness: the stage (`choosing_path`, `open`, `pre_flow`, `handoff_pending`, `completed`, `skipped`), the first agent and what blocks going live, the primary source's extraction state, the setup checklist, what awaits triage (proposed drafts per kind, unreviewed services and facts, retired facts, unread pages, running generations), credits, and whether a smoke test makes sense yet.




## OpenAPI

````yaml https://app.pepline.ai/api/v1/openapi.yaml get /onboarding
openapi: 3.1.0
info:
  title: pepline API
  version: '1'
  description: |
    The pepline knowledge ingestion API: push knowledge into your
    organization's library from your own systems — CMS hooks, sync scripts,
    Zapier/Make/n8n scenarios — and keep whole websites fresh. One inbound
    API instead of N connectors; you own the trigger, we own idempotency.
servers:
  - url: https://app.pepline.ai/api/v1
security:
  - bearerAuth: []
tags:
  - name: Organization
    description: The identity behind your key — confirm it works and read your agent slugs.
  - name: Knowledge sources
    description: >-
      Push and sync the knowledge your agents stand on — text, files, pages,
      whole websites.
  - name: Knowledge facts
    description: >-
      Triage the atomic knowledge your sources yielded — review, edit, archive,
      tier, per-agent scoping.
  - name: Knowledge gaps
    description: >-
      The questions leads asked that your material could not answer — resolve or
      dismiss them.
  - name: Ingestion instructions
    description: >-
      "Look for" asks — what the reader should specifically capture on a source,
      a page, or around a fact.
  - name: Agents
    description: List and provision agents, and tune each agent's widget settings.
  - name: Conversations
    description: >-
      Read the conversations your agents have held — transcripts, captured
      answers, verdicts.
  - name: Services
    description: The offerings your agents present and reason about.
  - name: Fit criteria
    description: What makes a good or poor lead — the signals your agents qualify against.
  - name: Voice profiles
    description: How your agents sound — tone, formality, phrasing.
  - name: Identities
    description: >-
      The personas your agents act as for outward operations — sender name,
      address, signature.
  - name: Prompt templates
    description: >-
      Versioned prompt bodies per kind — author a new version, activate any
      prior one.
  - name: Deliverable templates
    description: >-
      The A/B variants of the wrap-up document — sections and guidance per
      variant.
  - name: Flow
    description: >-
      Author an agent's conversation — its phases and the answers each one
      captures.
  - name: Catalog
    description: >-
      Draft services, voice, and fit criteria from your knowledge, then accept
      or dismiss the proposals.
  - name: Onboarding
    description: >-
      Where the organization stands with setup — stage, blockers, what awaits
      review.
paths:
  /onboarding:
    get:
      tags:
        - Onboarding
      summary: Where the organization stands with setup
      description: >
        One read of onboarding readiness: the stage (`choosing_path`, `open`,
        `pre_flow`, `handoff_pending`, `completed`, `skipped`), the first agent
        and what blocks going live, the primary source's extraction state, the
        setup checklist, what awaits triage (proposed drafts per kind,
        unreviewed services and facts, retired facts, unread pages, running
        generations), credits, and whether a smoke test makes sense yet.
      operationId: getOnboarding
      responses:
        '200':
          description: The readiness reading.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OnboardingReadiness'
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  schemas:
    OnboardingReadiness:
      type: object
      required:
        - object
        - stage
        - handoff
        - agent
        - live
        - verified
        - go_live_blockers
        - checklist
        - journey
        - queues
        - credits
        - smoke_test
      properties:
        object:
          type: string
          const: onboarding
        stage:
          type: string
          enum:
            - choosing_path
            - open
            - pre_flow
            - handoff_pending
            - completed
            - skipped
        path:
          type:
            - string
            - 'null'
          enum:
            - ui
            - ai
            - skipped
            - null
        handoff:
          $ref: '#/components/schemas/HandoffState'
        agent:
          type:
            - object
            - 'null'
          properties:
            slug:
              type: string
            name:
              type: string
            status:
              type: string
              enum:
                - active
                - paused
        live:
          type: boolean
        verified:
          type: boolean
        go_live_blockers:
          type: array
          items:
            type: string
        source:
          type:
            - object
            - 'null'
          description: >-
            The primary onboarding source (website or document), when one
            exists.
        extraction:
          type:
            - object
            - 'null'
          properties:
            done:
              type: boolean
            floor_met:
              type: boolean
            pending_facts:
              type: integer
        checklist:
          type: object
          description: The setup checklist (items, done, total, complete).
        activity:
          type: object
          description: >-
            What is running now, one reading for every surface: live, stage
            (reading | extracting | summarizing | reading_again | drafting |
            idle), headline, detail, kinds (live run kinds), labels.
        journey:
          type: object
          properties:
            current:
              type: string
            done:
              type: integer
            total:
              type: integer
        queues:
          type: object
          description: What awaits triage.
          properties:
            proposed_drafts:
              type: object
              additionalProperties:
                type: integer
            unreviewed_services:
              type: integer
            unreviewed_facts:
              type: integer
            retired_unreviewed_facts:
              type: integer
            other_pages:
              type: integer
            running_generations:
              type: integer
            open_gaps:
              type: integer
              description: Questions leads asked that the material could not answer.
        receipts:
          type: integer
          description: Curation receipts recorded so far.
        thread:
          type:
            - object
            - 'null'
          additionalProperties: true
          description: The assistant's open thread, when one exists.
        credits:
          type: object
          properties:
            used:
              type: integer
            allowance:
              type: integer
            refusal:
              type:
                - string
                - 'null'
              description: Why ingestion would be refused right now, when it would.
        smoke_test:
          type: object
          properties:
            eligible:
              type: boolean
            reasons:
              type: array
              items:
                type: string
    HandoffState:
      type: object
      required:
        - handed_off
        - handed_off_at
        - reviewed_at
        - pending
      properties:
        handed_off:
          type: boolean
        handed_off_at:
          type:
            - string
            - 'null'
          format: date-time
        reviewed_at:
          type:
            - string
            - 'null'
          format: date-time
          description: When the owner went live from the handoff page.
        pending:
          type: boolean
          description: >-
            Handed off, owner has not reviewed yet — their landing is the
            handoff page.
        mailed_at:
          type:
            - string
            - 'null'
          format: date-time
          description: >-
            When 'Meet your agent' went to the owner (or the pending owner
            invitation) — once per hand-off.
        reminded_at:
          type:
            - string
            - 'null'
          format: date-time
          description: When the one reminder went (five days without going live).
    Error:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - type
            - code
            - message
          properties:
            type:
              type: string
              enum:
                - authentication_error
                - invalid_request_error
                - rate_limit_error
                - api_error
            code:
              type: string
              enum:
                - missing_api_key
                - invalid_api_key
                - resource_missing
                - method_not_allowed
                - resource_archived
                - idempotency_conflict
                - parameter_invalid
                - parameter_missing
                - parameter_unknown
                - organization_required
                - organization_paused
                - rate_limited
                - flow_invalid
                - organization_unverified
                - experiment_running
                - resource_in_use
                - not_revertible
                - credits_exhausted
                - internal
            message:
              type: string
            param:
              type: string
  responses:
    Unauthorized:
      description: Missing, malformed, or revoked API key.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        Your secret key (pep_sk_…) from Settings → API. Keys are org-scoped;
        treat them like passwords.

````