ডকসডেভেলপারদের জন্য

TaskerData API

আপনার নিজের কোড থেকে ক্যাম্পেইন দিন, ওয়ার্কারদের সাবমিশন সংগ্রহ ও রিভিউ করুন, অথবা একটি এক্সটার্নাল কোয়ালিফিকেশন টেস্ট যুক্ত করুন। প্রতিটি রিকোয়েস্ট আপনার API key দিয়ে অথেনটিকেট হয়।

সংক্ষিপ্ত পরিচিতি

Campaign API দিয়ে আপনার কোড সেই কাজগুলো করতে পারে যা আপনি রিকোয়েস্টার ড্যাশবোর্ডে করেন: ক্যাম্পেইন তৈরি করা, অগ্রগতি দেখা, প্রমাণসহ সাবমিশন ডাউনলোড করা এবং সেগুলো অনুমোদন বা প্রত্যাখ্যান করা। এক্সটার্নাল কোয়ালিফিকেশন এন্ডপয়েন্টের মাধ্যমে আপনার ওয়েবসাইটের টেস্ট TaskerData-কে জানাতে পারে প্রতিটি ওয়ার্কার পাস করেছে কি না।

সব রিকোয়েস্ট HTTPS-এর মাধ্যমে https://taskerdata.com এ যায়। ডেটা পাঠান ও পান JSON আকারে।

API দিয়ে তৈরি ক্যাম্পেইনের খরচ ও নিয়ম ড্যাশবোর্ডের মতোই। লাইভ হওয়ার আগে TaskerData সেগুলো রিভিউ করে (বিশ্বস্ত রিকোয়েস্টারদের ক্যাম্পেইন সঙ্গে সঙ্গে লাইভ হয়), এবং টাকা একইভাবে সংরক্ষিত রাখা ও পরিশোধ করা হয়।

অথেনটিকেশন

রিকোয়েস্টার ড্যাশবোর্ড খুলে API-তে যান। সেখানে দুটি key পাবেন:

  • API Key: আসল রিকোয়েস্টের জন্য। Campaign API এটি Authorization হেডার থেকে পড়ে। কোয়ালিফিকেশন এন্ডপয়েন্টে এটি api_token হিসেবে পাঠান।
  • টেস্ট API Key: শুধু কোয়ালিফিকেশন টেস্ট এন্ডপয়েন্টের জন্য, যাতে আসল ওয়ার্কারদের প্রভাবিত না করেই সেই ইন্টিগ্রেশন পরীক্ষা করতে পারেন।

নতুন key তৈরি করলে পুরোনোটি সঙ্গে সঙ্গে বাতিল হয়ে যায়, তাই তখন আপনার ব্যাকএন্ড আপডেট করুন। প্রতি ঘণ্টায় সর্বোচ্চ 3টি নতুন key তৈরি করতে পারবেন।

গুরুত্বপূর্ণ: আপনার API key গোপন রাখুন। এটি শুধু আপনার সার্ভারে ব্যবহার করুন, কখনও এমন ওয়েব পেজ বা অ্যাপে নয় যা ভিজিটররা খুলতে পারে।

প্রতিটি Campaign API রিকোয়েস্টের সাথে আপনার API key পাঠান:

Authorization: Bearer YOUR_API_KEY

প্রতি মিনিটে সর্বোচ্চ 120টি Campaign API রিকোয়েস্ট করতে পারবেন। X-RateLimit-Remaining হেডারে দেখায় আর কতগুলো বাকি আছে। এরপর স্ট্যাটাস 429 আসে, আর Retry-After হেডার জানায় কত সেকেন্ড অপেক্ষা করতে হবে।

Campaign API

আপনার নিজের কোড থেকে ক্যাম্পেইন তৈরি করুন এবং সেগুলোর মাধ্যমে আসা কাজ সামলান।

ক্যাম্পেইনের তালিকা

GET/api/v1/campaigns

