Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
bankrbot avatar

Bankr Dev Api Basics

  • 363 installs
  • 80 repo stars
  • Updated March 24, 2026
  • bankrbot/claude-plugins

bankr dev - api basics is a Claude skill that documents Bankr Agent API authentication, endpoints, job polling, and TypeScript interfaces for developers who are integrating Bankr into a new backend or agent service.

About

bankr dev - api basics is a Bankr developer skill bundled in the bankr-agent-dev plugin for Claude Code and portable to Cursor via skills install. It explains how the Bankr Agent API uses an asynchronous submit-poll-complete pattern: POST `/agent/prompt` returns a job ID, GET `/agent/job/{jobId}` reports progress every ~2 seconds, and POST `/agent/job/{jobId}/cancel` stops long-running work. The skill covers `X-API-Key` authentication with `bk_...` keys, response formats, rich-data objects for swaps and NFT flows, and TypeScript interface references for typed clients. Developers reach for it when starting a trading bot, dashboard, or CLI that wraps Bankr before writing custom polling logic. Triggers include questions about Bankr API basics, job status handling, response formats, and how Bankr agent jobs complete.

  • Auth and API key setup
  • Core endpoint patterns
  • Request and response schemas
  • Error handling conventions
  • Foundation for advanced Bankr skills

Bankr Dev Api Basics by the numbers

  • 363 all-time installs (skills.sh)
  • Ranked #1,130 of 4,347 Backend & APIs skills by installs in the Skillselion catalog
  • Data as of Jul 31, 2026 (Skillselion catalog sync)
npx skills add https://github.com/bankrbot/claude-plugins --skill bankr-dev---api-basics

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs363
repo stars80
Last updatedMarch 24, 2026
Repositorybankrbot/claude-plugins

How does the Bankr Agent API async job pattern work?

Onboard developers to Bankr authentication, endpoints, request shapes, and error handling when integrating the platform into a new backend service or agent backend.

Who is it for?

Backend developers onboarding to Bankr Agent API who need endpoint docs and async job polling patterns before coding.

Skip if: Developers who only need one-off natural-language trades without building custom API clients or job handlers.

When should I use this skill?

User asks how Bankr API works, about job status, response formats, or building on Bankr Agent API.

What you get

Documented endpoint map, job lifecycle diagram, and TypeScript interface references for Bankr API consumers.

  • Endpoint reference
  • Job lifecycle documentation
  • TypeScript interface guidance

By the numbers

  • Documents 3 core Agent API endpoints: prompt, job status, and cancel
  • Recommends ~2-second polling interval for job status checks

Files

SKILL.mdMarkdownGitHub ↗

Bankr Agent API Essentials

When answering questions about the Bankr API: 1. Explain the asynchronous job pattern (submit-poll-complete) 2. Reference the endpoint documentation and TypeScript examples below 3. For detailed response structures, consult references/job-response-schema.md 4. Point developers to working examples in examples/ directory

---

The Bankr Agent API enables programmatic access to crypto trading, market analysis, and prediction markets through a simple asynchronous job pattern.

Core Concept: Asynchronous Job Pattern

All Bankr operations follow a submit-poll-complete pattern:

1. Submit a natural language prompt to start a job 2. Poll the job status every 2 seconds 3. Receive results when status is terminal (completed/failed/cancelled)

This pattern handles operations that may take 30 seconds to 2+ minutes (trades, complex analysis).

API Endpoints

Base URL

https://api.bankr.bot

Authentication

All requests require the x-api-key header:

x-api-key: bk_your_api_key_here

The API key is tied to a specific user's Bankr account and wallet.

Endpoint 1: Submit Prompt

POST /agent/prompt
Content-Type: application/json

{
  "prompt": "Buy $50 of ETH on Base"
}

Response:

{
  "success": true,
  "jobId": "job_abc123",
  "status": "pending"
}

Code example:

