# Qiita Developer Community API
> Articles, engagement and trending tech tags from Qiita (qiita.com), Japan's largest developer knowledge-sharing community, read keyless from its public v2 API. Qiita is where Japanese engineers post how-tos, deep-dives and notes, and where the community signals quality with LGTM ("looks good to me") likes and "stocks" (saves) — the Japanese counterpart to dev.to or Medium's engineering side, with its own metrics and its own tech-topic rankings. The articles endpoint searches and lists articles, each with its title, LGTM likes, stocks (saves), comment count, tags and author — filterable by keyword, tag and a minimum-stocks threshold so you can surface the popular pieces. The article endpoint returns one article in full by its id. The tags endpoint ranks Qiita's tech tags by how many articles and followers they have — the live map of what Japanese engineers care about (Python, AWS, React and the rest). This is the Qiita platform cut — a distinct social and developer platform, separate from dev.to, Medium and the other blogging and social feeds in the catalogue, with its own LGTM/stock engagement model. Likes are LGTM up-votes and stocks are saves/bookmarks — two distinct Qiita signals; follower and article counts are the real, live community numbers. Titles and tags are in Japanese (and English) as Qiita publishes them. Qiita rate-limits unauthenticated callers, so a longer protective cache fronts the upstream and stale data is served if the limit is hit. Keyless.

## Authentication
All requests require your oanor API key in the `x-oanor-key` header. Get one at https://www.oanor.com/developer/keys.

```bash
curl -H "x-oanor-key: oanor_live_…" "https://api.oanor.com/qiita-api/..."
```

## Pricing
- **Free** (Free) — 850 calls/Mo, 2 req/s
- **Starter** ($28/Mo) — 71,000 calls/Mo, 6 req/s
- **Pro** ($76/Mo) — 495,000 calls/Mo, 16 req/s
- **Scale** ($206/Mo) — 2,900,000 calls/Mo, 40 req/s

## Endpoints

### Articles

#### `GET /v1/articles` — Search/list articles with engagement