আপনার ক্যাম্পেইনগুলো, নতুনগুলো আগে। total জানায় কতগুলো ক্যাম্পেইন মেলে, যাতে limit ও offset দিয়ে পেজ ধরে দেখতে পারেন।

কোয়েরি প্যারামিটার

প্যারামিটারবিবরণ
status শুধু এই স্ট্যাটাসের ক্যাম্পেইন: pending, in review, active, paused, completed, terminated বা rejected
limit কতগুলো ফেরত দেবে, 1 থেকে 100 (ডিফল্ট 20)
offset পেজিংয়ের জন্য কতগুলো বাদ দেবে (ডিফল্ট 0)
curl "https://taskerdata.com/api/v1/campaigns?status=active&limit=20" \
  -H "Authorization: Bearer $TASKERDATA_API_KEY"

রেসপন্স · 200

{
  "success": true,
  "campaigns": [
    {
      "id": "Ab12…-Cd34…-Ef56…",
      "title": "Test our sign-up page",
      "status": "active",
      "category": "Website Testing",
      "type": "instructions",
      "url": "https://example.com/signup",
      "payment": 0.5,
      "positions": 50,
      "filled_positions": 12,
      "time_to_complete": 10,
      "time_to_rate": 3,
      "cost": 34.06,
      "proof": {
        "text": "What went wrong?",
        "images": [
          "Screenshot after signing up"
        ],
        "video": null
      },
      "qualification_id": null,
      "created_at": "2026-10-16T09:30:00.000Z"
    }
  ],
  "total": 1,
  "limit": 20,
  "offset": 0
}

এররের উদাহরণ

// status 401
{
  "success": false,
  "error": {
    "code": "invalid_api_key",
    "message": "Invalid API key."
  }
}

একটি ক্যাম্পেইন দেখুন

GET/api/v1/campaigns/{id}

একটি ক্যাম্পেইন, তার সেটিংস এবং কতগুলো সাবমিশন রিভিউয়ের অপেক্ষায়, সংশোধনের অপেক্ষায়, অনুমোদিত ও প্রত্যাখ্যাত। ক্যাম্পেইনের অগ্রগতি দেখতে এটি ব্যবহার করুন।

ঠিকানার মধ্যে

প্যারামিটারবিবরণ
id আবশ্যকক্যাম্পেইন ID (ক্যাম্পেইনের তালিকায় id)
curl "https://taskerdata.com/api/v1/campaigns/CAMPAIGN_ID" \
  -H "Authorization: Bearer $TASKERDATA_API_KEY"

রেসপন্স · 200

{
  "success": true,
  "campaign": {
    "id": "Ab12…-Cd34…-Ef56…",
    "title": "Test our sign-up page",
    "status": "active",
    "category": "Website Testing",
    "type": "instructions",
    "url": "https://example.com/signup",
    "payment": 0.5,
    "positions": 50,
    "filled_positions": 12,
    "time_to_complete": 10,
    "time_to_rate": 3,
    "cost": 34.06,
    "proof": {
      "text": "What went wrong?",
      "images": [
        "Screenshot after signing up"
      ],
      "video": null
    },
    "qualification_id": null,
    "created_at": "2026-10-16T09:30:00.000Z",
    "submissions": {
      "total": 14,
      "to_review": 3,
      "revision_requested": 1,
      "approved": 9,
      "rejected": 1
    }
  }
}

এররের উদাহরণ

// status 404
{
  "success": false,
  "error": {
    "code": "not_found",
    "message": "Campaign not found."
  }
}

ক্যাম্পেইন তৈরি করুন

POST/api/v1/campaigns

একটি নতুন ক্যাম্পেইন দেয় এবং আপনার উপলব্ধ ব্যালেন্স থেকে এর পুরো খরচ সংরক্ষিত রাখে, ঠিক ড্যাশবোর্ডের মতো। উত্তরে থাকে ক্যাম্পেইনের id, খরচ এবং স্ট্যাটাস: TaskerData রিভিউ করার সময় pending, অথবা আপনি বিশ্বস্ত রিকোয়েস্টার হলে সঙ্গে সঙ্গে active।

