DokumentacijaKūrėjams

„TaskerData“ API

Skelbkite kampanijas, rinkite darbuotojų pateikimus ir peržiūrėkite juos savo kodu arba prijunkite išorinį kvalifikacijos testą. Kiekviena užklausa autentifikuojama jūsų API raktu.

Apžvalga

Kampanijų API leidžia jūsų kodui daryti tai, ką darote užsakovo skydelyje: kurti kampanijas, sekti jų eigą, atsisiųsti pateikimus su įrodymais ir juos tvirtinti ar atmesti. Išorinės kvalifikacijos galiniai taškai leidžia testui jūsų svetainėje pranešti „TaskerData“, ar kiekvienas darbuotojas išlaikė.

Visos užklausos siunčiamos į https://taskerdata.com per HTTPS. Siunčiate ir gaunate JSON.

Per API sukurtos kampanijos kainuoja tiek pat ir laikosi tų pačių taisyklių kaip skydelyje. „TaskerData“ jas peržiūri prieš paskelbiant (patikimų užsakovų paskelbiamos iš karto), o pinigai rezervuojami ir išmokami taip pat.

Jūsų serveris
„TaskerData“ API
Darbuotojai
Kur API dalyvauja

Autentifikavimas

Atidarykite užsakovo skydelį ir eikite į „API“. Ten rasite du raktus:

  • API raktas: tikroms užklausoms. Kampanijų API jį skaito iš Authorization antraštės. Kvalifikacijos galinis taškas jį priima kaip api_token.
  • Bandomasis API raktas: tik kvalifikacijos bandomajam galiniam taškui, kad galėtumėte išbandyti integraciją nepaveikdami tikrų darbuotojų.
API raktasTikros užklausos (Kampanijų API ir testų rezultatai)
Authorization: Bearer k9Xq••••••••3f9a
Bandomasis API raktasTik kvalifikacijos bandomajam galiniam taškui
api_token=Tz4m••••••••a71c
Jūsų du raktai

Sukūrus naują raktą senasis iš karto pakeičiamas, todėl tada atnaujinkite savo serverį. Per valandą galite sukurti iki 3 naujų raktų.

Svarbu: Laikykite API raktą paslaptyje. Naudokite jį tik savo serveryje, niekada ne lankytojams prieinamame tinklalapyje ar programėlėje.

Su kiekviena Kampanijų API užklausa siųskite savo API raktą:

Authorization: Bearer YOUR_API_KEY

Galite atlikti iki 120 Kampanijų API užklausų per minutę. Antraštė X-RateLimit-Remaining rodo, kiek liko. Viršijus gaunate būseną 429, o antraštė Retry-After nurodo, kiek sekundžių palaukti.

Kampanijų API

Kurkite kampanijas ir tvarkykite jų atneštą darbą savo kodu.

  1. SukūrimasPOST …/campaigns
  2. „TaskerData“ peržiūra
  3. Paskelbta
  4. Ateina pateikimaiGET …/submissions
  5. Patvirtinti, taisyti ar atmestiPOST …/review
  6. Darbuotojui sumokama
Kampanijos gyvavimo ciklas

Kampanijų sąrašas

GET/api/v1/campaigns

Jūsų kampanijos, naujausios pirmiausia. total rodo, kiek kampanijų atitinka, todėl per jas galite naršyti su limit ir offset.

Užklausos parametrai

ParametrasAprašymas
status Tik šios būsenos kampanijos: pending, in review, active, paused, completed, terminated arba rejected
limit Kiek grąžinti, nuo 1 iki 100 (numatyta 20)
offset Kiek praleisti, puslapiavimui (numatyta 0)
curl "https://taskerdata.com/api/v1/campaigns?status=active&limit=20" \
  -H "Authorization: Bearer $TASKERDATA_API_KEY"

Atsakymas · 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
}

Klaidos pavyzdys

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

Gauti kampaniją

GET/api/v1/campaigns/{id}

