@devpad/api
v2.1.9
Published
TypeScript client library for the devpad API - project and task management made simple
Downloads
1,062
Maintainers
Readme
@devpad/api
TypeScript API client for devpad — project management, task tracking, milestones, goals, and more.
Installation
bun add @devpad/apiQuick start
import ApiClient from "@devpad/api";
const client = new ApiClient({
base_url: "https://devpad.tools/api/v1",
api_key: "your-api-key",
});The constructor also accepts auth_mode, credentials, default_headers, and custom_fetch. Auth mode is auto-detected from the api_key format.
Error handling
All methods return ApiResult<T> which is Result<T, ApiResultError> from @f0rbit/corpus. No try/catch needed.
import ApiClient, { type ApiResult } from "@devpad/api";
const result = await client.projects.list();
if (!result.ok) {
console.error(result.error.message, result.error.status_code);
return;
}
const projects = result.value;The ok() and err() constructors are re-exported for building your own Results.
API reference
Projects
client.projects.list()
client.projects.find(id)
client.projects.getByName(name)
client.projects.create(data)
client.projects.upsert(data)
client.projects.config.load(id)
client.projects.config.save(id, config)
client.projects.history(id)
client.projects.specification(id)
client.projects.scan.initiate(name)
client.projects.scan.updates(id)
client.projects.map()Tasks
client.tasks.list(params?) // optional { project_id, tag_id }
client.tasks.find(id)
client.tasks.getByProject(id)
client.tasks.create(data)
client.tasks.upsert(data)
client.tasks.delete(id)
client.tasks.history.get(id)Milestones
client.milestones.list(params?) // optional { project_id }
client.milestones.find(id)
client.milestones.getByProject(id)
client.milestones.create(data)
client.milestones.update(id, data)
client.milestones.delete(id)
client.milestones.goals(id)Goals
client.goals.list()
client.goals.find(id)
client.goals.create(data)
client.goals.update(id, data)
client.goals.delete(id)Tags
client.tags.list()
client.tags.save(tags)Auth
client.auth.keys.list()
client.auth.keys.create(data)
client.auth.keys.update(id, data)
client.auth.keys.delete(id)
client.auth.user()
client.auth.login(code)
client.auth.loginUrl()User
client.user.history()GitHub
client.github.repos()
client.github.branches(owner, repo)Blog and media namespaces also exist but are documented separately.
Types
import ApiClient, {
type ApiResult,
type ApiResultError,
type AuthMode, // "session" | "key" | "cookie"
} from "@devpad/api";
// Schema types re-exported for convenience
import type {
Project,
TaskWithDetails,
UpsertProject,
UpsertTodo,
} from "@devpad/api";Result utilities ok and err are also exported from the main entry point.
License
MIT