JSON বডি

প্যারামিটারবিবরণ
title আবশ্যকক্যাম্পেইনের শিরোনাম, সর্বোচ্চ 100 অক্ষর
category আবশ্যকGET /api/v1/options থেকে একটি ক্যাটাগরি। টেমপ্লেট ব্যবহার করলে এটি বাদ দিন
instructions আবশ্যকওয়ার্কারদের কী করতে হবে, সর্বোচ্চ 5,000 অক্ষর
url ওয়ার্কাররা যে লিংক খোলেন। যেসব ক্যাটাগরিতে needs_url true, সেগুলোতে আবশ্যক
payment আবশ্যকপ্রতি টাস্কে পেমেন্ট USD-তে, সর্বনিম্ন 0.12
positions আবশ্যককতজন ওয়ার্কার, সর্বনিম্ন 10। টেমপ্লেট ডেটা ফাইল থাকলে সারি থেকে হিসাব করা হয়
time_to_complete আবশ্যকওয়ার্কার কত মিনিটে শেষ করবেন, 1 থেকে 120
time_to_rate আবশ্যকপ্রতিটি সাবমিশন রিভিউ করার জন্য আপনার হাতে কত দিন, 1 থেকে 30। এরপর এটি স্বয়ংক্রিয়ভাবে অনুমোদিত হয়
proof.text টেক্সট উত্তর চান: ওয়ার্কারকে বলুন কী লিখতে হবে
proof.images স্ক্রিনশট বা ছবি চান: প্রতিটি ছবির জন্য একটি বিবরণ
proof.video ভিডিও বা রেকর্ডিং চান: তাতে কী দেখা যাবে
targeting.region international (ডিফল্ট), usa, west-europe, east-europe, latin-america বা asia-africa
targeting.exclude_countries অঞ্চল থেকে যেসব দেশ বাদ দিতে চান, তাদের নাম
targeting.min_success_rate ওয়ার্কারের সর্বনিম্ন সফলতার হার: 75 (ডিফল্ট), 80, 85, 90, 95 বা 100
targeting.type, targeting.group_id শুধু আপনার কোনো ওয়ার্কার গ্রুপকে টাস্কটি পাঠাতে type-এ "group" দিন এবং group_id-তে সেই গ্রুপটি দিন
qualification_id শুধু যেসব ওয়ার্কার এই কোয়ালিফিকেশন টেস্টে পাস করেছেন, তারাই টাস্কটি নিতে পারবেন
template নির্দেশনার বদলে আপনার কোনো টেমপ্লেট ব্যবহার করুন: id, সাথে data, যার columns ও rows টেমপ্লেটের প্লেসহোল্ডার পূরণ করে, প্রতি টাস্কে একটি সারি। answers_per_row (1 থেকে 5) ও rows_per_task (1 থেকে 50) ঐচ্ছিক
drip_feed ওয়ার্কারদের ধাপে ধাপে ছাড়ুন: min_workers ও max_workers (1 থেকে 50) এবং interval_minutes (15, 30, 60, 120, 180, 360, 720 বা 1440)
location স্থানীয় ফিল্ড টাস্ক ও মিস্ট্রি শপিংয়ের জন্য: lat, lng, radius_m (50 থেকে 50,000) এবং ঐচ্ছিক address

আপাতত যেসব ক্যাটাগরিতে আপনাকে ফাইল আপলোড করতে হয় (যেমন অডিও ট্রান্সক্রিপশন বা ছবি ট্যাগিং), ভিডিও টাস্ক এবং উদাহরণ ছবি শুধু ড্যাশবোর্ডেই তৈরি করা যায়। দাম কীভাবে হিসাব হয় তা খরচ ও ফি গাইডে ব্যাখ্যা করা আছে।

