EvoHub DocsEvoHub Docs Sign in

Move 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/cards/{cardID}/move

Moves the card into list_id (its own list, to reorder it) between the neighbours named in placement. The list must be on the card's board.

The review gate applies:

Move Result
Into the review list The card starts waiting for review.
Out of the review list while waiting Refused, 409 REVIEW_PENDING: approve or reject it.
Into the done list, on a board with a review list Only if approved; otherwise 409 REVIEW_REQUIRED.
Anywhere else Any approval the card had is dropped.

Requires the board:card:write scope.

Authorization

Any one of:

Parameters

Path parameters

  • cardID string required
    The card's ID.
    Example: crd_9f2e4d6c8b0a1e3f5d7c9b1a3e5f7d90

Request body required

Content type: application/json

Type: object

  • list_id string required
  • 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

204

The card was moved.

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

The card is not one the caller can see, or list_id is not a list on the card's board (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 review gate refused the move (REVIEW_PENDING, REVIEW_REQUIRED), or the named neighbours have moved (STALE_PLACEMENT).

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/cards/crd_9f2e4d6c8b0a1e3f5d7c9b1a3e5f7d90/move' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer <TOKEN>' \
  -d '{
  "list_id": "lst_3c4d5e6f7a8b49c0d1e2f3a4b5c6d7e8",
  "placement": {
    "to": "bottom"
  }
}'