# Substack Post Comments API Documentation

Retrieve the public comment thread of a Substack post: comment ID, author, date (ISO 8601, UTC), text and like count. Replies are nested under children and carry the parent_id of their parent comment when the upstream thread provides them. The upstream returns the complete thread in one response, so has_more is always false. Very large threads are capped and the cut count is reported as comments_cut.

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

## 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. |
| `post_id` | string | Yes | Post ID from the archive or post detail. Example: 219413798. |

## Example request

```bash
#!/bin/bash

curl -X GET \
    -H "x-api-key: YOUR_API_KEY_HERE" \
    "https://scrappa.co/api/substack/comments?publication=slowboring&post_id=219413798"
```

## Example response

```json
{
    "success": true,
    "data": {
        "comments": [
            {
                "id": 359889334,
                "author": "Comment author",
                "date": "2026-10-13T10:15:00Z",
                "text": "Comment text...",
                "likes": 3,
                "children": [
                    {
                        "id": 359890001,
                        "parent_id": 359889334,
                        "author": "Reply author",
                        "date": "2026-10-13T13:02:44Z",
                        "text": "Reply text...",
                        "likes": 1
                    }
                ]
            }
        ],
        "comments_cut": 0,
        "has_more": false
    },
    "meta": {
        "endpoint_family": "post_comments"
    }
}
```

## Errors

| Status | Error | Description |
| --- | --- | --- |
| 422 | Validation Error | The publication or post_id parameter is missing or invalid. This response is not billable. |
| 404 | Post Not Found | The requested Substack post was not found. This response is not billable. |
| 503 | Upstream Unavailable | The Substack comments 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)