curl -X POST "https://taskerdata.com/api/v1/campaigns" \
  -H "Authorization: Bearer $TASKERDATA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Test our sign-up page",
    "category": "Website Testing",
    "url": "https://example.com/signup",
    "instructions": "Open the page, create an account and tell us anything that went wrong.",
    "payment": 0.5,
    "positions": 50,
    "time_to_complete": 10,
    "time_to_rate": 3,
    "proof": {
      "text": "What went wrong?",
      "images": [
        "Screenshot after signing up"
      ]
    },
    "targeting": {
      "region": "international",
      "min_success_rate": 90
    }
  }'

রেসপন্স · 201

{
  "success": true,
  "campaign": {
    "id": "Ab12…-Cd34…-Ef56…",
    "title": "Test our sign-up page",
    "status": "pending",
    "category": "Website Testing",
    "type": "instructions",
    "url": "https://example.com/signup",
    "payment": 0.5,
    "positions": 50,
    "filled_positions": 0,
    "time_to_complete": 10,
    "time_to_rate": 3,
    "cost": 34.06,
    "proof": {
      "text": "What went wrong?",
      "images": [
        "Screenshot after signing up"
      ],
      "video": null
    },
    "qualification_id": null,
    "created_at": "2026-10-16T09:30:00.000Z"
  },
  "balance": {
    "available": 65.94,
    "reserved": 34.06
  }
}

এররের উদাহরণ

// status 402
{
  "success": false,
  "error": {
    "code": "insufficient_balance",
    "message": "Insufficient balance"
  }
}

সাবমিশন পান

GET/api/v1/campaigns/{id}/submissions

একটি ক্যাম্পেইনের জন্য ওয়ার্কারদের পাঠানো কাজ, পুরোনোগুলো আগে, প্রমাণসহ: টেক্সট উত্তর, ছবি ও ভিডিওর লিংক, টেমপ্লেটের উত্তর (answers), তারা যে ডেটা সারিতে কাজ করেছেন সেটি এবং ফিল্ড টাস্কের ক্ষেত্রে তাদের লোকেশন।

ঠিকানার মধ্যে

প্যারামিটারবিবরণ
id আবশ্যকক্যাম্পেইন ID (ক্যাম্পেইনের তালিকায় id)

কোয়েরি প্যারামিটার

প্যারামিটারবিবরণ
status to_review (pending ও resubmitted), pending, resubmitted, revision_requested, approved বা rejected
since শুধু এই সময়ে বা এর পরে পাঠানো সাবমিশন, যেমন 2026-10-01T00:00:00Z
after_id পেজিংয়ের জন্য: শুধু এর চেয়ে বড় id-এর সাবমিশন। আগের পেজের next_after_id ব্যবহার করুন
limit কতগুলো ফেরত দেবে, 1 থেকে 100 (ডিফল্ট 50)

নিয়মিত নতুন কাজ সংগ্রহ করতে, শেষ যে id পেয়েছেন তা রেখে দিন এবং পরের বার after_id হিসেবে পাঠান। ওয়ার্কারের পাঠানো সবকিছু raw-এ থাকে, যদি তালিকায় নেই এমন কিছু দরকার হয়।

curl "https://taskerdata.com/api/v1/campaigns/CAMPAIGN_ID/submissions?status=to_review&after_id=0" \
  -H "Authorization: Bearer $TASKERDATA_API_KEY"

রেসপন্স · 200

{
  "success": true,
  "submissions": [
    {
      "id": 1842,
      "campaign_id": "Ab12…-Cd34…-Ef56…",
      "worker_id": "wK3…",
      "status": "pending",
      "started_at": "2026-10-16 10:02:11",
      "submitted_at": "2026-10-16 10:09:45",
      "revision_count": 0,
      "revision_note": null,
      "rejection_reason": null,
      "payment": 0.5,
      "proof": {
        "text": "The confirm button did nothing on mobile.",
        "image_urls": [
          "https://storage.taskerdata.com/…/proof_0.png"
        ],
        "video_url": null
      },
      "answers": null,
      "data_row": null,
      "data_row_number": null,
      "items": null,
      "location": null,
      "raw": {
        "textProof": "…"
      }
    }
  ],
  "has_more": false,
  "next_after_id": null
}

