# medium/medium-api-docs architecture

> Architecture diagram of the GitHub repository medium/medium-api-docs, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/medium/medium-api-docs
- Repository: https://github.com/medium/medium-api-docs

## Overview

This repository is API documentation, not an API implementation. Its documented user-to-result workflow is to obtain an access token—preferably a self-issued integration token, or through browser OAuth for existing integrations—and use it for Medium API requests. The README identifies user profiles, publications, posts, and images as resource areas. The tree contains only README.md, so these nodes represent documented concepts; no implementation internals or resource-level request wiring can be verified.

Main entry points: [`README.md`](https://github.com/medium/medium-api-docs/blob/master/README.md) (API guide)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_auth["Authentication"]
  node_oauth["Browser OAuth<br/>[README.md]"]
  node_selftoken["Self-issued token<br/>[README.md]"]
  node_tokenendpoint["Token endpoint<br/>[README.md]"]
  node_accesstoken["Access token<br/>[README.md]"]
end

subgraph group_resources["API resources"]
  node_users["User profiles<br/>[README.md]"]
  node_publications["Publications<br/>[README.md]"]
  node_posts["Posts<br/>[README.md]"]
  node_images["Images<br/>[README.md]"]
end

node_developer(("Integration developer"))
node_guide["API guide<br/>[README.md]"]
node_mediumapi{{"Medium API"}}

node_guide -->|"documents"| node_oauth
node_guide -->|"documents"| node_selftoken
node_guide -->|"documents"| node_users
node_guide -->|"documents"| node_publications
node_guide -->|"documents"| node_posts
node_guide -->|"documents"| node_images
node_developer -->|"authorizes via"| node_oauth
node_oauth -->|"exchanges code"| node_tokenendpoint
node_developer -->|"generates token"| node_selftoken
node_tokenendpoint -->|"returns token"| node_accesstoken
node_selftoken -->|"provides token"| node_accesstoken
node_developer -->|"sends authenticated requests"| node_mediumapi
node_mediumapi -->|"serves resource"| node_users
node_mediumapi -->|"serves resource"| node_publications
node_mediumapi -->|"serves resource"| node_posts
node_mediumapi -->|"serves resource"| node_images
node_accesstoken -->|"authenticates requests"| node_mediumapi

click node_guide "https://github.com/medium/medium-api-docs/blob/master/README.md"
click node_oauth "https://github.com/medium/medium-api-docs/blob/master/README.md"
click node_selftoken "https://github.com/medium/medium-api-docs/blob/master/README.md"
click node_tokenendpoint "https://github.com/medium/medium-api-docs/blob/master/README.md"
click node_accesstoken "https://github.com/medium/medium-api-docs/blob/master/README.md"
click node_users "https://github.com/medium/medium-api-docs/blob/master/README.md"
click node_publications "https://github.com/medium/medium-api-docs/blob/master/README.md"
click node_posts "https://github.com/medium/medium-api-docs/blob/master/README.md"
click node_images "https://github.com/medium/medium-api-docs/blob/master/README.md"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_oauth,node_selftoken,node_tokenendpoint,node_accesstoken toneBlue
class node_users,node_publications,node_posts,node_images toneAmber
class node_developer toneIndigo
class node_guide,node_mediumapi toneMint
```

## Components

### Authentication

- [Browser OAuth](https://github.com/medium/medium-api-docs/blob/master/README.md): `README.md`
- [Self-issued token](https://github.com/medium/medium-api-docs/blob/master/README.md): `README.md`
- [Token endpoint](https://github.com/medium/medium-api-docs/blob/master/README.md): `README.md`
- [Access token](https://github.com/medium/medium-api-docs/blob/master/README.md): `README.md`

### API resources

- [User profiles](https://github.com/medium/medium-api-docs/blob/master/README.md): `README.md`
- [Publications](https://github.com/medium/medium-api-docs/blob/master/README.md): `README.md`
- [Posts](https://github.com/medium/medium-api-docs/blob/master/README.md): `README.md`
- [Images](https://github.com/medium/medium-api-docs/blob/master/README.md): `README.md`

### Other components

- **Integration developer**
- [API guide](https://github.com/medium/medium-api-docs/blob/master/README.md): `README.md`
- **Medium API**

## Connections

- API guide → Browser OAuth: documents
- API guide → Self-issued token: documents
- API guide → User profiles: documents
- API guide → Publications: documents
- API guide → Posts: documents
- API guide → Images: documents
- Integration developer → Browser OAuth: authorizes via
- Browser OAuth → Token endpoint: exchanges code
- Integration developer → Self-issued token: generates token
- Token endpoint → Access token: returns token
- Self-issued token → Access token: provides token
- Integration developer → Medium API: sends authenticated requests
- Medium API → User profiles: serves resource
- Medium API → Publications: serves resource
- Medium API → Posts: serves resource
- Medium API → Images: serves resource
- Access token → Medium API: authenticates requests
