Generate comprehensive Postman collections and modern Python SDKs (1,018+ endpoints across 128 Canvas LMS resources) directly from the official Canvas API markdown documentation.
This project now generates production-ready Python SDKs with full type hints, async support, and automatic authentication:
from canvas_lms_api_client import AuthenticatedClient
from canvas_lms_api_client.api.courses import get_courses
# Initialize client
client = AuthenticatedClient(
base_url="https://yourschool.instructure.com/api/v1",
token="your-access-token"
)
# Sync usage
courses = get_courses.sync(client=client)
# Async usage
courses = await get_courses.asyncio(client=client)
# Clone and setup
git clone <repository-url>
cd canvas-api-postman-master
# Install dependencies
uv venv && uv pip install -e .
# Generate everything (docs → Postman → OpenAPI → Python SDK)
just generate-all
This creates:
output/canvas_api.postman_collection.json
- Postman collectionoutput/canvas_api.openapi.yaml
- OpenAPI 3.1 specificationsdk/
- Complete Python SDK with type hints
- Open Postman → Import → Upload Files
- Select
output/canvas_api.postman_collection.json
- Set environment variables:
Variable | Example Value |
---|---|
base_url |
https://yourschool.instructure.com |
canvas_token |
12345~abcdefg...789 |
- ✅ 1,018+ Canvas API endpoints organized by resource type
- ✅ OAuth2 Bearer authentication pre-configured
- ✅ Dynamic path variables (
:course_id
,:user_id
, etc.) - ✅ Query parameters with descriptions
- ✅ Request bodies for POST/PUT/PATCH operations
- ✅ OAuth scopes documented in request descriptions
- ✅ Modern Python SDK with full type hints and IDE autocomplete
- ✅ Async/sync support - use
asyncio()
orsync()
methods - ✅ Pydantic models for automatic serialization/deserialization
- ✅ Bearer token authentication built-in
- ✅ 234+ data schemas with validation
- ✅ Python 3.13+ support with latest language features
- ✅ OpenAPI 3.1 compliant specification
- ✅ JSON Schema validation for all request/response models
- ✅ Complete parameter documentation extracted from markdown
- ✅ OAuth2 security schemes properly defined
For detailed usage, development, and API reference, see the documentation.
# Core workflow
just generate-all # Complete pipeline: docs → Postman → OpenAPI → SDK
just fetch-docs # Download latest Canvas API docs
just collection # Generate Postman collection only
just openapi # Generate OpenAPI specification only
just sdk # Generate Python SDK only
just sdk-clean # Clean regenerate SDK
# Development
just test # Validate generated collection
just format-docs # Format markdown files
just docs-serve # Serve documentation locally