এররের উদাহরণ

// status 400
{
  "success": false,
  "error": {
    "code": "invalid_status",
    "message": "status must be one of: to_review, pending, resubmitted, revision_requested, approved, rejected."
  }
}

সাবমিশন রিভিউ করুন

POST/api/v1/submissions/{id}/review

অনুমোদন, প্রত্যাখ্যান বা সংশোধনের অনুরোধ করুন, ড্যাশবোর্ডের বোতামগুলোর মতোই। অনুমোদন করলে সংরক্ষিত টাকা থেকে ওয়ার্কারকে পেমেন্ট দেওয়া হয়। প্রত্যাখ্যান করলে পেমেন্ট ও তার ফি আপনার ব্যালেন্সে ফিরে আসে এবং পজিশনটি অন্য ওয়ার্কারের জন্য খুলে যায়।

ঠিকানার মধ্যে

প্যারামিটারবিবরণ
id আবশ্যকসাবমিশন ID

JSON বডি

প্যারামিটারবিবরণ
action আবশ্যকapprove, reject বা revision
reason reject-এর সাথে: ওয়ার্কার যে কারণ দেখবেন
note revision-এর সাথে (আবশ্যক): ওয়ার্কারকে কী ঠিক করতে হবে

কোনো সাবমিশন শুধু রিভিউয়ের অপেক্ষায় থাকলে (pending বা resubmitted) সেটি রিভিউ করতে পারবেন। সংশোধনের সংখ্যা ক্যাম্পেইনের সংশোধন সীমা পর্যন্ত; এরপর শুধু অনুমোদন বা প্রত্যাখ্যান করতে পারবেন।

curl -X POST "https://taskerdata.com/api/v1/submissions/1842/review" \
  -H "Authorization: Bearer $TASKERDATA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "action": "revision",
    "note": "Please add a screenshot of the error message."
  }'

রেসপন্স · 200

{
  "success": true,
  "submission": {
    "id": 1842,
    "status": "revision_requested"
  },
  "balance": {
    "available": 65.94,
    "reserved": 34.06
  }
}

এররের উদাহরণ

// status 409
{
  "success": false,
  "error": {
    "code": "already_reviewed",
    "message": "Submission already reviewed"
  }
}

ব্যালেন্স দেখুন

GET/api/v1/balance

available হলো নতুন ক্যাম্পেইনে যা খরচ করতে পারবেন, reserved হলো লাইভ ক্যাম্পেইনের জন্য রাখা টাকা, আর spent হলো এ পর্যন্ত ওয়ার্কারদের যা পেমেন্ট দিয়েছেন।

curl "https://taskerdata.com/api/v1/balance" \
  -H "Authorization: Bearer $TASKERDATA_API_KEY"

রেসপন্স · 200

{
  "success": true,
  "balance": {
    "available": 65.94,
    "reserved": 34.06,
    "spent": 212.4
  }
}

অপশন ও ID

GET/api/v1/options

API দিয়ে যেসব ক্যাটাগরি ব্যবহার করতে পারবেন তার তালিকা (needs_url ও needs_location দেখায় কোনগুলোতে লিংক বা লোকেশন লাগে), টার্গেটিং ও ড্রিপ ফিডের অনুমোদিত মান, এবং আপনার টেমপ্লেট, ওয়ার্কার গ্রুপ ও কোয়ালিফিকেশন টেস্টের ID।

curl "https://taskerdata.com/api/v1/options" \
  -H "Authorization: Bearer $TASKERDATA_API_KEY"

রেসপন্স · 200

