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

# Preview an action

> What an action would do and spend, without doing it; returns a proposal_id that apply_proposal runs within 30 minutes. Works for every action marked proposable in GET /actions. Previewing a requirement change re-scores nothing until it is applied, except that its before/after is computed on the people already read. Does not use shortlist credits.

Needs scope `searches:read`.



## OpenAPI

````yaml /openapi.json post /actions/preview
openapi: 3.1.0
info:
  title: Revcenter API
  version: v1
  description: >-
    Projects, searches, scored candidates and shortlists. Generated from the
    agent API's registry.
servers:
  - url: https://api.revcenter.ai/v1
security:
  - bearer: []
tags:
  - name: Login
  - name: Account
  - name: Actions
  - name: Reference
  - name: Projects
  - name: Searches
  - name: Scoring
  - name: Shortlists
  - name: Candidates
  - name: Health
paths:
  /actions/preview:
    post:
      tags:
        - Actions
      summary: Preview an action
      description: >-
        What an action would do and spend, without doing it; returns a
        proposal_id that apply_proposal runs within 30 minutes. Works for every
        action marked proposable in GET /actions. Previewing a requirement
        change re-scores nothing until it is applied, except that its
        before/after is computed on the people already read. Does not use
        shortlist credits.


        Needs scope `searches:read`.
      operationId: preview_action
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - action
                - input
              properties:
                action:
                  type: string
                  description: A proposable action name, e.g. launch_search.
                input:
                  type: object
                  description: >-
                    The action's own arguments: path ids (project_id, search_id,
                    candidate_id) and its body fields.
            example:
              action: launch_search
              input:
                project_id: 6f1c2a0e-3b7d-4c1e-9a52-0d4e8b7c1a11
                criteria:
                  title_variants:
                    - Plant Controller
                    - Controller
                  metro: Camden, NJ
                  geo_radius_mi: 40
                  years_experience:
                    min: 8
                    enforcement: hard
                  must_have:
                    - CPA
      responses:
        '200':
          description: OK
          headers:
            X-RateLimit-Limit:
              description: >-
                Requests allowed this minute (the tighter of the key's and the
                workspace's).
              schema:
                type: integer
            X-RateLimit-Remaining:
              description: Requests left this minute.
              schema:
                type: integer
            X-RateLimit-Reset:
              description: When the minute resets, in Unix seconds.
              schema:
                type: integer
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/Proposal'
                  meta:
                    $ref: '#/components/schemas/Meta'
              example:
                data:
                  proposal_id: prop_eyJhIjoibGF1bmNoX3NlYXJjaCJ9.k3V9Q2xWm8
                  action: launch_search
                  expires_at: '2026-10-17T14:33:02.000Z'
                  cost:
                    class: shortlist_credit
                    line: Uses 1 shortlist credit.
                    shortlist_credits: 1
                  effect:
                    project_id: 6f1c2a0e-3b7d-4c1e-9a52-0d4e8b7c1a11
                    criteria:
                      title_variants:
                        - Plant Controller
                        - Controller
                      metro: Camden, NJ
                      geo_radius_mi: 40
                      years_experience:
                        min: 8
                        enforcement: hard
                      must_have:
                        - CPA
                    credits_remaining: 37
                    running: 1
                meta:
                  request_id: req_01JABCDEF
        '400':
          $ref: '#/components/responses/Error'
        '401':
          $ref: '#/components/responses/Error'
        '402':
          $ref: '#/components/responses/Error'
        '403':
          $ref: '#/components/responses/Error'
        '404':
          $ref: '#/components/responses/Error'
        '409':
          $ref: '#/components/responses/Error'
        '429':
          $ref: '#/components/responses/Error'
        '500':
          $ref: '#/components/responses/Error'
        '503':
          $ref: '#/components/responses/Error'
components:
  schemas:
    Proposal:
      type: object
      properties:
        proposal_id:
          type: string
        action:
          type: string
        expires_at:
          type: string
          format: date-time
        cost:
          type: object
          properties:
            class:
              type: string
              enum:
                - free
                - rescore
                - shortlist_credit
            line:
              type: string
            shortlist_credits:
              type: integer
        effect:
          type: object
          description: >-
            What the action would do: the before/after for a scoring change,
            capacity and credits for a search.
    Meta:
      type: object
      properties:
        request_id:
          type: string
        total:
          type: integer
          description: On lists that count everything that matched.
    Error:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - code
            - message
            - request_id
          properties:
            code:
              type: string
              description: 'Stable: every code is on the Errors page.'
            message:
              type: string
            details:
              type:
                - object
                - 'null'
              description: >-
                Structured specifics, when there are any (for example
                retry_after_seconds).
            request_id:
              type: string
        meta:
          $ref: '#/components/schemas/Meta'
      example:
        error:
          code: search_not_found
          message: No search with that id in this workspace.
          details: null
          request_id: req_01JABCDEF
        meta:
          request_id: req_01JABCDEF
  responses:
    Error:
      description: 'An error: one envelope everywhere. A 429 carries Retry-After.'
      headers:
        X-RateLimit-Limit:
          description: >-
            Requests allowed this minute (the tighter of the key's and the
            workspace's).
          schema:
            type: integer
        X-RateLimit-Remaining:
          description: Requests left this minute.
          schema:
            type: integer
        X-RateLimit-Reset:
          description: When the minute resets, in Unix seconds.
          schema:
            type: integer
        Retry-After:
          description: Seconds to wait (on 429 and 503).
          schema:
            type: integer
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    bearer:
      type: http
      scheme: bearer
      description: An API key from Settings → Usage → API (rvc_live_…).

````

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