Viena kampanija su jos nustatymais ir kiek pateikimų laukia peržiūros, laukia taisymo, patvirtinta ir atmesta. Naudokite ją kampanijos eigai sekti.

Adrese

ParametrasAprašymas
id privalomaKampanijos ID (id kampanijų sąraše)
curl "https://taskerdata.com/api/v1/campaigns/CAMPAIGN_ID" \
  -H "Authorization: Bearer $TASKERDATA_API_KEY"

Atsakymas · 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
    }
  }
}

Klaidos pavyzdys

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

Sukurti kampaniją

POST/api/v1/campaigns

Paskelbia naują kampaniją ir rezervuoja visą jos kainą iš jūsų turimo likučio, lygiai kaip skydelis. Atsakyme yra kampanijos id, jos kaina ir būsena: pending, kol „TaskerData“ ją peržiūri, arba iš karto active, jei esate patikimas užsakovas.

JSON turinys

ParametrasAprašymas
title privalomaKampanijos pavadinimas, iki 100 simbolių
category privalomaKategorija iš GET /api/v1/options. Naudodami šabloną jos nenurodykite
instructions privalomaKą turi daryti darbuotojai, iki 5 000 simbolių
url Nuoroda, kurią atidaro darbuotojai. Privaloma kategorijoms, kurių needs_url yra true
payment privalomaUžmokestis už užduotį USD, bent 0,12
positions privalomaKiek darbuotojų, bent 10. Su šablono duomenų failu apskaičiuojama pagal eilutes
time_to_complete privalomaMinutės, per kurias darbuotojas turi baigti, nuo 1 iki 120
time_to_rate privalomaDienos kiekvienam pateikimui peržiūrėti, nuo 1 iki 30. Po to patvirtinama automatiškai
proof.text Prašyti tekstinio atsakymo: nurodykite darbuotojui, ką parašyti
proof.images Prašyti ekrano kopijų ar nuotraukų: po vieną aprašymą kiekvienam paveikslėliui
proof.video Prašyti vaizdo įrašo ar įrašymo: ką jame turi būti matyti
targeting.region international (numatyta), usa, west-europe, east-europe, latin-america arba asia-africa
targeting.exclude_countries Šalių pavadinimai, kuriuos reikia išskirti iš regiono
targeting.min_success_rate Mažiausias darbuotojo sėkmės rodiklis: 75 (numatyta), 80, 85, 90, 95 arba 100
targeting.type, targeting.group_id Nustatykite type į "group" ir group_id į vieną iš savo darbuotojų grupių, kad užduotis būtų siunčiama tik tai grupei
qualification_id Užduoties gali imtis tik šį kvalifikacijos testą išlaikę darbuotojai
template Naudokite vieną iš savo šablonų vietoj instrukcijų: id ir data su columns bei rows, kurie užpildo jo vietos rezervavimo žymas, po vieną eilutę užduočiai. answers_per_row (nuo 1 iki 5) ir rows_per_task (nuo 1 iki 50) neprivalomi
drip_feed Skelbti darbuotojams dalimis: min_workers ir max_workers (nuo 1 iki 50) bei interval_minutes (15, 30, 60, 120, 180, 360, 720 arba 1440)
location Vietinėms lauko užduotims ir slapto pirkėjo užduotims: lat, lng, radius_m (nuo 50 iki 50 000) ir neprivalomas address

Kol kas kategorijos, kurioms reikia jūsų įkeliamų failų (pvz., garso transkribavimas ar paveikslėlių žymėjimas), vaizdo įrašų užduotys ir pavyzdiniai paveikslėliai gali būti kuriami tik skydelyje. Kaip skaičiuojama kaina, paaiškinta gide „Kainos ir mokesčiai“.

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
    }
  }'

Atsakymas · 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
  }
}

Klaidos pavyzdys

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

Gauti pateikimus

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