{
  "success": true,
  "categories": [
    {
      "name": "Website Testing",
      "needs_url": true,
      "needs_location": false
    },
    "…"
  ],
  "regions": [
    "international",
    "usa",
    "west-europe",
    "east-europe",
    "latin-america",
    "asia-africa"
  ],
  "min_success_rates": [
    75,
    80,
    85,
    90,
    95,
    100
  ],
  "drip_feed_intervals": [
    15,
    30,
    60,
    120,
    180,
    360,
    720,
    1440
  ],
  "templates": [
    {
      "id": 12,
      "title": "Sentiment check"
    }
  ],
  "worker_groups": [
    {
      "id": 3,
      "name": "Trusted testers",
      "workers": 25
    }
  ],
  "qualifications": [
    {
      "id": "Qa1…",
      "title": "English test",
      "status": "active"
    }
  ]
}

এরর

Campaign API HTTP স্ট্যাটাস কোড ব্যবহার করে। কিছু ভুল হলে success হয় false, এবং error-এ থাকে একটি code, যা আপনার কোডে যাচাই করবেন, আর একটি message, যা দেখাবেন বা লগ করবেন। ক্যাম্পেইন যাচাইয়ে ড্যাশবোর্ডের মতোই মেসেজ আসে।

স্ট্যাটাসerror.codeএর মানে কী
400invalid_body, invalid_campaign, invalid_region, category_needs_files, invalid_status, invalid_since, invalid_action, note_requiredরিকোয়েস্টে কিছু নেই বা অনুমোদিত নয়। message-এ জানানো হয় কী।
401missing_api_key, invalid_api_keyAPI key নেই, অথবা key ভুল বা নতুন key দিয়ে বদলে গেছে।
402insufficient_balanceআপনার উপলব্ধ ব্যালেন্সে ক্যাম্পেইনের খরচ কুলায় না। ফান্ড যোগ করে আবার চেষ্টা করুন।
403test_key_not_allowed, account_suspendedআপনার লাইভ API key ব্যবহার করুন। সাসপেন্ড করা অ্যাকাউন্ট API ব্যবহার করতে পারে না।
404not_foundআপনার অ্যাকাউন্টে এই ID-এর কোনো ক্যাম্পেইন বা সাবমিশন নেই।
409already_reviewed, review_refusedসাবমিশনটি আগেই রিভিউ করা হয়েছে, অথবা এই মুহূর্তে রিভিউ সম্ভব নয়, যেমন সংশোধন সীমা পূর্ণ হয়ে গেছে।
429rate_limitedএক মিনিটে 120টির বেশি রিকোয়েস্ট। Retry-After-এ যত সেকেন্ড আছে তত অপেক্ষা করুন।
500internal_errorআমাদের দিকে সমস্যা হয়েছে। আবার চেষ্টা করুন, আর বারবার হলে সাপোর্টে যোগাযোগ করুন।

এক্সটার্নাল কোয়ালিফিকেশন টেস্ট

যেসব কোয়ালিফিকেশন টেস্ট আপনার নিজের ওয়েবসাইটে চলে, সেগুলোর জন্য।

টেস্টের ফলাফল জানান লাইভ

GET/api/worker/external_qualification/data

এক্সটার্নাল হিসেবে চিহ্নিত কোয়ালিফিকেশন টেস্টের জন্য। ওয়ার্কার কোয়ালিফিকেশন থেকে আপনার টেস্ট খোলেন এবং আপনার ওয়েবসাইটে তার ওয়ার্কার টোকেন দেন। তিনি শেষ করলে approve বা reject দিয়ে এই এন্ডপয়েন্ট কল করুন।

প্যারামিটারবিবরণ
qualification_id আবশ্যকআপনার কোয়ালিফিকেশন টেস্টের ID
worker_token আবশ্যকওয়ার্কার আপনার ওয়েবসাইটে যে ওয়ার্কার টোকেন দিয়েছেন
api_token আবশ্যকআপনার API key (টেস্ট এন্ডপয়েন্টের জন্য টেস্ট key)
decision আবশ্যকapprove বা reject

টেস্টে পাস করলে বোনাস দেওয়ার কথা থাকলে এবং আপনার রিকোয়েস্টার ব্যালেন্সে তা না কুলালে, সাবমিশনটি অপেক্ষমাণ হিসেবে সেভ হয়, যাতে আপনি ব্যালেন্স টপ আপ করে ড্যাশবোর্ড থেকে অনুমোদন করতে পারেন।

