GetABrain.ai

Quick Start Guide

Get real human feedback in 5 minutes — free. Sign up, mint a free test-mode API key, and build your entire integration — including webhooks — against free synthetic responses before you ever touch a payment form.

1

Create Your Account

Sign up at /requestor/signup or call the signup API directly:

curl -X POST https://www.getabrain.ai/api/v1/requestor/auth/signup \
  -H "Content-Type: application/json" \
  -d '{
    "email": "you@company.com",
    "password": "SecurePass123",
    "full_name": "Jane Smith",
    "company_name": "Acme AI",
    "accepted_terms": true,
    "accepted_requestor_agreement": true
  }'

You get back your credentials in one shot:

{
  "user": { "id": "abc123", "email": "you@company.com", "company_name": "Acme AI", "balance_cents": 0, "email_verified": false },
  "api_key": "gab_k_xxxxx",
  "api_secret": "gab_s_xxxxx",
  "access_token": "eyJhbG...",
  "refresh_token": "eyJhbG..."
}

Save your api_secret immediately. It is only shown once at signup and cannot be retrieved later.

2

Mint a Free Test-Mode Key

Pass {"mode":"test"} when creating a key and you get back a completely normal gab_k_ / gab_s_pair — there is no special prefix, the test-ness is just a flag on that key. Queries submitted with a test-mode key never touch billing and return synthetic responses marked simulated: true, so you can build your whole integration, webhooks included, before adding funds.

curl -X POST https://www.getabrain.ai/api/v1/requestor/keys \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "mode": "test" }'

When you're ready to pay real workers, add funds via Stripe (returns a checkout_url to open in a browser) and use a live key instead:

curl -X POST https://www.getabrain.ai/api/v1/requestor/billing/checkout \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "amount_cents": 5000 }'

How billing works:

  • Prepaid balance model — no subscriptions or monthly fees
  • Minimum bid per response: $0.05 (5 cents)
  • Platform fee: 15%, added on top of your bid (not deducted from the worker's pay)
  • Total cost = (bid + bonus) × required_responses, plus the 15% platform fee
  • Balance is deducted when you create a query, refunded if you cancel
  • Optional auto-reload: set a threshold and reload amount to never run out
3

Send Your First Query

POST a query to get real human responses. Choose from 16 query types. Here is the simplest example — a text question:

curl -X POST https://www.getabrain.ai/api/v1/requestor/queries \
  -H "X-API-Key: gab_k_xxxxx" \
  -H "X-API-Secret: gab_s_xxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "text",
    "title": "Landing page feedback",
    "description": "We need honest feedback on our new design",
    "content_data": {
      "question": "What is your first impression of this landing page?",
      "context": "We just redesigned our homepage."
    },
    "required_responses": 5,
    "bid_amount_cents": 50
  }'

Response:

{
  "id": "query_abc123",
  "type": "text",
  "title": "Landing page feedback",
  "description": "We need honest feedback on our new design",
  "required_responses": 5,
  "bid_amount_cents": 50,
  "bonus_amount_cents": 0,
  "total_cost_cents": 250,
  "status": "active",
  "created_at": "2026-02-16T12:00:00Z",
  "expires_at": null
}

Understanding bids

bid_amount_centsis what each worker earns per response. Set higher bids to attract more and better workers faster. The minimum is 5 cents. For complex tasks (video review, long-form writing), $0.50–$2.00 is typical. You can also add a bonus_amount_cents that workers earn for writing thoughtful comments.

4

Get Your Results

Poll your query to check for responses, or configure a webhook for real-time push.

Polling

curl https://www.getabrain.ai/api/v1/requestor/queries/query_abc123 \
  -H "X-API-Key: gab_k_xxxxx" \
  -H "X-API-Secret: gab_s_xxxxx"
{
  "id": "query_abc123",
  "status": "completed",
  "completed_responses": 5,
  "responses": [
    {
      "id": "resp_001",
      "response_data": {
        "answer": "The hero section is eye-catching. The CTA button could be more prominent.",
        "reasoning": "I looked at the overall visual hierarchy."
      },
      "worker": { "quality_score": 4.2, "tier": "Gold" },
      "submitted_at": "2026-02-16T12:05:00Z"
    },
    ...
  ]
}

Webhooks (recommended for production)

Include a webhook_url in your query creation request, or set an account-level default with PUT /requestor/webhook. We POST a signed JSON payload on each response and on completion. See the Webhooks guide.

5

Rate Workers (Optional)

Rate each response 1–5 stars to improve the quality of future workers assigned to your queries. Workers with consistently low ratings are automatically suspended.