Vienos kampanijos darbuotojų atsiųstas darbas, seniausias pirmiausia, su įrodymais: tekstiniu atsakymu, nuorodomis į paveikslėlius ir vaizdo įrašus, šablono atsakymais (answers), duomenų eilute, su kuria dirbo, ir, lauko užduotims, jų vieta.

Adrese

ParametrasAprašymas
id privalomaKampanijos ID (id kampanijų sąraše)

Užklausos parametrai

ParametrasAprašymas
status to_review (pending ir resubmitted), pending, resubmitted, revision_requested, approved arba rejected
since Tik pateikimai, išsiųsti šiuo metu ar vėliau, pavyzdžiui, 2026-10-01T00:00:00Z
after_id Puslapiavimui: tik pateikimai su didesniu id. Naudokite next_after_id iš ankstesnio puslapio
limit Kiek grąžinti, nuo 1 iki 100 (numatyta 50)

Norėdami reguliariai rinkti naują darbą, išsisaugokite paskutinį gautą id ir kitą kartą siųskite jį kaip after_id. raw turi viską, ką atsiuntė darbuotojas, jei prireiktų to, kas neišvardyta.

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

Atsakymas · 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
}

Klaidos pavyzdys

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

Peržiūrėti pateikimą

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

Patvirtinkite, atmeskite arba paprašykite pataisyti, kaip skydelio mygtukais. Patvirtinus darbuotojui sumokama iš rezervuotų pinigų. Atmetus užmokestis ir jo mokestis grąžinami į jūsų likutį, o vieta atlaisvinama kitam darbuotojui.

Adrese

ParametrasAprašymas
id privalomaPateikimo ID

JSON turinys

ParametrasAprašymas
action privalomaapprove, reject arba revision
reason Su reject: priežastis, kurią mato darbuotojas
note Su revision (privaloma): ką darbuotojas turėtų pataisyti

Pateikimą galite peržiūrėti tik tol, kol jis laukia peržiūros (pending arba resubmitted). Taisymų skaičių riboja kampanijos taisymų riba; ją pasiekus galite tik patvirtinti arba atmesti.

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

Atsakymas · 200

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

Klaidos pavyzdys

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

Patikrinkite likutį

GET/api/v1/balance

available – kiek galite išleisti naujoms kampanijoms, reserved – rezervuota vykdomoms kampanijoms, o spent – kiek iki šiol sumokėjote darbuotojams.

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

Atsakymas · 200

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

Parinktys ir ID

GET/api/v1/options

Pateikia kategorijas, kurias galite naudoti per API (needs_url ir needs_location rodo, kurioms reikia nuorodos ar vietos), leidžiamas taikymo ir laipsniško paskelbimo reikšmes bei jūsų šablonų, darbuotojų grupių ir kvalifikacijos testų ID.

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

Atsakymas · 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"
    }
  ]
}

Klaidos

Kampanijų API naudoja HTTP būsenos kodus. Kai kas nors nepavyksta, success yra false, o error turi kodą, kurį galite tikrinti savo kode, ir pranešimą, kurį galite parodyti ar įrašyti į žurnalą. Kampanijų patikros naudoja tuos pačius pranešimus kaip skydelis.

Būsenaerror.codeKą tai reiškia
400invalid_body, invalid_campaign, invalid_region, category_needs_files, invalid_status, invalid_since, invalid_action, note_requiredKažko užklausoje trūksta arba tai neleidžiama. message nurodo ką.
401missing_api_key, invalid_api_keyNėra API rakto, arba raktas neteisingas ar pakeistas naujesniu.
402insufficient_balanceJūsų turimas likutis nepadengia kampanijos. Papildykite lėšas ir bandykite dar kartą.
403test_key_not_allowed, account_suspendedNaudokite tikrąjį API raktą. Sustabdyta paskyra negali naudoti API.
404not_foundJūsų paskyroje nėra kampanijos ar pateikimo su tokiu ID.
409already_reviewed, review_refusedPateikimas jau peržiūrėtas arba peržiūra šiuo metu neįmanoma, pavyzdžiui, nes pasiekta taisymų riba.
429rate_limitedDaugiau nei 120 užklausų per minutę. Palaukite tiek sekundžių, kiek nurodyta Retry-After.
500internal_errorProblema mūsų pusėje. Bandykite dar kartą, o jei kartojasi, susisiekite su pagalba.

