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

# Get a proposal

> Returns one proposal with its status and the amounts it moves. After you approve it, read it again after `retry_after_ms` until that is null; `status` is then `done` or `failed`.



## OpenAPI

````yaml /partner-openapi.gen.json get /partner/v0.1/proposals/{proposal_id}
openapi: 3.1.0
info:
  title: Circuit partner API
  version: '0.1'
servers:
  - url: https://api.circuit.org
security: []
paths:
  /partner/v0.1/proposals/{proposal_id}:
    get:
      summary: Get a proposal
      description: >-
        Returns one proposal with its status and the amounts it moves. After you
        approve it, read it again after `retry_after_ms` until that is null;
        `status` is then `done` or `failed`.
      operationId: getProposal
      parameters:
        - name: proposal_id
          in: path
          required: true
          example: prop_cd968859-fe26-4c0a-953e-34a3ab68171b
          schema:
            type: string
            examples:
              - prop_cd968859-fe26-4c0a-953e-34a3ab68171b
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                description: >-
                  Something Ask proposed, such as a trade or an agent start,
                  that waits for your approval.
                type: object
                properties:
                  id:
                    description: The proposal's id, starting with `prop_`.
                    type: string
                  title:
                    description: >-
                      What it does, starting with a verb, such as "Buy 0.04 ETH
                      on Lighter" or "Start Macro Trend".
                    type: string
                  status:
                    $ref: '#/components/schemas/PartnerProposalStatus'
                  error:
                    description: Why it failed when `status` is `failed`. Null otherwise.
                    type:
                      - string
                      - 'null'
                  session:
                    description: >-
                      The session it started or changed, starting with `ses_`.
                      Null for trades.
                    type:
                      - string
                      - 'null'
                  amounts:
                    description: >-
                      The amounts it shows the user on Circuit: what it moves,
                      or for `USD` what it spends or its notional. Empty when it
                      shows none.
                    type: array
                    items:
                      $ref: '#/components/schemas/ProposalAmount'
                  retry_after_ms:
                    description: >-
                      While Circuit is carrying it out, how many milliseconds to
                      wait before reading it again. Null otherwise.
                    type:
                      - integer
                      - 'null'
                    format: uint64
                    minimum: 0
                required:
                  - id
                  - title
                  - status
                  - amounts
        default:
          description: Failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartnerFailure'
      security:
        - permit: []
components:
  schemas:
    PartnerProposalStatus:
      oneOf:
        - description: Waiting for you to approve or decline it.
          type: string
          const: review
        - description: Approved, and Circuit is carrying it out.
          type: string
          const: processing
        - description: Carried out.
          type: string
          const: done
        - description: Declined, or it expired before anyone approved it.
          type: string
          const: declined
        - description: It could not be carried out. `error` says why.
          type: string
          const: failed
    ProposalAmount:
      description: One amount a proposal moves.
      type: object
      properties:
        symbol:
          description: >-
            The asset, such as `ETH` or `USDC`, or `USD` for a dollar amount.
            Null when unknown.
          type:
            - string
            - 'null'
        network:
          description: >-
            Where it is, such as `ethereum:8453`, `solana` or `lighter`. Null
            when unknown.
          type:
            - string
            - 'null'
        amount:
          description: >-
            The amount as a decimal string. Negative when it leaves the wallet
            in a swap.
          type: string
        value_usd:
          description: >-
            Value in USD as a decimal string. Null when Circuit has no value for
            it.
          type:
            - string
            - 'null'
      required:
        - amount
    PartnerFailure:
      description: >-
        A failed call. Handle it by HTTP status and `code`, and show `error` to
        the user.
      type: object
      properties:
        error:
          description: A message you can show the user.
          type: string
        code:
          description: >-
            A stable code such as `BAD_REQUEST`, `NOT_FOUND`, `CONFLICT` or
            `UNAUTHORIZED`. New codes can appear.
          type: string
      required:
        - error
        - code
  securitySchemes:
    permit:
      type: http
      scheme: bearer
      description: The permit the user approved for your app.

````

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