GetABrain.ai

Quick Start Guide

Get real human feedback in 5 minutes. This guide walks you through signup, funding, and sending your first query.

1

Create Your Account

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

curl -X POST https://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:

{
  "user": { "id": "abc123", "email": "you@company.com", "balance_cents": 0 },
  "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

Fund Your Account

Queries require a prepaid balance. Create a Stripe checkout session to add funds:

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

This returns a checkout_url. Open it in a browser to complete payment via Stripe. After payment, your balance is credited automatically.

How billing works:

  • Prepaid balance model — no subscriptions or monthly fees
  • Minimum bid per response: $0.05 (5 cents)
  • Platform fee: 15% (included in cost, not added on top)
  • Total cost = (bid + bonus) × required_responses
  • 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 13 query types. Here is the simplest example — a text question:

cURL

curl -X POST https://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
  }'

Python

import requests

resp = requests.post(
    "https://getabrain.ai/api/v1/requestor/queries",
    headers={
        "X-API-Key": "gab_k_xxxxx",
        "X-API-Secret": "gab_s_xxxxx",
    },
    json={
        "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?",
        },
        "required_responses": 5,
        "bid_amount_cents": 50,
    },
)
query = resp.json()
print(f"Query ID: {query['id']}, Status: {query['status']}")

Node.js

const resp = await fetch("https://getabrain.ai/api/v1/requestor/queries", {
  method: "POST",
  headers: {
    "X-API-Key": "gab_k_xxxxx",
    "X-API-Secret": "gab_s_xxxxx",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    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?",
    },
    required_responses: 5,
    bid_amount_cents: 50,
  }),
});
const query = await resp.json();
console.log("Query ID:", query.id, "Status:", query.status);

Response:

{
  "id": "query_abc123",
  "type": "text",
  "status": "active",
  "required_responses": 5,
  "completed_responses": 0,
  "total_cost_cents": 250,
  "created_at": "2026-02-16T12:00:00Z"
}

Understanding bids

bid_amount_cents is 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 use webhooks for real-time notifications.

Polling

curl https://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. We POST a JSON payload to your URL when each response arrives and when the query completes. See the Webhooks guide for details.

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://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." }'

All 13 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?"

More Examples

Sentiment Analysis

{
  "type": "sentiment",
  "title": "Analyze tweet sentiment",
  "content_data": {
    "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 13 query types
titlestringYesShort title shown to workers
descriptionstringYesLonger 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_urlstringNoURL to receive response notifications

Next Steps