> ## 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.

# Read a shared shortlist

> Resolves a share token into its frozen shortlist. **No authentication** — the token is the credential, so treat share URLs as secrets.

The prompt behind the search is included so a recipient can see what was actually asked for. Each read increments the view counter. Responses are sent `Cache-Control: no-store`.



## OpenAPI

````yaml /openapi.json get /api/shares/{token}
openapi: 3.1.0
info:
  title: Revcenter API
  description: >-
    Search, enrich, and activate people and companies. Two authentication
    surfaces share one host: the bearer-token API under `/v1` for
    server-to-server and agent use, and the workspace-session API under `/api`
    that the Revcenter app itself runs on.
  version: '2026-08-12'
servers:
  - url: https://api.revcenter.ai
    description: Production
security:
  - bearerAuth: []
tags:
  - name: Search
    description: Web search, search runs, results, exports, and shareable shortlists.
  - name: People
    description: Person search, profile enrichment, and the workspace contact pool.
  - name: Companies
    description: Company search, company enrichment, and org-chart people.
  - name: Campaigns
    description: Plan, publish, and launch outbound sequences on Smartlead and HeyReach.
  - name: Account
    description: Health, usage totals, and cost events.
paths:
  /api/shares/{token}:
    get:
      tags:
        - Search
      summary: Read a shared shortlist
      description: >-
        Resolves a share token into its frozen shortlist. **No authentication**
        — the token is the credential, so treat share URLs as secrets.


        The prompt behind the search is included so a recipient can see what was
        actually asked for. Each read increments the view counter. Responses are
        sent `Cache-Control: no-store`.
      operationId: getShare
      parameters:
        - name: token
          in: path
          required: true
          description: The share token from the link.
          schema:
            type: string
      responses:
        '200':
          description: The shared shortlist.
          content:
            application/json:
              schema:
                type: object
                properties:
                  scan:
                    type: object
                    properties:
                      title:
                        type:
                          - string
                          - 'null'
                      sector:
                        type:
                          - string
                          - 'null'
                      rawInput:
                        type:
                          - string
                          - 'null'
                        description: The prompt the search ran on.
                      createdAt:
                        type: string
                        format: date-time
                  summary:
                    type: object
                    properties:
                      shared:
                        type: integer
                      qualifiedAvailable:
                        type: integer
                      minScore:
                        type: integer
                      selectionMode:
                        type: string
                        enum:
                          - top_n
                          - all_qualified
                          - manual
                      leadLimit:
                        type:
                          - integer
                          - 'null'
                  candidates:
                    type: array
                    description: >-
                      Public candidate records. Emails and phone numbers are
                      always null here.
                    items:
                      $ref: '#/components/schemas/PublicCandidate'
                  share:
                    type: object
                    properties:
                      createdAt:
                        type: string
                        format: date-time
                      expiresAt:
                        type:
                          - string
                          - 'null'
                        format: date-time
        '404':
          $ref: '#/components/responses/AppNotFound'
        '410':
          description: The share link expired.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppError'
              examples:
                expired:
                  value:
                    error: Share link expired
      security: []
components:
  schemas:
    PublicCandidate:
      type: object
      description: >-
        The redacted candidate shape used in shared shortlists. `email` and
        `phone` are always null.
      properties:
        rank:
          type:
            - integer
            - 'null'
        score:
          type:
            - number
            - 'null'
        candidate:
          $ref: '#/components/schemas/Candidate'
    AppError:
      type: object
      description: >-
        The error shape used by every `/api` endpoint. Flatter than the `/v1`
        shape, and `code` appears only where the UI branches on it.
      properties:
        error:
          type: string
        code:
          type: string
          examples:
            - search_unavailable
    Candidate:
      type: object
      properties:
        id:
          type: string
        firstName:
          type:
            - string
            - 'null'
        lastName:
          type:
            - string
            - 'null'
        roleTitle:
          type:
            - string
            - 'null'
        company:
          type:
            - string
            - 'null'
        metro:
          type:
            - string
            - 'null'
        profileUrl:
          type:
            - string
            - 'null'
          format: uri
        photoUrl:
          type:
            - string
            - 'null'
          format: uri
        headline:
          type:
            - string
            - 'null'
        email:
          type:
            - string
            - 'null'
          description: Populated only after contact enrichment.
        phone:
          type:
            - string
            - 'null'
          description: Populated only after contact enrichment.
        hydrated:
          type:
            - boolean
            - 'null'
          description: >-
            Whether the full profile was fetched, or only search-level data is
            known.
        signals:
          type: array
          items:
            type: object
            additionalProperties: true
  responses:
    AppNotFound:
      description: >-
        The record does not exist, or belongs to another workspace. The two are
        deliberately indistinguishable.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AppError'
          examples:
            notFound:
              value:
                error: Scan not found
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        A Revcenter API key: `Authorization: Bearer rvc_live_...`. Keys are
        scoped, rate limited per key, and metered per workspace.

````