# Substack Post Archive API Documentation

Retrieve a page of posts from a Substack publication archive, sorted by new or top. Each post carries the post ID, title, subtitle, slug, author, publication date (ISO 8601, UTC), like count, comment count and paywall flag. A valid empty archive is a successful response.

- **Documentation:** [https://scrappa.co/docs/substack-api/substack_posts](https://scrappa.co/docs/substack-api/substack_posts)
- **API group:** Substack API
- **Endpoint:** `GET https://scrappa.co/api/substack/posts`

## Authentication

Send your Scrappa API key in the `X-API-KEY` request header. Paid endpoints also support accountless x402 payments when called without an API key.

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `publication` | string | Yes | Substack publication subdomain. Example: slowboring. |
| `sort` | string | No | Sort order: new (newest first) or top (most liked first). Defaults to new. |
| `offset` | integer | No | Zero-based post offset. Defaults to 0. |
| `limit` | integer | No | Posts per page (1-50). Defaults to 12. |

## Example request

```bash
#!/bin/bash

curl -X GET \
    -H "x-api-key: YOUR_API_KEY_HERE" \
    "https://scrappa.co/api/substack/posts?publication=slowboring&sort=new&offset=0&limit=2"
```

## Example response

```json
{
    "success": true,
    "data": {
        "posts": [
            {
                "id": 219413798,
                "title": "Destroying the West in order to save it",
                "subtitle": "Our tradition is worth celebrating",
                "slug": "destroying-the-west-in-order-to-save",
                "author": "Matthew Yglesias",
                "date": "2026-10-13T10:02:01Z",
                "likes": 151,
                "comment_count": 102,
                "paywalled": false
            }
        ],
        "has_more": true
    },
    "meta": {
        "endpoint_family": "post_archive"
    }
}
```

## Errors

| Status | Error | Description |
| --- | --- | --- |
| 422 | Validation Error | A parameter is missing or invalid (publication, sort, offset or limit). This response is not billable. |
| 404 | Publication Not Found | The requested Substack publication was not found. This response is not billable. |
| 503 | Upstream Unavailable | The Substack archive could not be fetched. Failed requests are never billed; retry after a moment. |

## More Scrappa resources

- [API documentation](https://scrappa.co/docs)
- [Full LLM-readable API reference](https://scrappa.co/llms-full.txt)
- [OpenAPI specification](https://scrappa.co/docs/api.json)
- [Pricing](https://scrappa.co/pricing)
