---
title: "Get a Substack post"
method: GET
path: "/v1/substack/post"
tags: ["Substack"]
---

# Get a Substack post

`GET /v1/substack/post`

## Request

- Base URL: `https://api.scrapeatlas.com`
- URL: `https://api.scrapeatlas.com/v1/substack/post`
- Auth: API key in header `x-api-key`

Retrieve a post’s title, subtitle, published article content, authors, tags, engagement, audio and video metadata. Each successful request costs 1 account credit, including partial results. Failed requests cost 0 credits.

## Query parameters

- `url` string, required

## Response `200`

Inspect the response status and failure or coverage fields.

- union
  - object
    - `requestId` string, uuid, required
    - `accounting` object, required
      - `upstreamRequests` integer, required
      - `responseBytes` integer, required
      - `durationMs` number, required
    - `success` true, required
    - `status` 'success' | 'partial', required
    - `sourceUrl` string, uri, required
    - `fetchedAt` string, date-time, required
    - `coverage` object, required
      - `source` 'public_web', required
      - `complete` boolean, required
      - `warnings` string[], required
      - `order` 'source_order' | 'ranked'
    - `post` object, required
      - `id` integer, required
      - `publication_id` integer, required
      - `slug` string, required
      - `title` string, required
      - `subtitle` string, nullable, required
      - `type` string, nullable, required
      - `audience` string, nullable, required
      - `canonical_url` string, nullable, required
      - `post_date` string, nullable, required
      - `updated_at` string, nullable, required
      - `description` string, nullable, required
      - `body_html` string, nullable, required
      - `truncated_body_text` string, nullable, required
      - `cover_image` string, nullable, required
      - `wordcount` integer, nullable, required
      - `language` string, nullable, required
      - `reaction_count` integer, nullable, required
      - `reactions` object, required
      - `restacks` integer, nullable, required
      - `comment_count` integer, nullable, required
      - `child_comment_count` integer, nullable, required
      - `podcast_url` string, nullable, required
      - `podcast_duration` number, nullable, required
      - `podcast_art_url` string, nullable, required
      - `video_upload_id` string, nullable, required
      - `podcast_upload_id` string, nullable, required
      - `voiceover_upload_id` string, nullable, required
      - `write_comment_permissions` string, nullable, required
      - `section_id` integer, nullable, required
      - `section_name` string, nullable, required
      - `section_slug` string, nullable, required
      - `previous_post_slug` string, nullable, required
      - `next_post_slug` string, nullable, required
      - `is_geoblocked` boolean, nullable, required
      - `is_published` boolean, nullable, required
      - `publishedBylines` object[], required
        - `id` integer, required
        - `name` string, nullable, required
        - `handle` string, nullable, required
        - `photo_url` string, nullable, required
        - `bio` string, nullable, required
        - `twitter_screen_name` string, nullable, required
        - `is_guest` boolean, nullable, required
        - `bestseller_tier` integer, nullable, required
      - `postTags` object[], required
        - `id` union, required
          - string
          - integer
        - `name` string, nullable, required
        - `slug` string, nullable, required
      - `media` object[], required
        - `type` 'video' | 'podcast' | 'podcast_preview' | 'voiceover' | 'audio', required
        - `url` string, nullable, required
        - `duration` number, nullable, required
        - `thumbnail` string, nullable, required
        - `uploadId` string, nullable, required
        - `name` string, nullable, required
        - `media_type` string, nullable, required
        - `state` string, nullable, required
        - `created_at` string, nullable, required
        - `uploaded_at` string, nullable, required
        - `width` integer, nullable, required
        - `height` integer, nullable, required
        - `thumbnail_id` integer, nullable, required
        - `is_mux` boolean, nullable, required
        - `mux_playback_id` string, nullable, required
        - `mux_preview_playback_id` string, nullable, required
        - `extractedAudioUploadId` string, nullable, required
        - `transcription` object, nullable, required
          - `transcript_url` string, nullable, required
          - `cdn_url` string, nullable, required
          - `cdn_unaligned_url` string, nullable, required
          - `signed_captions` object[], required
            - `language` string, nullable, required
            - `url` string, nullable, required
            - `original` boolean, nullable, required
  - object
    - `requestId` string, uuid, required
    - `accounting` object, required
      - `upstreamRequests` integer, required
      - `responseBytes` integer, required
      - `durationMs` number, required
    - `success` false, required
    - `status` 'failed' | 'challenged', required
    - `failure` object, required
      - `code` 'invalid_request' | 'unauthorized' | 'not_found' | 'restricted_page' | 'upstream_challenged' | 'upstream_rate_limited' | 'upstream_error' | 'unsupported_page' | 'response_too_large' | 'unsafe_redirect' | 'request_limit' | 'timeout' | 'busy' | 'payload_too_complex', required
      - `message` string, required

## Other responses

- `400`: Request could not complete; inspect error or failure.code.
- `401`: Request could not complete; inspect error or failure.code.
- `402`: Request could not complete; inspect error or failure.code.
- `403`: Request could not complete; inspect error or failure.code.
- `404`: Request could not complete; inspect error or failure.code.
- `408`: Request could not complete; inspect error or failure.code.
- `413`: Request could not complete; inspect error or failure.code.
- `429`: Request could not complete; inspect error or failure.code.
- `500`: Request could not complete; inspect error or failure.code.
- `502`: Request could not complete; inspect error or failure.code.
- `503`: Request could not complete; inspect error or failure.code.
- `504`: Request could not complete; inspect error or failure.code.

---

[API](https://skmtc.dev/scrapeatlas/apis/scrapeatlas-api.md) · [All operations](https://skmtc.dev/scrapeatlas/apis/scrapeatlas-api/llms.txt) · [OpenAPI document](https://skmtc.dev/scrapeatlas/apis/scrapeatlas-api/revisions/9ba049316894?raw)
