API 参考读取 API

列出仓库

列出这把 key 看得见的仓库及其命中原因。

GET/api/v1/repos
GET
/api/v1/repos

列出这把 key 可见的仓库,过滤器与订阅(§6.6)是同一套语义:判定按固定顺序短路求值,repoIds 非空时完全绕过其余规则。响应带上分类四轴,调用方可以自己验一遍「为什么这个仓库命中了」。

可见范围是「公开可见 + 这把 key 自己提交的」,不含任何用户的私有列表。

分页是 keyset(§3.7):cursor 是上一页 响应里的 nextCursor,坏的游标返回 400 而不是退回第一页——静默退回会让调用方 以为数据只有一页。total 是命中过滤器的总数,与 limit 无关。

Authorization

bearerAuth
AuthorizationBearer <token>

Authorization: Bearer <key>。key 由控制台自助签发,或管理员在 /dashboard 代签

In: header

Query Parameters

repoIds?string

显式白名单,逗号分隔。给了就完全覆盖其余过滤器。逗号分隔,如 V1StGXR8Z5jd

projectTypes?string

项目形态(projects.type)。逗号分隔,如 client,server,application,skill,persona

categoryCodes?string

运营分类(categories.code),与形态正交。逗号分隔,如 mcp-server

includePlatformProjects?boolean

是否纳入有未隐藏 project 行的仓库

includeUncurated?boolean

是否纳入还没有 project 行的候选仓库。缺省按条件推导:projectTypes / categoryCodes 全空时为 true,按类型过滤时为 false——所以「按形态订阅」默认拿不到未策展的仓库,想要更宽的范围要显式写 true(设计文档 §6.6 陷阱一)

includeOwnSubmissions?boolean

是否纳入这把 key 自己提交过的仓库。缺省 true

limit?integer

返回条数上限,缺省 50,最大 500

Range1 <= value <= 500
cursor?string

上一页响应里的 nextCursor

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/api/v1/repos"
{  "repos": [    {      "id": "string",      "fullName": "string",      "description": "string",      "repoUrl": "string",      "topics": [        "string"      ],      "languages": [        "string"      ],      "licenseSpdxId": "string",      "stars": 0,      "forks": 0,      "subscribersCount": 0,      "openIssuesCount": 0,      "defaultBranch": "string",      "archived": true,      "createdAt": "2019-08-24T14:15:22Z",      "pushedAt": "2019-08-24T14:15:22Z",      "lastCommit": "2019-08-24T14:15:22Z",      "classification": {        "projectTypes": [          "client"        ],        "categoryCode": "string",        "categoryReviewed": true,        "isPlatformProject": true,        "platformStatus": "pending",        "tags": [          "string"        ]      },      "projectCount": 0    }  ],  "nextCursor": "string",  "total": 0}