| name | api-sdk-generator |
| description | Generates client SDK code, API wrapper libraries, request/response models, and language-specific usage patterns for any REST API. Use whenever the user asks to "generate an SDK", "write a client library", "create API wrappers", "generate TypeScript types from my API", "write a Python... |
| risk | unknown |
| source | https://github.com/LambdaTest/agent-skills/tree/main/api-skill/api-sdk-generator |
| source_repo | LambdaTest/agent-skills |
| source_type | community |
| date_added | "2026-07-01T00:00:00.000Z" |
| license | MIT |
| license_source | https://github.com/LambdaTest/agent-skills/blob/main/LICENSE |
API SDK & Codegen Skill
When to Use
Use this skill when you need generates client SDK code, API wrapper libraries, request/response models, and language-specific usage patterns for any REST API. Use whenever the user asks to "generate an SDK", "write a client library", "create API wrappers", "generate TypeScript types from my API", "write a Python...
Generate production-quality client libraries and SDK code for any API in any language.
SDK Structure (any language)
sdk/
├── client.{ext} — main client class with base URL, auth, retry
├── resources/
│ ├── users.{ext} — one file per API resource
│ ├── orders.{ext}
│ └── ...
├── models/
│ ├── user.{ext} — request/response data models
│ └── ...
├── errors.{ext} — typed error classes
└── utils/
├── retry.{ext}
└── pagination.{ext}
Base Client Pattern
Python
import httpx
from typing import Optional
import time
class APIClient:
def __init__(self, api_key: str, base_url: str = "https://api.example.com/v1"):
self.base_url = base_url
self._headers = {
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json",
"User-Agent": "example-sdk-python/1.0.0"
}
self._client = httpx.Client(timeout=30.0)
def _request(self, method: str, path: str, **kwargs) -> dict:
url = f"{self.base_url}"
attempt ():
:
resp = ._client.request(method, url, headers=._headers, **kwargs)
resp.status_code == :
retry_after = (resp.headers.get(, ** attempt))
time.sleep(retry_after)
resp.raise_for_status()
resp.json()
httpx.HTTPStatusError e:
APIError(e.response.status_code, e.response.json()) e
RateLimitError()