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

type Project = {
    id: string;
    project_id: string;
    owner_id: string;
    name: string;
    description: string | null;
    specification: string | null;
    repo_url: string | null;
    repo_id: string | null;
    icon_url: string | null;
    status: "DEVELOPMENT" | "PAUSED" | "RELEASED" | "LIVE" | "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 task.tag

    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

type Task = {
    id: string;
    project_id: string;
    owner_id: string;
    title: string;
    description: string;
    start_time: string | null;
    end_time: string | null;
    priority: "LOW" | "MEDIUM" | "HIGH";
    visibility: "PUBLIC" | "PRIVATE" | "HIDDEN" | "ARCHIVED" | "DRAFT" | "DELETED";
};

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