একটি টেস্টে একজন ওয়ার্কারকে একবারই মূল্যায়ন করা যায়। টেস্টটি সক্রিয় ও এক্সটার্নাল হিসেবে চিহ্নিত থাকতে হবে, এবং API key টেস্টের মালিকের হতে হবে।

curl -G "https://taskerdata.com/api/worker/external_qualification/data" \
  --data-urlencode "qualification_id=QUAL_ID" \
  --data-urlencode "worker_token=WORKER_TOKEN" \
  --data-urlencode "api_token=YOUR_API_KEY" \
  --data-urlencode "decision=approve"

রেসপন্স · 200

{
  "success": true
}

এররের উদাহরণ

{
  "success": false,
  "error": "This worker has already been evaluated for this qualification"
}

সেটআপ পরীক্ষা করুন

POST/api/worker/external_qualification/data_test

একই ফিল্ডগুলো JSON আকারে টেস্ট এন্ডপয়েন্টে পাঠান, সাথে আপনার টেস্ট API Key। কিছুই সেভ হয় না এবং কোনো ওয়ার্কার প্রভাবিত হন না: এটি শুধু আপনার রিকোয়েস্ট যাচাই করে।

প্যারামিটারবিবরণ
qualification_id আবশ্যকআপনার কোয়ালিফিকেশন টেস্টের ID
worker_token আবশ্যকওয়ার্কার আপনার ওয়েবসাইটে যে ওয়ার্কার টোকেন দিয়েছেন
api_token আবশ্যকআপনার API key (টেস্ট এন্ডপয়েন্টের জন্য টেস্ট key)
decision আবশ্যকapprove বা reject

ভুল টেস্ট key দিলে স্ট্যাটাস 401 আসে; ফিল্ড বাদ পড়লে বা decision ভুল হলে স্ট্যাটাস 400 আসে।

curl -X POST "https://taskerdata.com/api/worker/external_qualification/data_test" \
  -H "Content-Type: application/json" \
  -d '{
    "qualification_id": "QUAL_ID",
    "worker_token": "WORKER_TOKEN",
    "api_token": "YOUR_TEST_API_KEY",
    "decision": "approve"
  }'

রেসপন্স · 200

{
  "success": true
}

এররের উদাহরণ

// status 401
{
  "statusCode": 401,
  "statusMessage": "Invalid API test key"
}

টেস্টের ফলাফলের এরর

ফলাফল এন্ডপয়েন্ট সবসময় স্ট্যাটাস 200 দিয়ে উত্তর দেয়। success দেখুন: এটি false হলে error কারণ জানায়:

errorএর মানে কী
Missing required parameters: qualification_id, worker_token, api_token, decisionচারটি প্যারামিটারের একটি নেই।
Decision must be 'approve' or 'reject'decision-এর মান অন্য কিছু।
Invalid API tokenAPI key ভুল, অথবা নতুন key দিয়ে বদলে গেছে।
Worker token not found for this qualificationটোকেনটি এই টেস্টের নয়। ওয়ার্কারকে এটি আবার দেখতে বলুন।
API token does not belong to the qualification ownerযে অ্যাকাউন্ট টেস্টটি তৈরি করেছে তার key ব্যবহার করুন।
This qualification is not configured for external submissionsটেস্টটি এক্সটার্নাল হিসেবে চিহ্নিত নয়।
This qualification is no longer activeটেস্টটি পজ করা বা শেষ হয়ে গেছে।
This worker has already been evaluated for this qualificationপ্রতিটি টেস্টে প্রত্যেক ওয়ার্কার একটি ফলাফলই পান।
Worker account is suspendedওয়ার্কার এই মুহূর্তে টেস্ট দিতে পারবেন না।
No remaining positions for this qualificationটেস্টের সব জায়গা পূর্ণ হয়ে গেছে।