devpad

API

The API is available at devpad.tools/api/v0 You should put an API_KEY in the Authorization header for each request in this format:
Authorization: Bearer <API_KEY>
API keys are generated on the account page.

projects

This endpoint fetches the data associated with each project. Note that only projects with visibility == "PUBLIC" will be returned in /projects (with no query params)

GET /projects

    200 - Array<Project>

    401 - Unauthorized

GET /projects?id=<string> - id is project.id

    200 - Project

    401 - Unauthorized

    404 - Not Found

    500 - Internal Server Error

GET /projects?name=<string> - name is project.project_id

    200 - Project

    401 - Unauthorized

    404 - Not Found

    500 - Internal Server Error

PATCH /projects - Create or update a project

    200 - Project (created or updated project)

    400 - Bad Request (validation error)

    401 - Unauthorized

    500 - Internal Server Error

Request body should contain a partial Project object. Omit id for creation, include id for updates.

type Project = {
    id: string;
    project_id: string;
    owner_id: string;
    name: string;
    description: string | null;
    specification: string | null;
    repo_url: string | null;
    repo_id: number | null;
    icon_url: string | null;
    status: "DEVELOPMENT" | "PAUSED" | "RELEASED" | "LIVE" | "FINISHED" | "ABANDONED" | "STOPPED";
    deleted: boolean;
    link_url: string | null;
    link_text: string | null;
    visibility: "PUBLIC" | "PRIVATE" | "HIDDEN" | "ARCHIVED" | "DRAFT" | "DELETED";
    current_version: string | null;
    scan_branch: string | null;
};

tasks

This endpoint retrieves task information. Note that only tasks with visibility == "PUBLIC" will be returned in /tasks (with no query params)

GET /tasks

    200 - Array<TaskUnion>

    401 - Unauthorized

GET /tasks?id=<string> - id is task.id

    200 - TaskUnion

    401 - Unauthorized

    404 - Not Found

    500 - Internal Server Error

GET /tasks?tag=<string> - tag is tag.id

    200 - Array<TaskUnion>

    401 - Unauthorized

    404 - Not Found

    500 - Internal Server Error

GET /tasks?project=<string> - project is task.project_id

    200 - Array<TaskUnion>

    401 - Unauthorized

    404 - Not Found

    500 - Internal Server Error

PATCH /tasks - Create or update a task

    200 - Task (created or updated task)

    400 - Bad Request (validation error)

    401 - Unauthorized

    500 - Internal Server Error

Request body should contain a task object with owner_id. Omit id for creation, include id for updates. Can optionally include tags array.

type Task = {
    id: string;
    owner_id: string;
    title: string;
    progress: "UNSTARTED" | "IN_PROGRESS" | "COMPLETED";
    visibility: "PUBLIC" | "PRIVATE" | "HIDDEN" | "ARCHIVED" | "DRAFT" | "DELETED";
    goal_id: string | null;
    project_id: string | null;
    description: string | null;
    start_time: string | null;
    end_time: string | null;
    summary: string | null;
    codebase_task_id: string | null;
    priority: "LOW" | "MEDIUM" | "HIGH";
    created_at: string | null;
    updated_at: string | null;
};

type CodebaseTask = {
    id: string;
    branch: string | null;
    commit_sha: string | null;
    commit_msg: string | null;
    commit_url: string | null;
    type: string | null;
    text: string | null;
    file: string | null;
    line: number | null;
    context: string[] | null;
    created_at: string;
    updated_at: string;
    deleted: boolean;
    recent_scan_id: number | null;
};
  
type TaskUnion = {
    task: Task;
    codebase_tasks: CodebaseTask | null;
    tags: string[];
};

type Tag = {
    id: string;
    title: string;
    color: string | null;
    deleted: boolean;
    render: boolean;
    owner_id: string;
};