# Medium User Profile and Posts API Documentation

Retrieve the public profile of a Medium author with a page of their latest posts: name, bio, follower count, and for each post the title, url, lock state, clap count, reading time in whole minutes (at least 1), publish date (ISO 8601, UTC), response count, tags, creator and collection. A valid profile with zero followers or an empty post list is still a successful response.

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

## 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 |
| --- | --- | --- | --- |
| `username` | string | Yes | Medium username, e.g. medium. Example: medium. |
| `limit` | integer | No | Posts per page, 1 to 50. Defaults to 10. |
| `from` | string | No | Cursor from the previous response next_from 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/user?username=medium"
```

## Example response

```json
{
    "success": true,
    "data": {
        "user": {
            "id": "504c7870fdb6",
            "name": "Medium",
            "username": "medium",
            "bio": "Everyone\u2019s stories and ideas",
            "follower_count": 1526356,
            "following_count": 3
        },
        "posts": [
            {
                "id": "62edea66ffa4",
                "title": "Updating Our Rules \u2014 June 2023",
                "url": "https://medium.com/blog/updating-our-rules-june-2023-62edea66ffa4",
                "is_locked": false,
                "clap_count": 5111,
                "reading_time": 5,
                "published_at": "2023-06-28T18:01:22Z",
                "responses_count": 69,
                "tags": [
                    "medium",
                    "rules"
                ],
                "creator": {
                    "id": "504c7870fdb6",
                    "username": "Medium"
                },
                "collection": {
                    "id": "15f753907972",
                    "name": "The Medium Blog",
                    "slug": "blog"
                }
            }
        ],
        "has_more": true,
        "next_from": "L1531852667385"
    },
    "meta": {
        "endpoint_family": "user_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)
