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

# Get a piece of content

> Retrieve one piece of drafted content with its body. Read it before editing so you rewrite what's actually saved — the draft may have changed in the app.



## OpenAPI

````yaml /paragraph-api/openapi.json get /v1/content/{contentId}
openapi: 3.1.0
info:
  title: Paragraph API
  version: 1.0.0
  description: >-
    Public API for interacting with Paragraph publications, posts, users, and
    coined writing.


    ## Rate Limiting

    API requests are rate-limited to ensure fair usage. Contact
    support@paragraph.com for higher limits.


    ## Pagination

    List endpoints support cursor-based pagination using `cursor` and `limit`
    parameters.
  contact:
    name: Paragraph Support
    email: support@paragraph.com
    url: https://paragraph.com/support
  license:
    name: MIT
    url: https://opensource.org/licenses/MIT
servers:
  - url: https://public.api.paragraph.com/api
    description: Production server
security:
  - {}
tags:
  - name: publications
    description: Operations related to publications
  - name: posts
    description: Operations related to posts and content
  - name: users
    description: Operations related to users and authors
  - name: coins
    description: Operations related to tokenized content
  - name: subscribers
    description: Operations related to subscriber management (requires API key)
paths:
  /v1/content/{contentId}:
    get:
      tags:
        - content
      summary: Get a piece of content
      description: >-
        Retrieve one piece of drafted content with its body. Read it before
        editing so you rewrite what's actually saved — the draft may have
        changed in the app.
      operationId: getContentById
      parameters:
        - name: contentId
          in: path
          required: true
          schema:
            type: string
          description: Unique identifier of the content
      responses:
        '200':
          description: Content retrieved successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    description: Unique identifier for this piece of content
                  kind:
                    type: string
                    description: >-
                      What this piece is: `tweet`, `linkedin`, `newsletter`, or
                      `x_article`
                  title:
                    type: string
                    description: What this piece is called in your library
                  excerpt:
                    type: string
                    description: First readable line of the body, for listing views
                  status:
                    type: string
                    enum:
                      - draft
                      - published
                      - archived
                    description: >-
                      Whether this piece has been delivered, is still a draft,
                      or was archived
                  scheduled:
                    type: boolean
                    description: Whether a scheduled send is queued against this piece
                  lockedReason:
                    type:
                      - string
                      - 'null'
                    description: >-
                      Why this piece can't be edited right now, or null when it
                      can. A queued or in-flight send locks the words, because
                      they go out exactly as written.
                  publishedAt:
                    type:
                      - string
                      - 'null'
                    description: ISO 8601 timestamp of the first delivery, or null
                  url:
                    type:
                      - string
                      - 'null'
                    description: >-
                      Where this piece went live, from the same delivery
                      `publishedAt` came from. Null when it hasn't been
                      delivered, and null by design for a channel that publishes
                      no page: a custom email renders into the message itself,
                      so there is no address to link to. Never guessed — a
                      delivery whose id isn't shaped like its channel reports
                      null rather than a link that would 404.
                  archivedAt:
                    type:
                      - string
                      - 'null'
                    description: >-
                      ISO 8601 timestamp of when this piece was archived, or
                      null
                  createdAt:
                    type: string
                    description: ISO 8601 timestamp of creation
                  updatedAt:
                    type: string
                    description: ISO 8601 timestamp of the last change
                  body:
                    type: object
                    additionalProperties: {}
                    description: The artifact itself, in the shape its kind uses
                required:
                  - id
                  - kind
                  - title
                  - excerpt
                  - status
                  - scheduled
                  - lockedReason
                  - publishedAt
                  - url
                  - archivedAt
                  - createdAt
                  - updatedAt
                  - body
        '401':
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    enum:
                      - false
                    description: Always false for error responses
                  msg:
                    type: string
                    description: Human-readable error message
                required:
                  - success
                  - msg
        '404':
          description: Content not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    enum:
                      - false
                    description: Always false for error responses
                  msg:
                    type: string
                    description: Human-readable error message
                required:
                  - success
                  - msg
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    enum:
                      - false
                    description: Always false for error responses
                  msg:
                    type: string
                    description: Human-readable error message
                required:
                  - success
                  - msg
      security:
        - apiKey: []
      x-codeSamples:
        - lang: typescript
          label: Get a piece of content
          source: >-
            import { ParagraphAPI } from "@paragraph-com/sdk"


            const api = new ParagraphAPI({ apiKey: "your-api-key" })

            const draft = await api.content.get({ id:
            "7f3a2c18-5b9e-4c21-9a0d-8e6b1f4d2a55" })
        - lang: bash
          label: Get a piece of content using curl
          source: >-
            curl
            "https://public.api.paragraph.com/api/v1/content/7f3a2c18-5b9e-4c21-9a0d-8e6b1f4d2a55"
            \
              -H "Authorization: Bearer your-api-key"
components:
  securitySchemes:
    apiKey:
      type: http
      scheme: bearer
      description: >-
        API key for authenticating protected endpoints. Pass as Bearer token in
        Authorization header.

````