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

# Get full text

> Read the full text of up to 20 open-access papers in one request. Each paper comes back as Markdown, split into sections.

**Which papers:** pass `paper_ids` (the `paper_id` on search or Thread results), `dois`, or both. 1 to 20 in total.

**Each paper's `status`:**
- `available`: the full text is in the response.
- `blocked`: Consensus can't return this paper's text. It isn't open access, it was retracted, or the copy Consensus holds isn't the open-access version.
- `no_full_text`: Consensus has no text for this paper.
- `not_found`: no paper matches that id or DOI.

**Cost:** 1 credit per `available` paper. Every other status is not charged. Reading a paper again within 24 hours of being charged for it is also free; `free_reread_until` tells you until when.

**Access:** paid plans only. A `403` means full text isn't available to your key.

**Rate limit:** 1 request per second.



## OpenAPI

````yaml /openapi.json get /v1/papers/full_text
openapi: 3.1.0
info:
  title: Consensus API
  description: >-
    Search usage is billed in calls: one call per 100 papers returned, rounded
    up, with a minimum of 1 call per request. Usage counts against your plan's
    included monthly calls. Free plans include 30 calls per month, Pro and Teams
    plans include 500, and Deep plans include 2,000. Paid plans with an active
    metered API subscription may continue past the included limit; additional
    calls are billed at $0.05 per call. Enterprise API keys have unlimited
    access.
  version: '1.0'
servers:
  - url: https://api.consensus.app
security: []
paths:
  /v1/papers/full_text:
    get:
      summary: Get full text
      description: >-
        Read the full text of up to 20 open-access papers in one request. Each
        paper comes back as Markdown, split into sections.


        **Which papers:** pass `paper_ids` (the `paper_id` on search or Thread
        results), `dois`, or both. 1 to 20 in total.


        **Each paper's `status`:**

        - `available`: the full text is in the response.

        - `blocked`: Consensus can't return this paper's text. It isn't open
        access, it was retracted, or the copy Consensus holds isn't the
        open-access version.

        - `no_full_text`: Consensus has no text for this paper.

        - `not_found`: no paper matches that id or DOI.


        **Cost:** 1 credit per `available` paper. Every other status is not
        charged. Reading a paper again within 24 hours of being charged for it
        is also free; `free_reread_until` tells you until when.


        **Access:** paid plans only. A `403` means full text isn't available to
        your key.


        **Rate limit:** 1 request per second.
      operationId: v1_get_papers_full_text
      parameters:
        - name: paper_ids
          in: query
          required: false
          schema:
            type: array
            items:
              type: string
            description: >-
              Paper ids from search or Thread results (each result's
              `paper_id`). Repeat the parameter for several:
              `?paper_ids=A&paper_ids=B`.
            title: Paper Ids
          description: >-
            Paper ids from search or Thread results (each result's `paper_id`).
            Repeat the parameter for several: `?paper_ids=A&paper_ids=B`.
        - name: dois
          in: query
          required: false
          schema:
            type: array
            items:
              type: string
            description: >-
              DOIs, with or without a `https://doi.org/` or `doi:` prefix.
              Repeat the parameter for several.
            title: Dois
          description: >-
            DOIs, with or without a `https://doi.org/` or `doi:` prefix. Repeat
            the parameter for several.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaperFullTextResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - XApiKeyHeader: []
components:
  schemas:
    PaperFullTextResponse:
      properties:
        results:
          items:
            $ref: '#/components/schemas/PaperFullTextResult'
          type: array
          title: Results
          description: >-
            One result per requested item: every `paper_ids` value in order,
            then every `dois` value in order. A repeated item gets a result each
            time.
        credits_charged:
          type: integer
          title: Credits Charged
          description: >-
            The credits this request is priced at: one per available paper,
            counting a paper once however many items name it. A paper already
            charged to you in the last 24 hours costs nothing. The charge
            settles after the response, so the usage it counts can be lower: a
            request that crosses your included allowance is counted only up to
            it, and a charge that fails counts nothing.
      type: object
      required:
        - results
        - credits_charged
      title: PaperFullTextResponse
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    PaperFullTextResult:
      properties:
        paper_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Paper Id
          description: >-
            The paper id as requested, or for a DOI the id of the paper that
            holds it. Omitted only for a DOI that names no Consensus paper.
        doi:
          anyOf:
            - type: string
            - type: 'null'
          title: Doi
          description: >-
            The DOI as requested, lowercased and without its URL or `doi:`
            prefix. DOI items only.
        status:
          type: string
          enum:
            - available
            - blocked
            - not_found
            - no_full_text
          title: Status
          description: >-
            `available`: the paper is open access and its complete text is
            returned. `blocked`: the paper's text is not returned because the
            paper is not open access, the copy Consensus holds is not its
            open-access copy, or it is retracted, so `open_access_status` can
            still be `gold` or `green`. `not_found`: no Consensus paper has this
            id or DOI. `no_full_text`: the paper is open access, but Consensus
            holds no text for it. Only `available` papers are charged.
        free_reread_until:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Free Reread Until
          description: >-
            Until when requesting this paper again, by any of its ids or its
            DOI, is expected to cost nothing (ISO 8601, UTC). Once a paper has
            been charged to you, it is normally not charged again for 24 hours,
            so this is normally 24 hours after the request that was charged for
            it. Best effort: a reread before this time can still be charged, for
            example when that charge did not complete. Requests for the same
            paper sent before that charge completes are each charged. Available
            papers only; omitted when no free reread is expected.
        open_access_status:
          anyOf:
            - type: string
            - type: 'null'
          title: Open Access Status
          description: >-
            The paper's open-access status: `diamond`, `gold`, `green`,
            `hybrid`, `bronze` or `closed`.
        markdown:
          anyOf:
            - type: string
            - type: 'null'
          title: Markdown
          description: The paper's complete text as Markdown. Available papers only.
        sections:
          anyOf:
            - items:
                $ref: '#/components/schemas/FullTextSection'
              type: array
            - type: 'null'
          title: Sections
          description: The sections of `markdown`, in order.
        total_chars:
          anyOf:
            - type: integer
            - type: 'null'
          title: Total Chars
          description: Length of `markdown` in characters.
      type: object
      required:
        - status
      title: PaperFullTextResult
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
    FullTextSection:
      properties:
        title:
          type: string
          title: Title
          description: The section heading.
        offset:
          type: integer
          title: Offset
          description: Character offset of the section's heading in `markdown`.
      type: object
      required:
        - title
        - offset
      title: FullTextSection
  securitySchemes:
    XApiKeyHeader:
      type: apiKey
      in: header
      name: x-api-key

````

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