video.maxkuch.com

← Click Campaigns

Microworkers API: Research Brief

Background research for the campaign-creation flow. Note: v2 (TTV) is documented here; the live test on the parent page is currently wired to the v1 API.

Microworkers API: Technical Brief

v2 of the Microworkers API (TTV / api2 platform). Sources cited inline. Where docs are thin or ambiguous, that is called out explicitly.

1. API Access Prerequisites

  • API access is not auto-enabled. Email info@microworkers.com to request employer API access (API Tutorial Intro, api.php).
  • API key lives at My Data → Account in the employer backend.
  • IP whitelisting enforced. "API ACCESS IP DENIED" is a documented error. Register every server IP that will hit the API.
  • Minimum employer deposit: $10 before first campaign can launch.
  • Base URL: https://ttv.microworkers.com/api/v2/ (API 2.0 docs).

2. Authentication

Header name: MicroworkersApiKey (custom scheme, not Bearer).

curl -H "MicroworkersApiKey: YOUR_API_KEY_HERE" \ https://ttv.microworkers.com/api/v2/accounts/me

A separate mw_hash (MD5 of email + api_key) is used only when verifying inbound callback notifications, not outbound auth.

3. Campaign Creation (Hire Group)

For YouTube-search clicks we want Hire Group campaigns (country + worker-quality targeting), not Basic.

POST https://ttv.microworkers.com/api/v2/hire-group-campaigns (docs)

FieldTypeNotes
availablePositionsinttotal slots
categoryIdstringcategory lookup needed
groupIdstringwhich Hire Group sees the job
titlestringshown to workers
descriptionstringtask summary
paymentPerTaskfloatUSD per accepted task
minutesToFinishintworker time window
ttrintdays you have to rate submissions before auto-approve
maxPositionPerWorkerint0 = unlimited
internalTemplate / externalTemplateobjectmutually exclusive

Important optional fields: qtRequired, notificationSettings (SQS), visibilityDelay (0–3600 s), autoSkipTask, maximumJobLimit (standardSchedule / advancedSchedule).

internalTemplate sub-fields: id, ratingMethodId (1=Admin, 2=Admin+Employer, 3=Employer), adminInstructions, numberOfFileProofs (1–3), allowedFileTypes.

curl -X POST https://ttv.microworkers.com/api/v2/hire-group-campaigns \ -H "MicroworkersApiKey: $MW_KEY" \ -H "Content-Type: application/json" \ -d '{ "availablePositions": 50, "categoryId": "10", "groupId": "18f477773330", "title": "Search YouTube for a keyword and watch a video", "description": "Open YouTube, search keyword, scroll, click target video, watch 3 minutes", "paymentPerTask": 0.15, "minutesToFinish": 10, "ttr": 2, "maxPositionPerWorker": 1, "qtRequired": false, "internalTemplate": { "id": "T550bd781e36b5", "ratingMethodId": 3, "numberOfFileProofs": 1, "allowedFileTypes": ["jpg","png"] } }'

Response: 202 Accepted with header queue-job-id. Creation is asynchronous. Poll /job-queue/{id} for the actual campaign ID. Body shape not formally documented. Recommend opening a support ticket to confirm.

4. Targeting Parameters

  • Country targeting is not a flat field. It happens upstream by attaching the campaign to a groupId (Hire Group). Predefined groups: "ALL Canada Workers", "Best Rated Countries", "English Speaking Countries", "Top USA Workers", "USA California", etc. Build up to 25 custom groups (verified employer) or 3 (unverified).
  • Custom group filters: Activity Level, General Ratings, Category Expertise, Geographic include/exclude (source).
  • Legacy "Newbie/Regular/Elite" tiers no longer surface in TTV docs. Open a support ticket if a guaranteed mapping is needed.
  • Per-worker limits: maxPositionPerWorker (lifetime per campaign) + maximumJobLimit.limitPerDay / limitPerHour. No per-IP cap field; MW enforces one-account-per-IP platform-wide.
  • Basic campaigns expose internationalZone (global w/ up to 10 country exclusions) vs targetedZone (country whitelist).
  • No documented language, device, or age targeting at API level.

5. Pricing & Budget

  • Platform commission: 10% taken from worker payout (worker keeps 90%). Employer is also charged a service fee on top of paymentPerTask. Exact employer-side markup is not published in v2 docs. Confirm with support before budgeting.
  • Minimum paymentPerTask: $0.10. Typical range $0.05–$1.00, most tasks 5–30¢.
  • Going rate for a 3–5 min YouTube search-watch: $0.10–$0.25. Pay more for Best Rated Countries/USA groups.
  • Rejected submissions are not charged.

