Idiomatic client libraries for the ClassFlow scheduling API — TypeScript, Python, Go and Java.
Website · API Documentation · Get an API Key · 中文
These are the official, MIT-licensed client libraries for the ClassFlow scheduling engine. They wrap https://api.classflowapi.com with idiomatic, ergonomic bindings in your language of choice — async-friendly, typed where the language supports it, and thin enough that you can read every line.
| Language | Directory | Package | Status | Min. Version |
|---|---|---|---|---|
| TypeScript / Node.js | typescript/ |
@classflow-api/sdk |
Beta | Node 18+ |
| Python | python/ |
classflow (PyPI) |
Beta | 3.9+ |
| Go | go/ |
github.com/classflow-api/sdks/go |
Alpha | 1.21+ |
| Java | java/ |
com.classflowapi:classflow-sdk |
Alpha | 11+ |
Need a language we don't ship? Open an issue — the API is plain HTTP/JSON and easy to wrap.
npm install @classflow-api/sdkimport { ClassFlow } from '@classflow-api/sdk';
const cf = new ClassFlow({ apiKey: 'cf_your_api_key' });
const result = await cf.schedule({ /* timeSlots, courses, teachers, rooms, constraints */ });
console.log(result.metrics.score, result.assignments);pip install classflowfrom classflow import ClassFlow
cf = ClassFlow(api_key="cf_your_api_key")
result = cf.schedule(time_slots=..., courses=..., teachers=..., rooms=..., constraints=[...])
print(result["metrics"]["score"], result["assignments"])go get github.com/classflow-api/sdks/gocf := classflow.New("cf_your_api_key")
result, err := cf.Schedule(ctx, scheduleRequest)<dependency>
<groupId>com.classflowapi</groupId>
<artifactId>classflow-sdk</artifactId>
<version>0.1.0</version>
</dependency>ClassFlow cf = new ClassFlow("cf_your_api_key");
String result = cf.schedule(jsonPayload);See each language's directory for full installation, configuration, and usage details.
All four SDKs expose the same core surface:
schedule(...)— solve a scheduling problemfindSubstitutes(...)— suggest replacements when a teacher is absentqueryAvailability(...)— find free rooms / teachers in a time windowvalidate(...)— pre-flight check a problem before solvingusage()— current plan, quota, consumption
The TypeScript and Python SDKs additionally support streaming progress for long-running schedules and have first-class types/dataclasses for every entity.
typescript/ # @classflow-api/sdk — published to npm
python/ # classflow — published to PyPI
go/ # Go module — published to pkg.go.dev
java/ # Maven artifact — published to Maven Central
Each subdirectory is an independent, separately-versioned package with its own build, test and release pipeline.
Contributions are welcome — bug fixes, idiomatic improvements, or new examples. Please:
- Open an issue first for non-trivial changes
- Run the language's test suite before submitting (
npm test,pytest,go test,mvn test) - Match the existing code style (we don't enforce a single global style across languages — each follows its community conventions)
For larger contributions, open a discussion or issue first so we can align on direction.
If you discover a security issue in any of the SDKs, please email security@classflowapi.com rather than opening a public issue. We respond within 48 hours.
MIT — © ClassFlow Inc.
classflow-api/api— Backend APIclassflow-api/docs— Public developer documentationclassflow-api/openclaw-skill— Skill for OpenClaw / MCP agents