async function submitPrompt(prompt: string): Promise<{ jobId: string }> {
  const response = await fetch(`${API_URL}/agent/prompt`, {
    method: "POST",
    headers: {
      "x-api-key": API_KEY,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({ prompt }),
  });
  const data = await response.json();
  if (!data.success) throw new Error(data.error || "Failed to submit");
  return { jobId: data.jobId };
}

Endpoint 2: Get Job Status

GET /agent/job/{jobId}

Response:

{
  "success": true,
  "jobId": "job_abc123",
  "status": "completed",
  "prompt": "What is the price of ETH?",
  "response": "Ethereum (ETH) is currently trading at $3,245.67...",
  "transactions": [],
  "statusUpdates": [
    { "message": "Fetching price data...", "timestamp": "2024-01-15T10:00:02Z" }
  ],
  "createdAt": "2024-01-15T10:00:00Z",
  "completedAt": "2024-01-15T10:00:05Z",
  "processingTime": 5000
}

Code example:

async function getJobStatus(jobId: string): Promise<JobStatusResponse> {
  const response = await fetch(`${API_URL}/agent/job/${jobId}`, {
    headers: { "x-api-key": API_KEY },
  });
  return response.json();
}

For complete TypeScript interfaces, see references/job-response-schema.md.

Endpoint 3: Cancel Job

POST /agent/job/{jobId}/cancel
Content-Type: application/json

Response:

{
  "success": true,
  "jobId": "job_abc123",
  "status": "cancelled",
  "prompt": "Buy $50 of ETH on Base",
  "cancelledAt": "2024-01-15T10:00:15Z"
}

When to cancel:

  • User requests to stop a long-running operation
  • Timeout exceeded and want to abort cleanly
  • Detected an error condition that makes the job unnecessary

Code example:

async function cancelJob(jobId: string): Promise<JobStatusResponse> {
  const response = await fetch(`${API_URL}/agent/job/${jobId}/cancel`, {
    method: "POST",
    headers: {
      "x-api-key": API_KEY,
      "Content-Type": "application/json",
    },
  });
  return response.json();
}

// Usage: Cancel if job takes too long
const timeout = setTimeout(async () => {
  console.log("Job taking too long, cancelling...");
  await cancelJob(jobId);
}, 60000); // Cancel after 60 seconds

Job Status States

StatusMeaningAction
pendingJob queued, not startedKeep polling
processingJob runningKeep polling, check statusUpdates
completedJob finished successfullyRead response and transactions
failedJob encountered errorCheck error field
cancelledJob was cancelledNo further action

What You Can Do

The Bankr API accepts natural language prompts for:

Crypto Trading:

  • "Buy $50 of ETH on Base"
  • "Sell 100 USDC for SOL on Solana"
  • "Swap 0.1 ETH for BNKR"

Price & Market Data:

  • "What is the price of Bitcoin?"
  • "Show me ETH price chart"
  • "What are the top gainers today?"

Polymarket Predictions:

  • "What are the odds on the next election?"
  • "Bet $10 on the Eagles to win"
  • "Show me trending prediction markets"

DeFi Operations:

  • "What's the TVL on Aave?"
  • "Show me best yields for USDC"
  • "Check my portfolio balance"

Polling Best Practices

async function waitForCompletion(jobId: string): Promise<JobStatus> {
  const POLL_INTERVAL = 2000; // 2 seconds
  const MAX_POLLS = 120; // 4 minutes max

  for (let i = 0; i < MAX_POLLS; i++) {
    const status = await getJobStatus(jobId);

    // Terminal states
    if (['completed', 'failed', 'cancelled'].includes(status.status)) {
      return status;
    }

    // Log progress updates
    if (status.statusUpdates?.length) {
      console.log('Progress:', status.statusUpdates.at(-1)?.message);
    }

    await new Promise(r => setTimeout(r, POLL_INTERVAL));
  }

  throw new Error('Job timed out');
}

Key Response Fields

When a job completes, the response includes:

  • `response`: The text answer from Bankr
  • `transactions`: Array of executed transactions with chain/token details
  • `richData`: Images or charts (base64 or URL)
  • `statusUpdates`: Progress messages during execution
  • `processingTime`: Duration in milliseconds

For complete field documentation, see references/job-response-schema.md.

Error Handling

Handle these error cases:

1. Missing API key: Check BANKR_API_KEY before making requests 2. HTTP errors: API returns 4xx/5xx with error text 3. Job failures: Check status === 'failed' and read error field 4. Timeouts: Implement max poll count (recommended: 4 minutes)

Example: Complete Flow

// 1. Submit prompt
const { jobId } = await submitPrompt("What is the price of ETH?");

// 2. Poll until complete
const result = await waitForCompletion(jobId);

// 3. Handle result
if (result.status === 'completed') {
  console.log(result.response);
  // "Ethereum (ETH) is currently trading at $3,245.67..."
} else if (result.status === 'failed') {
  console.error('Error:', result.error);
}

Additional Resources

Reference Files

  • `references/job-response-schema.md` - Complete TypeScript interfaces and field documentation

Example Files

  • `examples/basic-client.ts` - Simple API client implementation
  • `examples/polling-with-updates.ts` - Polling with status update handling

Related skills

How it compares

Use bankr dev api basics for endpoint and job lifecycle docs; switch to bankr dev client patterns when you need reusable bankr-client.ts scaffolding.

FAQ

What is the Bankr Agent API job pattern?

Bankr Agent API uses submit-poll-complete: POST `/agent/prompt` returns a job ID, poll GET `/agent/job/{jobId}` about every 2 seconds, then read results or cancel via POST `/agent/job/{jobId}/cancel`.

How do you authenticate Bankr API requests?

Bankr dev api basics documents `X-API-Key` headers with `bk_...` keys. Agent endpoints require `agentApiEnabled` on the key before `/agent/*` routes accept prompts.

Backend & APIsbackendintegrations

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.