EvoHub DocsEvoHub Docs Sign in

Create a card

Use with AI
View as MarkdownThis page as plain text, for pasting into an AI tool Open in ClaudeAsk Claude questions about this page Open in ChatGPTAsk ChatGPT questions about this page
Connect to Cursor / VS Code / ClaudeSearch and read these docs from your AI tool (MCP server)

MCP server URL

https://docs.evohub.io/mcp

Claude Code

claude mcp add --transport http evohub-docs https://docs.evohub.io/mcp

Claude (claude.ai and Claude Desktop): Settings → Connectors → Add custom connector, and paste the URL above.

Claude Desktop — claude_desktop_config.json

{
  "mcpServers": {
    "evohub-docs": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://docs.evohub.io/mcp"
      ]
    }
  }
}

Cursor — ~/.cursor/mcp.json

{
  "mcpServers": {
    "evohub-docs": {
      "url": "https://docs.evohub.io/mcp"
    }
  }
}

VS Code — .vscode/mcp.json

{
  "servers": {
    "evohub-docs": {
      "type": "http",
      "url": "https://docs.evohub.io/mcp"
    }
  }
}
POST/api/v1/board/lists/{listID}/cards

Adds a card to the list. title is required (at most 200 characters); description may be up to 20,000 characters. Without placement the card goes to the bottom. The card gets the next number on its board, which with the board's prefix is its reference (PLT-119). list_id in the body is ignored: the list is the one in the path.

Requires the board:card:write scope.

Authorization

Any one of:

Parameters

Path parameters

  • listID string required
    The list's ID.
    Example: lst_2b3c4d5e6f7a48b9c0d1e2f3a4b5c6d7

Request body required

Content type: application/json

Type: object

  • title string required
    Max length: 200
  • description string
    Max length: 20000
  • list_id string
    Ignored.
  • placement Placement
    Show Placement properties
    • after string
      The ID of the item it should follow. Empty means the top.
    • before string
      The ID of the item it should precede. Empty means the bottom.
    • to string
      An end of the list. Any other value is ignored.
      One of: top bottom

Responses

201

The card was created.

Content type: application/json

Type: CardEnvelope

  • data object
    • card Card
      Show Card properties
      • id string
        Example: crd_9f2e4d6c8b0a1e3f5d7c9b1a3e5f7d90
      • board_id string
      • list_id string
      • number integer
        The card's number on its board, from 1. With the board's card_prefix it is the card's reference.
      • title string
        Max length: 200
      • description string
        Max length: 20000
      • color string
        A hex colour, or "" for none.
      • due_at string (date-time)
        Absent when the card has no due date.
      • review Review
        Show Review properties
        • state string
          One of: pending approved
        • approved_by string
        • approved_at string (date-time)
      • completed_at string (date-time)
        When the card entered a done list. Absent while it is not in one.
      • created_by string
      • created_at string (date-time)
      • updated_at string (date-time)
      • version integer
        Goes up by one on every edit of the title or description.
      • assignee_ids array of string | null
        Who the card is on. Filled in when a board or list is read; null when one card is read on its own.
      • label_ids array of string | null
        The labels the card carries. Filled in when a board or list is read; null when one card is read on its own.

400

The body is not JSON for this endpoint, or carries a field it does not know (INVALID_BODY), or a field breaks a rule (VALIDATION_ERROR; the message says which).

Content type: application/json

Type: Error

  • error object required
    • code string required
      Example: NOT_FOUND
    • message string required
      Example: not found
    • request_id string

401

No API key was sent, or it is unknown, revoked or expired (UNAUTHORIZED).

Content type: application/json

Type: Error

  • error object required
    • code string required
      Example: NOT_FOUND
    • message string required
      Example: not found
    • request_id string

403

The key lacks the scope this endpoint needs (FORBIDDEN).

Content type: application/json

Type: Error

  • error object required
    • code string required
      Example: NOT_FOUND
    • message string required
      Example: not found
    • request_id string

404

It does not exist, or it is on a board the caller cannot see (NOT_FOUND).

Content type: application/json

Type: Error

  • error object required
    • code string required
      Example: NOT_FOUND
    • message string required
      Example: not found
    • request_id string

409

The neighbours named in placement are no longer next to each other (STALE_PLACEMENT). Read the board again and retry.

Content type: application/json

Type: Error

  • error object required
    • code string required
      Example: NOT_FOUND
    • message string required
      Example: not found
    • request_id string

429

Too many requests (RATE_LIMITED). Wait for Retry-After seconds.

Headers

  • Retry-After integer
    Seconds to wait before retrying.

Content type: application/json

Type: Error

  • error object required
    • code string required
      Example: NOT_FOUND
    • message string required
      Example: not found
    • request_id string

500

Something went wrong on EvoHub's side (INTERNAL_ERROR). Retry later.

Content type: application/json

Type: Error

  • error object required
    • code string required
      Example: NOT_FOUND
    • message string required
      Example: not found
    • request_id string

Example request

curl -X POST 'https://evohub.io/api/v1/board/lists/lst_2b3c4d5e6f7a48b9c0d1e2f3a4b5c6d7/cards' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer <TOKEN>' \
  -d '{
  "title": "Renew the TLS certificate for the API",
  "placement": {
    "to": "top"
  },
  "description": "Expires on 2026-12-05."
}'