**Parameters:**
- `q` (query, optional, string) — Keyword Example: `react`
- `tag` (query, optional, string) — Qiita tag Example: `JavaScript`
- `min_stocks` (query, optional, string) — Only articles with more than this many saves Example: `50`
- `limit` (query, optional, string) — Max results (1-50) Example: `20`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/qiita-api/v1/articles?q=react&tag=JavaScript&min_stocks=50&limit=20"
```

**Response:**
```json
{
    "data": {
        "note": "Qiita articles matching the query — each with its LGTM likes, stocks (saves), comment count, tags, author and dates. Filter with q (a keyword), tag (a Qiita tag) and min_stocks (only articles with more than this many saves); with no filters it returns popular articles (over 100 stocks). likes are LGTM up-votes, stocks are saves/bookmarks — two distinct Qiita signals. Pass limit (1-50). Live, cached ~15m (Qiita rate-limits hard).",
        "count": 20,
        "query": "react tag:Python stocks:>50",
        "source": "Qiita public v2 API (qiita.com/api/v2/items), keyless",
        "articles": [
            {
                "id": "5dde0a7259d142d88551",
                "url": "https://qiita.com/okadada/items/5dde0a7259d142d88551",
                "tags": [
                    "Python",
                    "Go",
                    "API",
                    "Web開発",
                    "HTMX"
                ],
                "likes": 50,
                "title": "htmxとAPIで爆速Webアプリ開発 — ReactもNext.jsも要らない時代が来た？",
                "author": "okadada",
                "stocks": 51,
                "created": "2026-04-14T20:58:15+09:00",
                "updated": "2026-04-14T20:58:15+09:00",
                "comments": 0,
                "author_name": "carp okada"
            },
            {
                "id": "ec78502b3c20a2b4d3a5",
                "url": "https://qiita.com/newt0/items/ec78
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/comments` — The comments on an article

**Parameters:**
- `id` (query, required, string) — Qiita article id (hex) Example: `d945f5507f546bffa610`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/qiita-api/v1/comments?id=d945f5507f546bffa610"
```

**Response:**
```json
{
    "data": {
        "note": "The comments on a Qiita article, each with its author, markdown body and timestamps. Qiita comments carry no public score. Pass id (the article). Live, cached ~15m.",
        "count": 20,
        "source": "Qiita public v2 API (qiita.com/api/v2/items/{id}/comments), keyless",
        "comments": [
            {
                "id": "ba7b97a009bc2580d246",
                "body": "@Halpatine さん\n\nFBありがとうございます！\nhttps://www.w3schools.com/c/index.php\n↑こちらで学習できませんか？\n\nどのようなところで有料となっているのか教えていただけると助かります！\n",
                "author": "chi1180",
                "created": "2025-10-06T20:17:03+09:00",
                "updated": "2025-10-06T20:17:03+09:00",
                "author_name": null
            },
            {
                "id": "b673cf0c1469ca7cde7b",
                "body": "2. https://my-learning.w3schools.com/\n\nでC言語を学ぼうとしたのですが，有料でした．修正お願いします．\n",
                "author": "Halpatine",
                "created": "2025-10-06T13:37:15+09:00",
                "updated": "2025-10-06T13:37:15+09:00",
                "author_name": null
            },
            {
                "id": "950d972513c5d49fc9fb",
                "body": "Great walkthrough on Qiita explaining the topic in a concise, code-rich style—excellent resource for developers looking to
…(truncated, see openapi.json for full schema)
```

### Article

#### `GET /v1/article` — One article in full by id

**Parameters:**
- `id` (query, required, string) — Qiita article id (hex) Example: `d945f5507f546bffa610`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/qiita-api/v1/article?id=d945f5507f546bffa610"
```

**Response:**
```json
{
    "data": {
        "id": "06420caf41a34a910c53",
        "url": "https://qiita.com/ot12/items/06420caf41a34a910c53",
        "note": "One Qiita article in full: its LGTM likes, stocks (saves), comment count, tags, author, created/updated dates and body length in characters. likes are LGTM up-votes; stocks are saves. Live, cached ~15m.",
        "tags": [
            "Claude",
            "AIエージェント",
            "ClaudeCode"
        ],
        "likes": 787,
        "title": "Opus4.7の登場により、Claude Codeの開発者と公式が「これはもうやめろ」と言い始めた6つのこと",
        "author": "ot12",
        "source": "Qiita public v2 API (qiita.com/api/v2/items), keyless",
        "stocks": 624,
        "created": "2026-04-22T09:28:50+09:00",
        "updated": "2026-04-25T10:44:00+09:00",
        "comments": 2,
        "body_chars": 9180,
        "author_name": null
    },
    "meta": {
        "timestamp": "2026-06-13T04:42:08.299Z",
        "request_id": "f1a456ea-6ca3-4ac8-933e-276ea5cef8f8"
    },
    "status": "ok",
    "message": "Article retrieved successfully",
    "success": true
}
```

### Tags

#### `GET /v1/tags` — Tech tags ranked by article count

**Parameters:**
- `limit` (query, optional, string) — Max results (1-100) Example: `30`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/qiita-api/v1/tags?limit=30"
```

**Response:**
```json
{
    "data": {
        "note": "Qiita's tech tags ranked by article count — the live map of what Japan's engineers write about most, each with its number of articles and followers. Pass limit (1-100). Live, cached ~15m.",
        "tags": [
            {
                "tag": "Python",
                "rank": 1,
                "articles": 102448,
                "followers": 253454
            },
            {
                "tag": "JavaScript",
                "rank": 2,
                "articles": 64932,
                "followers": 208128
            },
            {
                "tag": "AWS",
                "rank": 3,
                "articles": 57381,
                "followers": 109012
            },
            {
                "tag": "初心者",
                "rank": 4,
                "articles": 51152,
                "followers": 148974
            },
            {
                "tag": "Ruby",
                "rank": 5,
                "articles": 43531,
                "followers": 72592
            },
            {
                "tag": "Rails",
                "rank": 6,
                "articles": 42420,
                "followers": 56237
            },
            {
                "tag": "PHP",
                "rank": 7,
                "articles": 31995,
                "followers": 89561
            },
            {
                "tag": "Docker",
                "rank": 8,
                "articles": 30928,
                "followers": 755
…(truncated, see openapi.json for full schema)
```

### Meta

#### `GET /v1/meta` — Service metadata

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/qiita-api/v1/meta"
```

**Response:**
```json
{
    "data": {
        "note": "articles takes q (keyword), tag (a Qiita tag), min_stocks (minimum saves) and limit (1-50); with no filters it returns popular articles (over 100 stocks). article takes id (a Qiita article id). tags takes limit (1-100). meta takes no parameters. likes are LGTM up-votes, stocks are saves/bookmarks — two distinct signals. Qiita rate-limits unauthenticated callers to 60/hour, so a ~15-minute cache fronts the upstream and stale data is served if the limit is hit.",
        "sample": {
            "top_tag": "Python",
            "followers": 253454
        },
        "source": "Qiita public v2 API (qiita.com/api/v2), keyless, live",
        "service": "qiita-api",
        "endpoints": {
            "GET /v1/meta": "This document.",
            "GET /v1/tags": "Tech tags ranked by article count (limit=30).",
            "GET /v1/article": "One article in full by id.",
            "GET /v1/articles": "Search/list articles (q=react, tag=JavaScript, min_stocks=50)."
        },
        "description": "Articles, engagement and trending tech tags from Qiita (qiita.com), Japan's largest developer knowledge-sharing community, keyless. The articles endpoint searches/lists articles (LGTM likes, stocks/saves, comments, tags, author) filterable by keyword, tag and minimum stocks; the article endpoint returns one article by id; the tags endpoint ranks Qiita's tech tags by articles and followers — what Japan's engineers care about. The Qiita platform cut —
…(truncated, see openapi.json for full schema)
```

### Users

#### `GET /v1/user` — A user profile: followers, articles, linked accounts

**Parameters:**
- `id` (query, required, string) — Qiita user id Example: `Qiita`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/qiita-api/v1/user?id=Qiita"
```

**Response:**
```json
{
    "data": {
        "id": "Qiita",
        "url": "https://qiita.com/Qiita",
        "name": "Qiita キータ",
        "note": "A Qiita user profile: followers, followees, how many articles they've published (articles) and their linked GitHub/Twitter, organisation and location where the user set them. Find user ids in any article's author field. Live, cached ~15m.",
        "github": "qiitan",
        "source": "Qiita public v2 API (qiita.com/api/v2/users), keyless",
        "twitter": "Qiita",
        "articles": 66,
        "location": "Qiitaの中",
        "followees": 2,
        "followers": 928134,
        "description": "Qiita公式アカウントです。Qiitaに関するお問い合わせに反応したり、お知らせなどを発信しています。",
        "organization": "Qiita",
        "profile_image": "https://s3-ap-northeast-1.amazonaws.com/qiita-image-store/0/88/ccf90b557a406157dbb9d2d7e543dae384dbb561/large.png?1575443439"
    },
    "meta": {
        "timestamp": "2026-06-13T13:47:50.954Z",
        "request_id": "fbfa07e6-6e7d-4e09-824d-9a2f904c0346"
    },
    "status": "ok",
    "message": "User retrieved successfully",
    "success": true
}
```

#### `GET /v1/user-articles` — The articles a user has published

**Parameters:**
- `id` (query, required, string) — Qiita user id Example: `Qiita`
- `limit` (query, optional, string) — Max results (1-50) Example: `20`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/qiita-api/v1/user-articles?id=Qiita&limit=20"
```

**Response:**
```json
{
    "data": {
        "note": "The articles published by a Qiita user, newest first, each with its LGTM likes, stocks (saves), comments and tags. Pass id (the user) and limit (1-50). Live, cached ~15m.",
        "user": "Qiita",
        "count": 20,
        "source": "Qiita public v2 API (qiita.com/api/v2/users/{id}/items), keyless",
        "articles": [
            {
                "id": "b1d30d9d70b0521fa12a",
                "url": "https://qiita.com/Qiita/items/b1d30d9d70b0521fa12a",
                "tags": [
                    "Qiita",
                    "アップデート"
                ],
                "likes": 3,
                "title": "Qiita アップデートサマリー - 2026年 5月",
                "author": "Qiita",
                "stocks": 0,
                "created": "2026-06-04T12:00:16+09:00",
                "updated": "2026-06-04T12:00:16+09:00",
                "comments": 0,
                "author_name": "Qiita キータ"
            },
            {
                "id": "4dedcbcd1e016ca63b29",
                "url": "https://qiita.com/Qiita/items/4dedcbcd1e016ca63b29",
                "tags": [
                    "Qiita",
                    "アップデートサマリー"
                ],
                "likes": 1,
                "title": "Qiita アップデートサマリー - 2026年4月",
                "author": "Qiita",
                "stocks": 0,
                "created": "2026-05-01T13:55:37+09:00",
                "u
…(truncated, see openapi.json for full schema)
```


---
Marketplace page: https://www.oanor.com/api/qiita-api
OpenAPI spec: https://www.oanor.com/api/qiita-api/openapi.json