curl -X POST https://www.getabrain.ai/api/v1/requestor/queries/query_abc123/responses/resp_001/rate \
  -H "X-API-Key: gab_k_xxxxx" \
  -H "X-API-Secret: gab_s_xxxxx" \
  -H "Content-Type: application/json" \
  -d '{ "score": 5, "feedback_text": "Excellent, detailed feedback." }'
6

For AI Agents

GetABrain ships an MCP server (@getabrain/mcp-server) so agents in Claude Desktop, Cursor, Claude Code, or any MCP-compatible client can call ask_humanand friends directly as tools — no custom integration code required. Drop your API key/secret from Step 1 into the config below:

{
  "mcpServers": {
    "getabrain": {
      "command": "npx",
      "args": ["-y", "@getabrain/mcp-server"],
      "env": {
        "GETABRAIN_API_KEY": "gab_k_xxxxx",
        "GETABRAIN_API_SECRET": "gab_s_xxxxx"
      }
    }
  }
}

Building your own agent framework instead? Point any OpenAPI-aware tool generator (LangChain, OpenAI function calling, custom orchestrators) at the canonical spec and it will auto-generate typed tools for every endpoint:

https://www.getabrain.ai/api/v1/openapi.json

Prefer to browse it interactively first? See the API Reference.

All Query Types at a Glance

Choose the right type for your task. See the full Query Types reference for complete schemas.

TypeUse When You NeedExample
textOpen-ended written answers"What do you think of this design?"
multiple_choicePicking from options"Which feature matters most?"
rating_scaleNumeric ratings (with optional media)"Rate this product photo 1-10"
image_comparisonChoosing between images"Which logo is more professional?"
rankingOrdering items by preference"Rank these features by importance"
yes_noBinary decisions"Is this headline effective?"
sentimentEmotional analysis"What is the sentiment of this review?"
image_selectionSelecting matching images"Pick all photos suitable for a listing"
free_form_textLong-form writing"Write a product description"
video_reviewYouTube video feedback"Review this tutorial video"
audio_reviewAudio content feedback"Review this podcast episode"
image_analysisDetailed image analysis"Describe what you see in this photo"
ab_testComparing two variants"Which landing page converts better?"
voice_captureWorker-recorded voice note"Record a 30-second reaction to this ad"
video_captureWorker-recorded video"Film yourself unboxing this product"
photo_captureWorker-captured photo"Take a photo of your desk setup"

More Examples

Sentiment Analysis

{
  "type": "sentiment",
  "title": "Analyze tweet sentiment",
  "content_data": {
    "question": "What is the sentiment of this text?",
    "subject": "Just tried the new feature and it completely changed my workflow!",
    "require_reasoning": true
  },
  "required_responses": 5,
  "bid_amount_cents": 10
}

A/B Test with Images

{
  "type": "ab_test",
  "title": "Landing page A/B test",
  "content_data": {
    "question": "Which design do you prefer and why?",
    "variant_a": {
      "description": "Minimalist hero with large image",
      "image_url": "https://example.com/design-a.png"
    },
    "variant_b": {
      "description": "Feature-rich layout with testimonials",
      "image_url": "https://example.com/design-b.png"
    }
  },
  "required_responses": 20,
  "bid_amount_cents": 25
}

Rating Scale with Media

{
  "type": "rating_scale",
  "title": "Rate this product video",
  "content_data": {
    "question": "How would you rate the overall quality?",
    "scale_type": "stars",
    "scale_min": 1,
    "scale_max": 5,
    "scale_labels": { "min_label": "Poor", "max_label": "Excellent" },
    "criteria": ["Visual quality", "Audio clarity", "Content value"],
    "media_video_url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
  },
  "required_responses": 10,
  "bid_amount_cents": 30
}

Image Comparison

{
  "type": "image_comparison",
  "title": "Logo design preference",
  "content_data": {
    "question": "Which logo is more professional?",
    "comparison_type": "preference",
    "require_reasoning": true,
    "images": [
      { "id": "a", "url": "https://example.com/logo-a.png", "label": "Option A" },
      { "id": "b", "url": "https://example.com/logo-b.png", "label": "Option B" }
    ]
  },
  "required_responses": 10,
  "bid_amount_cents": 20
}

Common Query Parameters

FieldTypeRequiredDescription
typestringYesOne of the 16 query types
titlestringYesShort title shown to workers
descriptionstringNoLonger description for workers
content_dataobjectYesType-specific data (question, images, etc.)
required_responsesintegerYesHow many worker responses you want
bid_amount_centsintegerYesPay per response in cents (min 5)
bonus_amount_centsintegerNoExtra pay for thoughtful comments
expires_in_hoursintegerNoAuto-expire after N hours
min_worker_qualitynumberNoMin quality score 0-5 (0 = any)
webhook_urlstringNoPublic https URL to receive signed event notifications

Next Steps