openapi-directory-first
Use when working with any public API (Stripe, GitHub, Spotify, AWS, Twilio, Slack, Google, etc.) and needing accurate endpoint signatures, parameter types, auth schemes, or response schemas. Use BEFORE consulting training data, doc sites, Stack Overflow, or context7 to avoid outdated/stale API info.
Works with
---
name: openapi-directory-first
description: Use when working with any public API (Stripe, GitHub, Spotify, AWS, Twilio, Slack, Google, etc.) and needing accurate endpoint signatures, parameter types, auth schemes, or response schemas. Use BEFORE consulting training data, doc sites, Stack Overflow, or context7 to avoid outdated/stale API info.
license: MIT
---
# OpenAPI Directory First
## Overview
Always check the [APIs-guru/openapi-directory](https://github.com/APIs-guru/openapi-directory) for authoritative, machine-readable API specs before relying on training data or web searches. This directory contains 2500+ public API definitions in OpenAPI format, auto-updated weekly from original sources.
**Core rule:** Training data goes stale. OpenAPI specs are the source of truth.
## When to Use
- Writing code that calls any public REST API
- Looking up endpoint parameters, auth, request/response schemas
- Debugging API integration issues (wrong params, unexpected responses)
- Generating API client code or types
- Answering questions about how a public API works
## When NOT to Use
- Internal/private APIs (not in the directory)
- GraphQL APIs (directory is REST/OpenAPI only)
- When you already have the project's own OpenAPI spec locally
## The Workflow
```dot
digraph api_lookup {
"Need API info" -> "Check openapi-directory";
"Check openapi-directory" -> "Found?";
"Found" -> "Use the spec";
"Not found" -> "Fallback: doc site or context7";
"Use the spec" -> "Still need examples?";
"Still need examples?" -> "Yes: search web" [label="yes"];
"Still need examples?" -> "Done" [label="no"];
}
```
## How to Look Up
### Step 1: Find the API
Search the directory for the provider domain:
```bash
# List available APIs for a provider
curl -s "https://api.github.com/repos/APIs-guru/openapi-directory/contents/APIs/{provider.com}" | python3 -c "
import json,sys
data=json.load(sys.stdin)
for item in data:
print(f'{item[\"name\"]}')"
```
Common provider domains: `stripe.com`, `github.com`, `spotify.com`, `amazonaws.com`, `googleapis.com`, `microsoft.com`, `twilio.com`, `slack.com`, `shopify.com`, `paypal.com`, `sendgrid.com`, `notion.com`, `figma.com`
### Step 2: Pick the latest version
Providers often have multiple API versions. Use the most recent dated folder.
### Step 3: Fetch the spec
```
https://raw.githubusercontent.com/APIs-guru/openapi-directory/main/APIs/{provider.com}/{version}/openapi.yaml
```
Example — Stripe API:
```
https://raw.githubusercontent.com/APIs-guru/openapi-directory/main/APIs/stripe.com/2022-11-15/openapi.yaml
```
### Step 4: Extract what you need
The OpenAPI spec contains:
- **`paths/`** — All endpoints with methods, parameters, request bodies, responses
- **`components/schemas/`** — Data models with types and validation rules
- **`security/`** — Auth schemes (API key, OAuth, Bearer, etc.)
- **`servers/`** — Base URLs
### Quick Check: Does this API exist?
```bash
curl -s "https://api.apis.guru/v2/list.json" | python3 -c "
import json,sys
data=json.load(sys.stdin)
matches = [k for k in data if 'SEARCH_TERM' in k.lower()]
for m in matches:
versions = list(data[m]['versions'].keys())
print(f'{m}: {versions[-1]}')
"
```
## Common Mistakes
| Mistake | Fix |
|---------|-----|
| Guessing parameter types from memory | Read the actual schema from the spec |
| Using outdated endpoint paths | Check the latest version in the directory |
| Assuming auth scheme | Read `security` and `securitySchemes` from the spec |
| Skipping this step because "I know the API" | You don't. Specs change. Always check. |
| Only reading partial spec | Use the full file, not just endpoints you think you need |
## Key Facts
- **2500+ APIs** indexed with OpenAPI 2.0 and 3.x specs
- **Auto-updated weekly** from original sources via `x-origin` URLs
- **Free, no API key needed** — raw GitHub URLs just work
- Specs are **validated** before commit (80% of upstream specs have errors that get fixed)
- Provider naming: `{domain}:{api_name}` for multi-API providers (e.g., `googleapis.com:youtube`)More API Design skills
lark-event
larksuite/cli
Lark/Feishu real-time event listening / subscribing / consuming: stream events as NDJSON via `lark-cli event consume <EventKey>` (covers IM messages/reactions/chat changes, Approval status changes, Task updates, VC meeting started/joined/ended, Minutes generated, Whiteboard updated, etc.). Use for Lark bots, real-time message processing, long-running subscribers, streaming webhook/push handlers. Supports `--max-events` / `--timeout` bounded runs and a stderr ready-marker contract — designed for AI agents running as subprocesses.
lark-contact
larksuite/cli
飞书 / Lark 通讯录:按姓名 / 邮箱解析成 open_id,或按 open_id 反查姓名 / 部门 / 邮箱 / 联系方式 / 个人状态 / 签名,以及按关键词搜索当前用户可见的机器人 / 智能体(agent)。当用户提到一个名字要下一步发消息 / 排日程,或拿到 open_id 想查具体信息时使用。不负责部门树遍历、按部门列员工、组织架构图,这类需求走原生 OpenAPI。
lark-openapi-explorer
larksuite/cli
飞书/Lark 原生 OpenAPI 探索:从官方文档库中挖掘未经 CLI 封装的原生 OpenAPI 接口。当用户的需求无法被现有 lark-* skill 或 lark-cli 已注册命令满足,需要查找并调用原生飞书 OpenAPI 时使用。