6. Task Template & Proof

  • Two template families: internal (MW-hosted form) and external (you host; MW iframes it and passes {{CAMP_ID}}, {{MW_ID}}, {{RAND_KEY}} in the URL).
  • Instructions are plain text / light HTML in description + adminInstructions.
  • Proof types: file upload (1–3 files, MIME restricted), free-text answers, URL, dropdown / multiple choice. Defined inside the Template via /templates endpoints.
  • For external templates, proof posts back via POST https://ttv.microworkers.com/dotask/submitProof/:campaignId/:campaignType from your server.
  • Retrieve submissions via Slot endpoints (/slots/{id}, Submit Proof, Rate, Download File Proof, Give Bonus).

7. Lifecycle Endpoints

  • Pause / Resume / Restart / Stop / Delete on /hire-group-campaigns/{id}.
  • Update: PUT /hire-group-campaigns/{id} — used to raise availablePositions mid-flight.
  • List Slots: GET /hire-group-campaigns/{id}/slots — paginated submissions.
  • Rate Slot: POST /slots/{id}/rate (approve / reject with reason).
  • Job Queue: GET /job-queue/{id} to resolve async create/update jobs.
  • Excluded Worker: POST /excluded-workers to ban a worker from your campaigns (critical for de-duping repeat fraud).
  • Transaction: GET /transactions for billing audit.

8. Webhooks / Notifications

  • Mechanism is Amazon SQS, not HTTPS webhooks. Pass an SQS queue URL in notificationSettings on create and grant SendMessage to MW's AWS principal.
  • Documented event types: SlotReadyForRating, SlotRemoved, SlotLocked, SlotRevised, SlotLockExpired, SlotReviseRequested, SlotLockReleased, SlotSatisfied, CampaignFinished.
  • Payload shape per event is not published. Log a sample and open a ticket for the schema.

9. Rate Limits & Quotas

Not published. No rate-limit doc on api2docs or the employer help center. Conservative implementation: ≤ 1 req/s, exponential backoff on 429, queue campaign creates serially (they are async via queue-job-id anyway). Confirm with support before running scripts that create dozens of campaigns / day.

10. YouTube Search-Click Specifics

  • MW guidelines explicitly forbid "Ad Click Tasks" and clicking of ads. YouTube search-and-watch is a different category. Social engagement (follows, video uploads, voting) is listed as allowed. Grey area: framing it as "boost CTR / manipulate ranking" gets rejected; "find and watch" usually clears review.
  • Battle-tested worker instructions:
    1. Open youtube.com (not via a link)
    2. Search for: <exact keyword>
    3. Scroll until you see the video titled <exact title> by channel <channel name>
    4. Click that video
    5. Watch at least 180 seconds without pausing; like the video (optional)
    6. Submit (a) screenshot of the video playing with timestamp visible, (b) the YouTube URL from the address bar
  • Anti-fraud combo that minimizes cheating: require both screenshot and pasted URL (URL contains a per-session watch param). Add a free-text "what was the first comment under the video?" question to kill bot workers.
  • Repeat-task prevention: set maxPositionPerWorker: 1 and use /excluded-workers to ban repeaters across related campaigns.

11. Common Rejection Reasons

Pre-launch admin review is mandatory. Frequent rejection causes:

  • Unclear or poorly formatted instructions.
  • Aggressive tone, all-caps, threats.
  • Asking for credit card / bank / personal info.
  • Pointing at blacklisted domains (000Webhost, Neobux, PayPal sign-ups, dating, adult).
  • Requesting fake reviews or unsponsored paid reviews (must be disclosed as sponsored).
  • Ad-click or CPA framing.
  • Asking workers to contact you off-platform.
  • Auto-approve campaigns that don't conform to guidelines can have the feature revoked.

12. Alternatives

  • Clickworker — larger, higher-paying, stricter vetting; less suited to grey-area engagement.
  • SproutGigs (ex-Picoworkers) — explicit YouTube view category, lower bar, smaller crowd.
  • RapidWorkers — Picoworkers clone (same parent), cheaper, smaller pool.
  • Spare5 / Appen / UHRS — premium tier, AI training/eval, reject this use case.
  • Microworkers sits in the middle: large enough crowd, country targeting good, has a real API (most alternatives are web-UI only).

Open items to confirm with MW support

  1. Exact employer-side commission / markup over paymentPerTask.
  2. SQS notification payload schemas.
  3. API rate limits.
  4. Whether "YouTube search → watch → screenshot" framing reliably clears admin review for our exact phrasing.
  5. Whether legacy tier names (Newbie/Regular/Elite) map onto specific predefined groupIds.