Išoriniai kvalifikacijos testai

Kvalifikacijos testams, vykdomiems jūsų svetainėje.

  1. Darbuotojas atidaro jūsų testą
  2. Įveda savo darbuotojo žetoną
  3. Laiko testą jūsų svetainėje
  4. Jūsų serveris praneša rezultatądecision=approve
  5. Darbuotojas kvalifikuotas
Išorinio testo eiga

Pranešti testo rezultatą Tikras

GET/api/worker/external_qualification/data

Kvalifikacijos testams, pažymėtiems kaip išoriniai. Darbuotojas atidaro jūsų testą iš kvalifikacijos ir jūsų svetainėje įveda savo darbuotojo žetoną. Jam baigus, iškvieskite šį galinį tašką su approve arba reject.

ParametrasAprašymas
qualification_id privalomaJūsų kvalifikacijos testo ID
worker_token privalomaDarbuotojo žetonas, kurį darbuotojas įvedė jūsų svetainėje
api_token privalomaJūsų API raktas (bandomajam galiniam taškui – bandomasis raktas)
decision privalomaapprove arba reject

Jei testas už išlaikymą moka premiją, o jūsų užsakovo likutis jos nepadengia, pateikimas išsaugomas kaip laukiantis, kad galėtumėte papildyti likutį ir patvirtinti jį skydelyje.

Darbuotoją viename teste galima įvertinti vieną kartą. Testas turi būti aktyvus ir pažymėtas kaip išorinis, o API raktas turi priklausyti testo savininkui.

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"

Atsakymas · 200

{
  "success": true
}

Klaidos pavyzdys

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

Išbandykite nustatymus

POST/api/worker/external_qualification/data_test

Siųskite tuos pačius laukus kaip JSON į bandomąjį galinį tašką su savo bandomuoju API raktu. Niekas neišsaugoma ir jokiam darbuotojui neturi įtakos: tikrinama tik jūsų užklausa.

ParametrasAprašymas
qualification_id privalomaJūsų kvalifikacijos testo ID
worker_token privalomaDarbuotojo žetonas, kurį darbuotojas įvedė jūsų svetainėje
api_token privalomaJūsų API raktas (bandomajam galiniam taškui – bandomasis raktas)
decision privalomaapprove arba reject

Neteisingas bandomasis raktas grąžina būseną 401; trūkstami laukai ar neteisingas sprendimas – būseną 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"
  }'

Atsakymas · 200

{
  "success": true
}

Klaidos pavyzdys

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

Testo rezultato klaidos

Rezultato galinis taškas visada atsako būsena 200. Tikrinkite success: kai jis false, error nurodo priežastį:

errorKą tai reiškia
Missing required parameters: qualification_id, worker_token, api_token, decisionTrūksta vieno iš keturių parametrų.
Decision must be 'approve' or 'reject'decision turi kitą reikšmę.
Invalid API tokenAPI raktas neteisingas arba pakeistas naujesniu.
Worker token not found for this qualificationŽetonas nepriklauso šiam testui. Paprašykite darbuotojo jį patikrinti.
API token does not belong to the qualification ownerNaudokite paskyros, sukūrusios testą, raktą.
This qualification is not configured for external submissionsTestas nepažymėtas kaip išorinis.
This qualification is no longer activeTestas pristabdytas arba baigtas.
This worker has already been evaluated for this qualificationKiekvienas darbuotojas viename teste gauna vieną rezultatą.
Worker account is suspendedDarbuotojas šiuo metu negali laikyti testų.
No remaining positions for this qualificationVisos testo vietos užimtos.