# Medium Tag Feed API Documentation

Retrieve the latest public posts for one Medium tag or topic: for each post the title, url, lock state, clap count, reading time in whole minutes (at least 1), publish date (ISO 8601, UTC), creator, collection, subtitle and response count. Page with the after cursor from the previous response next_after field. A valid empty tag feed is a successful response.

- **Documentation:** [https://scrappa.co/docs/medium-api/medium_tag](https://scrappa.co/docs/medium-api/medium_tag)
- **API group:** Medium API
- **Endpoint:** `GET https://scrappa.co/api/medium/tag`

## 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 |
| --- | --- | --- | --- |
| `tag` | string | Yes | Medium tag slug, lowercase letters, numbers and hyphens. Example: python. |
| `limit` | integer | No | Posts per page, 1 to 50. Defaults to 20. |
| `after` | string | No | Relay cursor from the previous response next_after field. Omit for the first page. |

## Example request

```bash
#!/bin/bash

curl -X GET \
    -H "x-api-key: YOUR_API_KEY_HERE" \
    "https://scrappa.co/api/medium/tag?tag=python"
```

## Example response

```json
{
    "success": true,
    "data": {
        "tag": "python",
        "posts": [
            {
                "id": "d575512d9ecf",
                "title": "The Quiet Strategy: What Happens When You Only Buy the S&P 500\u2019s Worst Days",
                "url": "https://medium.com/@Kryptera/the-quiet-strategy-what-happens-when-you-only-buy-the-s-p-500s-worst-days-d575512d9ecf",
                "is_locked": true,
                "clap_count": 0,
                "reading_time": 6,
                "published_at": "2026-10-13T12:01:02Z",
                "creator": {
                    "id": "74a837c27e96",
                    "name": "Kryptera",
                    "username": "Kryptera"
                },
                "subtitle": "A rule-based backtest of a 2-period RSI dip buyer on SPY, 1993\u20132026.",
                "responses_count": 0
            }
        ],
        "has_more": true,
        "next_after": "{\"column\":{\"S\":\"2848a2dc7efb\"},\"postPublishedAt\":{\"N\":\"1791882133009\"},\"tagSlug\":{\"S\":\"python\"}}"
    },
    "meta": {
        "endpoint_family": "tag_feed",
        "billable": true
    }
}
```

## Errors

| Status | Error | Description |
| --- | --- | --- |
| 422 | Validation Error | A required query parameter is missing or invalid. This response is not billable. |
| 404 | Resource Not Found | The requested Medium resource does not exist. This response is not billable. |
| 502 | Invalid Source Response | The upstream answered with a shape that no longer matches the documented contract. This response is not billable. |
| 503 | Service Unavailable | The upstream service is temporarily unavailable. Please retry shortly. |

## 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)
