🚀 Repa Kanban REST API

Complete programmatic access to your 3D Kanban boards. Build powerful integrations, automate workflows, and orchestrate AI agents.

Demo Token: demo_full_access

📖 Overview

The Repa Kanban REST API provides complete access to manage 3D Kanban boards, stages, tasks, and workflow connections. Perfect for:

🤖

AI Agent Orchestration

Manage autonomous AI workflows and LLM task pipelines

🔄

Workflow Automation

Automate task management and process flows

🔗

System Integration

Connect with your existing tools and platforms

📊

Analytics & Reporting

Extract data for custom dashboards and reports

🔑 Authentication

Three authentication methods supported:

1. Share Tokens (Recommended for Demo)

Include share_token parameter in requests:

curl "https://kanban.repa.rest/api/graph/data/?share_token=demo_full_access"

2. Session Authentication

For logged-in users - automatically handled by Django sessions

3. API Tokens

Custom token-based auth for production integrations (contact support)

🎯 API Endpoints

GET /api/graph/data/

Get complete board data - Retrieves all stages, tasks, and connections

Parameters:

  • board_id (optional) - Board UID
  • share_token (optional) - Share token for access

Example Request:

curl "https://kanban.repa.rest/api/graph/data/?share_token=demo_full_access"

Example Response:

{
  "success": true,
  "data": [
    {
      "uid": "stage-uuid",
      "name": "Backlog",
      "description": "Initial tasks",
      "color": "#48dbfb",
      "order": 0,
      "x": 0, "y": -275, "z": 0,
      "due_date": "2026-02-01",
      "tasks": [
        {
          "uid": "task-uuid",
          "title": "Task 1",
          "description": "Description"
        }
      ]
    }
  ],
  "links": [
    {"source": "stage-1", "target": "stage-2"}
  ],
  "board_name": "My Board",
  "permission": "full"
}

POST /api/graph/task/create/

Create new task - Add a task to a specific stage

Request Body:

{
  "stage_uid": "stage-uuid",
  "title": "New Task",
  "description": "Task description",
  "board_id": "board-uuid",
  "share_token": "demo_full_access"
}

Example:

curl -X POST https://kanban.repa.rest/api/graph/task/create/ \
  -H "Content-Type: application/json" \
  -d '{
    "stage_uid": "STAGE_UID",
    "title": "Implement API",
    "description": "Create REST endpoints",
    "board_id": "BOARD_ID",
    "share_token": "demo_full_access"
  }'

POST /api/graph/task/move/

Move task - Move a task between stages

Request Body:

{
  "task_uid": "task-uuid",
  "new_stage_uid": "target-stage-uuid",
  "board_id": "board-uuid",
  "share_token": "demo_full_access"
}

POST /api/graph/stage/create/

Create stage - Add a new stage (column) to the board

Request Body:

{
  "name": "New Stage",
  "board_id": "board-uuid",
  "from_stage_uid": "previous-stage-uuid",
  "description": "Stage description",
  "share_token": "demo_full_access"
}

POST /api/graph/stage/save_coords/

Save 3D positions - Update stage positions in 3D space

Request Body:

{
  "coords": [
    {"uid": "stage-1", "x": 0, "y": -275, "z": 0},
    {"uid": "stage-2", "x": 400, "y": -275, "z": 100}
  ],
  "share_token": "demo_full_access"
}

💻 Code Examples

Python

import requests

BASE_URL = "https://kanban.repa.rest/api/graph"
TOKEN = "demo_full_access"

# Get board data
response = requests.get(f"{BASE_URL}/data/", params={"share_token": TOKEN})
board_data = response.json()

# Create a task
task_data = {
    "stage_uid": "STAGE_UID",
    "title": "New Task",
    "description": "Task description",
    "board_id": "BOARD_ID",
    "share_token": TOKEN
}
response = requests.post(f"{BASE_URL}/task/create/", json=task_data)
print(response.json())

JavaScript / Node.js

const BASE_URL = "https://kanban.repa.rest/api/graph";
const TOKEN = "demo_full_access";

// Get board data
const response = await fetch(`${BASE_URL}/data/?share_token=${TOKEN}`);
const boardData = await response.json();

// Create a task
const taskData = {
    stage_uid: "STAGE_UID",
    title: "New Task",
    description: "Task description",
    board_id: "BOARD_ID",
    share_token: TOKEN
};
const createResponse = await fetch(`${BASE_URL}/task/create/`, {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify(taskData)
});
console.log(await createResponse.json());

🎯 Real-World Use Cases

1. AI Agent Orchestration

Manage autonomous AI agent workflows:

  • Create stages for different LLM models (GPT-4, Claude, Gemini)
  • Move tasks between agents based on expertise
  • Track progress of multi-agent systems
  • Visualize agent dependencies in 3D

2. Git Integration

Automatically create tasks from commits:

  • Parse commit messages for task creation
  • Move tasks based on branch status
  • Link PRs to board tasks
  • Visualize development pipeline

3. Sales Pipeline Automation

Manage deals through your sales funnel:

  • Auto-create leads from CRM
  • Move deals based on status
  • Track conversion metrics
  • Set deadline alerts

4. Manufacturing Process Control

Monitor production workflows:

  • Real-time production line status
  • Quality control checkpoints
  • Resource allocation tracking
  • Bottleneck identification

⚡ Rate Limits & Best Practices

Current Limits

No enforced rate limits currently, but recommended:

  • Maximum 100 requests per minute per IP
  • Maximum 1000 requests per hour per board

Best Practices

  • Cache board data when possible
  • Use bulk operations (coming soon)
  • Implement exponential backoff on errors
  • Use WebSockets for real-time updates (planned)

Ready to Get Started?

Try the demo board now with full API access!

🎮 Try Demo Board 🚀 Create Account