SproutGigs' API Documentation
Last updated at Mar 04, 2024
Contents
Overview
SproutGigs API is a JSON based API where buyers can manage jobs programatically.
Recently, we've started developing an API for gigs.
Anyone interested in using our gigs platform will be able to list and get details of gigs.
It's a preliminary work and we will be adding more endpoints to the gigs API in the future.
It's currently in Beta and all feedback and suggestions are appreciated.
If you have deposited over $1,000 in crypto, please message support for auto approval posts. Others considered on a case by case basis.
The base endpoint for all requests is https://sproutgigs.com/api/
Authentication
Every API request needs to be authenticated. You can create or reset you API secret in the tab SETTINGS of your Account Settings page.
To sign requests, add the header Authorization with the value of
'Basic ' + the base 64 encoding of your USER_ID and API_SECRET separated by colon
Example:
1. Generate the base64 encoding of your user_id and api_secret
php> echo base64_encode('user_id:api_secret'); php> dXNlcl9pZDphcGlfc2VjcmV0
2. Send the header Authorization in the request
$ curl -H 'Authorization: Basic dXNlcl9pZDphcGlfc2VjcmV0' \ https://sproutgigs.com/api/jobs/get-zones.php
Rate Limit
SproutGigs API has a rate limit of 1 request per seconds.
Requests will receive a 429 HTTP code back when they go over the rate limit.
If you reach the rate limit, please wait 10 seconds before sending requests to the API again.
Gigs
Get information about gigs.
Categories Endpoint
Get the list of categories and the minimum price per gig.
GET https://sproutgigs.com/api/gigs/get-categories.php
Example request
GET /api/gigs/get-categories.php HTTP/1.1 Host: sproutgigs.com Authorization: Basic dXNlcl9pZDphcGlfc2VjcmV0
Example response
[ { "category_id": "02", "subcategory_id": "0215", "category": "Artificial Intelligence", "subcategory": "AI Consulting", "min_price": "1.00" }, { "category_id": "02", "subcategory_id": "0220", "category": "Artificial Intelligence", "subcategory": "AI Development", "min_price": "1.00" }, ... { "category_id": "95", "subcategory_id": "9510", "category": "Telemarketing", "subcategory": "Supply chain management", "min_price": "1.00" }, { "category_id": "95", "subcategory_id": "9511", "category": "Telemarketing", "subcategory": "Business Consulting", "min_price": "1.00" } ]
Get Gig
Get a gig by id.
GET https://sproutgigs.com/api/gigs/get-gig.php
Example request
GET /api/gigs/get-gig.php HTTP/1.1 Host: sproutgigs.com Authorization: Basic dXNlcl9pZDphcGlfc2VjcmV0 Content-Type: application/json { "gig_id": "dc716a672cdc" }
The following attributes are available in the request body:
Attribute | Type | Required? | Default | Description |
---|---|---|---|---|
gig_id |
string | yes | — | The ID of gig you want to retrieve. |
Example response
{ "id": "dc716a672cdc", "title": "I Will Setup WordPress/Blogger Website for AD Revenue Approval", "category_id": "40", "category": "Web Development", "subcategory_id": "4001", "subcategory": "Web Development", "price": 3.11, "links": [], "images": [ { "url": "https://static.sproutgugs.com/gigs/2023/12/01/d6d49ed7/1608a5b6.png" }, { "url": "https://static.sproutgugs.com/gigs/2023/12/01/d6d49ed7/81388834.png" }, { "url": "https://static.sproutgugs.com/gigs/2023/12/01/d6d49ed7/f4fe1af6.png" }, { "url": "https://static.sproutgugs.com/gigs/2023/12/01/d6d49ed7/708db330.png" }, { "url": "https://static.sproutgugs.com/gigs/2023/12/01/d6d49ed7/665b547a.png" }, ], "description": "Hello,\r\n\r\n\ud83d\udfeaI will build a WordPress/Blogger website that is ready to apply for Ad Revenue approval.\r\n\r\n\u2714\ufe0f This gig Includes and ensures that your website looks professional and follows Ad Revenue guidelines\r\n\u2714\ufe0f And 100% Ready to apply for Ad Revenue\r\n\r\n\ud83d\udfeaWith over four years of Ad Revenue experience, my gig offers you a better chance of Ad Revenue approval.\r\n\ud83d\udfeaCheck out my satisfied client's review and images to see my work for yourself.\r\n\r\n\ud83d\udfe9WHAT'S IN THE PACKAGE\r\n\r\n\u2714\ufe0f 100% Responsive and mobile-friendly theme.\r\n\u2714\ufe0f Ad Revenue Ready.\r\n\u2714\ufe0f Google Search Console Configuration.\r\n\u2714\ufe0f Google Analytics Configuration\r\n\u2714\ufe0f Fully customizable theme.\r\n\u2714\ufe0f SEO Setup.\r\n\u2714\ufe0f Table of Content\r\n\u2714\ufe0f 4 Plugins (WordPress)\r\n\u2714\ufe0f 4 Pages (About us - Contact us - Privacy policy - Terms and conditions)\r\n\u2714\ufe0f Custom logo + site icon.\r\n\u2714\ufe0f Header menu + footer.\r\n\u2714\ufe0f Social share button.\r\n\u2714\ufe0f Custom file + widget.\r\n\r\n\r\n\ud83d\udfe5REQUIREMENTS\r\n\r\n\u2714\ufe0f For Blogger - Must have a blogger account or name for your Blog\r\n\u2714\ufe0f For WordPress - Must have a WordPress website\r\n\r\nHurry up!!! Place your order now.\r\n\r\nNote: This Gig does not guarantee at 100% your site is going to be approved by Ad Revenue\"\r\n\r\nRegards,\r\nPolando8", "seller_nickname": "Polando8", "seller_gigs_total": 952, "seller_rating_total": 4.8, "seller_member_since": "2020-07-06 22:27:10", "seller_avatar": "https://static.sproutgigs.com/avatars/2020/07/06/d6d49ed7_1668183031.png", "seller_last_refresh_datetime": "2024-03-04 14:14:32", "seller_countrycode": "bd", "seller_countryname": "Bangladesh", "delivery_time": "1d", "revisions": 2, "seller_chats_response_time": "3 hrs", "published_at": "2024-02-15 08:42:42", "active_orders": 40 }
Get Gigs
Get all active gigs. Make sure to iterate through all pages to get all the gigs.
GET https://sproutgigs.com/api/gigs/get-gigs.php
Example request
GET /api/gigs/get-gigs.php HTTP/1.1 Host: sproutgigs.com Authorization: Basic dXNlcl9pZDphcGlfc2VjcmV0 Content-Type: application/json { "page": 1, "results_per_page": 10, "order" "newest" }
The following attributes are available in the request body:
Attribute | Type | Required? | Default | Description |
---|---|---|---|---|
category_id |
string | no | — | Gig category ID. Use the categories endpoint to get the list of available categories. The category ID must be exactly what is returned in the category endpoint, respecting the leading zeroes that may exist. |
subcategory_ids |
string array | no | — | List of subcategory IDs. Use the categories endpoint to get the list of available subcategories. The subcategory ID must be exactly what is returned in the category endpoint, respecting the leading zeroes that may exist. The maximum number of subcategories is 10. |
countries |
string array | no | — | List of two letter countries codes (ISO-3166-1 alpha2). The maximum number of countries is 10. |
min_price |
float | Required if max_price is provided | — | Mininum gig price. |
max_price |
float | Required if min_price is provided | — | Maxinum gig price. |
search_term |
string | no | — | Filter gigs by title. If provided all other filter parameters will be ignored. |
page |
int | no | 1 | The page of gigs you want to retrieve. |
results_per_page |
int | no | 10 | Number of results per page. It can range from 10 to 100. |
order |
string | no | — | Retrieve gigs sorted by criteria. Leave it blank for default sort (Best Selling). Possible values: newest, oldest, price_highest, price_lowest, reviews_highest, title |
Example response
{ "current_page": 1, "results_per_page": 10, "next_page": true, "gigs": [ { "id": "ad94f20491f3", "title": "I Will Create 1000+ Do-Follow Backlinks (Today Offers)", "category_id": "20", "category": "Digital Marketing", "subcategory_id": "2082", "subcategory": "Search Engine Optimization (SEO)", "price": 1.04, "cover_image": "https://static.sproutgigs.com/gigs/2024/02/15/56184ee3/9de80da4.png", "seller_nickname": "TopSeller123", "seller_gigs_total": 572, "seller_rating_total": 4.8, "url": "https://sproutgigs.com/g/ad94f20491f3/i-will-create-1000-do-follow-backlinks-today-offers" }, { "id": "dc716a672cdc", "title": "I Will Setup WordPress/Blogger Website for AD Revenue Approval", "category_id": "40", "category": "Web Development", "subcategory_id": "4001", "subcategory": "Web Development", "price": 3.11, "cover_image" : "https://static.sproutgigs.com/gigs/2023/12/01/d6d49ed7/1608a5b6.png", "seller_nickname": "Polando8", "seller_gigs_total": 572, "seller_rating_total": 4.8, "url": "https://sproutgigs.com/g/dc716a672cdc/i-will-setup-wordpressblogger-website-for-ad-revenue-approval" } ... { "id": "96a23a1620b3", "title": "I will promote your brand to more than 3.4 million pinterest views", "category_id": "20", "category": "Digital Marketing", "subcategory_id": "2040", "subcategory": "Influencer Marketing", "price": 1.5, "cover_image": "https://static.sproutgigs.com/gigs/2024/01/09/e170e2e2/e1c31d0b.png", "seller_nickname": "Tourmalin", "seller_gigs_total": 64, "seller_rating_total": 4.9, "url": "https://sproutgigs.com/g/96a23a1620b3/i-will-promote-your-brand-to-more-than-34-million-pinterest-views" }, { "id": "aa3c91d164c0", "title": "I will Create Ad revenue Ready Blogger and WordPress Website in 24 Hr", "category_id": "40", "category": "Web Development", "subcategory_id": "4001", "subcategory": "Web Development", "price": 5.18, "cover_image": "https://static.sproutgigs.com/gigs/2024/01/06/d44f67bb/e389164a.png", "seller_nickname": "mirzuddin", "seller_gigs_total": 98, "seller_rating_total": 4.7, "url": "https://sproutgigs.com/g/aa3c91d164c0/i-will-create-ad-revenue-ready-blogger-and-wordpress-website-in-24-hr" } ] }
Get Gig Public Questions
Get all gig public questions.
GET https://sproutgigs.com/api/gigs/get-gig-public-questions.php
Example request
GET /api/gigs/get-gig-public-questions.php HTTP/1.1 Host: sproutgigs.com Authorization: Basic dXNlcl9pZDphcGlfc2VjcmV0 Content-Type: application/json { "gig_id": "dc716a672cdc", "page": 1, "results_per_page": 10 }
The following attributes are available in the request body:
Attribute | Type | Required? | Default | Description |
---|---|---|---|---|
gig_id |
string | yes | — | The ID of gig you want to retrieve public questions. |
page |
int | no | 1 | The page of public questions you want to retrieve. |
results_per_page |
int | no | 10 | Number of results per page. It can range from 10 to 100. |
order |
string | no | — | Retrieve gig public questions sorted by criteria. Leave it blank for default sort (Newest). Possible values: oldest, likes_lowest, likes_highest |
Example response
{ "current_page": 1, "results_per_page": 10, "next_page": true, "questions": [ { "question": "Dear,friend\r\n\r\nIam interested in having a blog according to your gig please let me know what requirements needed and how soon we can start?", "answer": "\u1f7e5REQUIREMENTS\r\n\r\n\u2714 For Blogger - Must have a blogger account or name for your Blog\r\n\u2714 For WordPress - Must have a WordPress website\r\n", "total_likes": 6, "created_at": "2024-02-18 14:02:43", "user_countrycode": "kw", "user_avatar": "https://static.sproutgigs.com/avatars/2023/07/27/ff9e8636_1690459323.png", "user_nickname": "zarari", "user_countryname": "Kuwait" }, { "question": "Hello my friend, can you provide a website in Arabic? ", "answer": "Your site can be in any language you wish to be. ", "total_likes": 0, "created_at": "2024-02-16 10:23:13", "user_countrycode": "dz", "user_avatar": "https://sproutgigs.com/assets/images/profile_no_image.gif", "user_nickname": "Abibas33", "user_countryname": "Algeria" }, ... { "question": "please i would like to hire your services what would be the procedure, i want you to build a blog, like this one https://blog.zulu.id/?job=aa33cd9083ab&worker=99301ea1 what would be the procedure and values please", "answer": "You need an AdSense approved website. You can place an order to start the process. ", "total_likes": 8, "created_at": "2024-01-08 14:59:00", "user_countrycode": "br", "user_avatar": "https://static.sproutgigs.com/avatars/2023/12/16/99907fbc_1702734799.png", "user_nickname": "Lindaosoueu", "user_countryname": "Brazil" }, { "question": "what is ad revenue? can you send me this company link?\r\n\r\n", "answer": "It's AdSense.\r\n\r\n", "total_likes": 10, "created_at": "2024-01-05 00:15:44", "user_countrycode": "ng", "user_avatar": "https://static.sproutgigs.com/avatars/2023/11/14/5b502594_1704413256.png", "user_nickname": "ABUTECH", "user_countryname": "Nigeria" } ] }
Get Gig Reviews
Get all gig reviews.
GET https://sproutgigs.com/api/gigs/get-gig-reviews.php
Example request
GET /api/gigs/get-gig-reviews.php HTTP/1.1 Host: sproutgigs.com Authorization: Basic dXNlcl9pZDphcGlfc2VjcmV0 Content-Type: application/json { "gig_id": "dc716a672cdc", "page": 1, "results_per_page": 10 }
The following attributes are available in the request body:
Attribute | Type | Required? | Default | Description |
---|---|---|---|---|
gig_id |
string | yes | — | The ID of gig you want to retrieve reviews. |
page |
int | no | 1 | The page of reviews you want to retrieve. |
results_per_page |
int | no | 10 | Number of results per page. It can range from 10 to 100. |
order |
string | no | — | Retrieve gig reviews sorted by criteria. Leave it blank for default sort (Newest). Possible values: oldest |
Example response
{ "current_page": 1, "results_per_page": 10, "next_page": true, "reviews": [ { "buyer": { "rating": "5", "comment": "Your work is very nice. I like it", "created_at": "2024-02-03 09:04:19", "user_countrycode": "lk", "user_nickname": "oppv", "user_countryname": "Sri Lanka", "user_avatar": "https://sproutgigs.com/assets/images/profile_no_image.gif" }, "seller": { "rating": "5", "comment": "Thanks for ordering, and I hope to see you again! Have a wonderful rest of your day.", "created_at": "2024-02-03 21:14:04", "user_countrycode": "bd", "user_nickname": "Polando8", "user_countryname": "Bangladesh", "user_avatar": "https://static.sproutgigs.com/avatars/2020/07/06/d6d49ed7_1668183031.png" } }, { "buyer": { "rating": "5", "comment": "Thank you very much \u1f60a", "created_at": "2024-02-05 06:55:26", "user_countrycode": "us", "user_nickname": "Narcisse1992", "user_countryname": "United States", "user_avatar": "https://sproutgigs.com/assets/images/profile_no_image.gif" }, "seller": { "rating": "5", "comment": "Patient, understanding, and a pleasure to work with. Hope to see you again. Have a great rest of your day.", "created_at": "2024-02-05 07:04:18", "user_countrycode": "bd", "user_nickname": "Polando8", "user_countryname": "Bangladesh", "user_avatar": "https://static.sproutgigs.com/avatars/2020/07/06/d6d49ed7_1668183031.png" } }, ... { "buyer": { "rating": "4", "comment": "Good.", "created_at": "2023-10-16 23:55:27", "user_countrycode": "bj", "user_nickname": "JulesP", "user_countryname": "Benin", "user_avatar": "https://static.sproutgigs.com/avatars/2020/01/14/8ffac5f3_1688379232.png" }, "seller": { "rating": "4", "comment": "Super understanding person.", "created_at": "2023-10-18 05:46:01", "user_countrycode": "bd", "user_nickname": "Polando8", "user_countryname": "Bangladesh", "user_avatar": "https://static.sproutgigs.com/avatars/2020/07/06/d6d49ed7_1668183031.png" } }, { "buyer": { "rating": "4", "comment": "GOOD JOB", "created_at": "2023-09-23 23:43:57", "user_countrycode": "ma", "user_nickname": "kanouz", "user_countryname": "Morocco", "user_avatar": "https://sproutgigs.com/assets/images/profile_no_image.gif" }, "seller": { "rating": "4", "comment": "Great client", "created_at": "2023-09-23 23:52:14", "user_countrycode": "bd", "user_nickname": "Polando8", "user_countryname": "Bangladesh", "user_avatar": "https://static.sproutgigs.com/avatars/2020/07/06/d6d49ed7_1668183031.png" } } ] }
Jobs
In order to create jobs, you need to inform the zone_id
and excluded_countries
, if any, OR the list_id
,
if it's a job targeted to one of your list of freelancers, and the category_id
.
The most updated information can be obtained using the zones, lists and categories endpoints. Refer to those endpoints to set up the job correctly.
Add Positions
Add positions
POST https://sproutgigs.com/api/jobs/add-positions.php
Example request
POST /api/jobs/add-positions.php HTTP/1.1 Host: sproutgigs.com Authorization: Basic dXNlcl9pZDphcGlfc2VjcmV0 Content-Type: application/json { "job_id": "fc7b3bd10d08", "positions": 1 }
The following fields can be added in the request body:
Attribute | Type | Required? | Default | Description |
---|---|---|---|---|
job_id |
string | yes | — | Id of the job you want to add positions. |
positions |
int | yes | — | Number of positions to add in that job. From 1 to 9999. |
Example response
{ "ok": true, "message": "The position(s) has been added." }
Feature Job
Feature a running job without the need to stop and edit it.
POST https://sproutgigs.com/api/jobs/feature-job.php
Example request
POST /api/jobs/feature-job.php HTTP/1.1 Host: sproutgigs.com Authorization: Basic dXNlcl9pZDphcGlfc2VjcmV0 Content-Type: application/json { "job_id": "fc7b3bd10d08", "amount": 5.00 }
The following fields can be added in the request body:
Attribute | Type | Required? | Default | Description |
---|---|---|---|---|
job_id |
string | yes | — | Id of the job to be featured. |
amount |
float | yes | — | Amount to be spent on featuring the job. Higher amounts may position your job higher in the list of available jobs. Minimum amount is $2.00 |
Example response
{ "ok": true }
Categories Endpoint
Get the list of categories and the minimum payment per task you must set to run the job.
For a list job, please use the international zone pricing as the minimum payment per task.
GET https://sproutgigs.com/api/jobs/get-categories.php
Example request
GET /api/jobs/get-categories.php HTTP/1.1 Host: sproutgigs.com Authorization: Basic dXNlcl9pZDphcGlfc2VjcmV0
Example response
[ { "id": "0500", "category": "Sign up", "subcategory": "Email submit only", "min_task_value": { "int": "0.080", "west1": "0.240", "europe1": "0.200", "europe2": "0.160", "asia1": "0.100", "africa1": "0.100", "latin": "0.100", "muslim": "0.100", "arab1": "0.100" } }, { "id": "0501", "category": "Sign up", "subcategory": "Simple Sign up", "min_task_value": { "int": "0.080", "west1": "0.240", "europe1": "0.200", "europe2": "0.160", "asia1": "0.100", "africa1": "0.100", "latin": "0.100", "muslim": "0.100", "arab1": "0.100" } }, ... { "id": "9002", "category": "Surveys / Offers", "subcategory": "Up to 50 questions", "min_task_value": { "int": "0.500", "west1": "1.200", "europe1": "1.000", "europe2": "0.800", "asia1": "0.600", "africa1": "0.600", "latin": "0.600", "muslim": "0.600", "arab1": "0.600" } }, { "id": "9900", "category": "Other", "subcategory": "Describe and set acceptable price", "min_task_value": { "int": "0.050", "west1": "0.150", "europe1": "0.130", "europe2": "0.100", "asia1": "0.060", "africa1": "0.060", "latin": "0.060", "muslim": "0.060", "arab1": "0.060" } } ]
Get Job
Get a job by id.
GET https://sproutgigs.com/api/jobs/get-job.php
Example request
GET /api/jobs/get-job.php HTTP/1.1 Host: sproutgigs.com Authorization: Basic dXNlcl9pZDphcGlfc2VjcmV0
The following fields can be added in the query string:
Attribute | Type | Required? | Default | Description |
---|---|---|---|---|
job_id |
string | yes | — | The ID of job you want to retrieve. |
Example response
{ "id": "0950e7d99b65", "id_user": "67d33033", "zone_id": "int", "excluded_countries": [ "pk", "bd", "in" ], "category_id": "2004", "created_at": "2021-01-25T07:42:35Z", "status": "PAUSED", "task_value": 0.06, "tasks_done": 3741, "num_tasks": 4030, "unrated_tasks": 64, "workers_max_tasks": 1, "workers_level": "starter", "start_time": "00:00", "end_time": "24:00", "speed": 1000, "ttr": 7, "autorate": "NO", "pause_after_approval": 0, "hold_time": 15, "title": "Play Video", "instructions": [ "Go to url", "Play the video." ], "notes": "", "proofs": [ { "description": "example", "type": "screenshot" } ], "challenge_action": "", "challenges": [], "distribution": 25 }
Get Jobs
Get your active jobs. Archived jobs will not be retrieved. Make sure to iterate through all pages to get all the jobs.
GET https://sproutgigs.com/api/jobs/get-jobs.php
Example request
GET /api/jobs/get-jobs.php HTTP/1.1 Host: sproutgigs.com Authorization: Basic dXNlcl9pZDphcGlfc2VjcmV0
The following fields can be added in the query string:
Attribute | Type | Required? | Default | Description |
---|---|---|---|---|
page |
int | no | 1 | The page of jobs you want to retrieve. |
status |
string | no | — | You can filter the retrieved jobs by status. Possible values are: running, finished, pending_review, pending_restart, paused, paused_system, paused_admin, blocked, declined |
unrated_tasks |
int | no | 0 | Retrieve jobs with unrated tasks only. Possible values are 0 and 1. |
order |
string | no | asc | Retrieve jobs sorted by creation date. Possible values: asc, desc |
Example response
{ "current_page": 1, "pages": 1, "jobs": [ { "id": "0950e7d99b65", "id_user": "abcd1234", "zone_id": "int", "excluded_countries": [], "category_id": "2004", "created_at": "2021-10-25T07:42:35Z", "status": "RUNNING", "task_value": 0.06, "tasks_done": 3741, "num_tasks": 4030, "unrated_tasks": 4, "workers_max_tasks": 1, "workers_level": "starter", "start_time": "00:00", "end_time": "24:00", "speed": 1000, "ttr": 7, "autorate": "NO", "pause_after_approval": 0, "hold_time": 15, "title": "Play Video", "instructions": [ "Go to https://video-website.io/watch/1", "Play the video." ], "notes": "", "proofs": [ { "description": "FULL screenshot showing video is playing.", "type": "screenshot" } ], "challenge_action": "", "challenges": [] } ] }
Lists Endpoint
Get the available lists of freelancers created in the tab Emp. Lists of your Account Settings.
SproutGigs requires at least 10 freelancers to run a job posted using the API. Only lists with 10 freelancers or more will be accepted.
GET https://sproutgigs.com/api/jobs/get-lists.php
Example request
GET /api/jobs/get-lists.php HTTP/1.1 Host: sproutgigs.com Authorization: Basic dXNlcl9pZDphcGlfc2VjcmV0
Example response
[ { "id": 12870, "name": "Successfully Completed", "workers": 147 }, { "id": 14118, "name": "Awesome freelancers", "workers": 102 }, { "id": 14256, "name": "Freelancers from Brazil", "workers": 53 }, { "id": 16329, "name": "My special list", "workers": 18 } ]
Get Predicted Position
Check the predicted position your job will show up in the list with and without the category filter. Higher bids improves your job position.
POST https://sproutgigs.com/api/jobs/get-predicted-position.php
Example request
POST /api/jobs/get-predicted-position.php HTTP/1.1 Host: sproutgigs.com Authorization: Basic dXNlcl9pZDphcGlfc2VjcmV0 Content-Type: application/json { "category_id": "2501", "amount": 5.00 }
Attribute | Type | Required? | Default | Description |
---|---|---|---|---|
category_id |
string | yes | — | Category ID to publish the job. Use the categories endpoint to get the list of available categories. The category ID must be exactly what is returned in the category endpoint, respecting the leading zeroes that may exist. |
amount |
float | yes | — | Amount to be spent on featuring the job. Higher amounts may position your job higher in the list of available jobs. Minimum amount is $2.00 |
Example response
{ "position_in_all": 1, "position_in_category": 1 }
Get Rated Tasks
Get the rated tasks of a specific job or all jobs. Make sure to iterate through all pages to get all the tasks.
GET https://sproutgigs.com/api/jobs/get-rated-tasks.php
Example request
GET /api/jobs/get-rated-tasks.php HTTP/1.1 Host: sproutgigs.com Authorization: Basic dXNlcl9pZDphcGlfc2VjcmV0
The following fields can be added in the query string:
Attribute | Type | Required? | Default | Description |
---|---|---|---|---|
page |
int | no | 1 | The page of tasks you want to retrieve. |
job_id |
string | no | — | Get the rated tasks of a specific job. If empty, the rated tasks of all your jobs will be retrieved. |
task_ids |
string array | no | — | Get the specified rated tasks of a specific job. Separate values by comma. |
Example response
{ "current_page": 1, "pages": 1, "tasks": [ { "id": "158004285a3523", "job_id": "abcdef123456", "worker_id": "abcd1234", "finished_at": "2021-11-01T17:04:45Z", "ip_address": "127.0.0.1", "country_code": "XX", "revision_number": 1, "variables": [], "status": "OK", "proofs": [ { "text": "latest submitted proof" } ], "previous_proofs": [ { "employer_comment": "Sorry, the answer is incorrect. Please try again.", "finished_at": "2021-02-07 09:59:41", "proofs": [ { "text": "previous unnacepted proof" } ] } ] } ] }
Get Unrated Tasks
Get the unrated tasks of a specific job or all jobs. Make sure to iterate through all pages to get all the tasks.
GET https://sproutgigs.com/api/jobs/get-unrated-tasks.php
Example request
GET /api/jobs/get-unrated-tasks.php HTTP/1.1 Host: sproutgigs.com Authorization: Basic dXNlcl9pZDphcGlfc2VjcmV0
Example request with parameters
GET /api/jobs/get-unrated-tasks.php?job_id=abc123dfae98&task_ids=99900012abcd1f,99923817f2bce4,99924617ab23df HTTP/1.1 Host: sproutgigs.com Authorization: Basic dXNlcl9pZDphcGlfc2VjcmV0
The following fields can be added in the query string:
Attribute | Type | Required? | Default | Description |
---|---|---|---|---|
page |
int | no | 1 | The page of tasks you want to retrieve. |
job_id |
string | no | — | Get the unrated tasks of a specific job. If empty, the unrated tasks of all your jobs will be retrieved. |
task_ids |
string array | no | — | Get the specified unrated tasks of a specific job. Separate values by comma. |
Example response
{ "current_page": 1, "pages": 1, "tasks": [ { "id": "158004285a3523", "job_id": "abcdef123456", "worker_id": "abcd1234", "finished_at": "2021-11-01T17:04:45Z", "ip_address": "127.0.0.1", "country_code": "XX", "revision_number": 0, "variables": [], "proofs": [ { "text": "submitted proof" } ] } ] }
Zones Endpoint
Get the available zones and the list of countries that can be excluded from a zone.
GET https://sproutgigs.com/api/jobs/get-zones.php
Example request
GET /api/jobs/get-zones.php HTTP/1.1 Host: sproutgigs.com Authorization: Basic dXNlcl9pZDphcGlfc2VjcmV0
Example response
[ { "id": "africa1", "zone": "Africa", "excludable_countries": [ "ao", "bw", "cg", "eg", "et", "gh", "ke", "ly", "ma", "mz", "ng", "rw", "za", "tz", "ug", "zw", "tn" ] }, { "id": "arab1", "zone": "Arab Countries", "excludable_countries": [ "ae", "bh", "kw", "sa", "ye", "qa", "om", "jo", "sy", "lb", "ps", "iq", "eg", "ma", "ly", "tn", "dz", "sd", "mr", "so", "dj", "km" ] }, { "id": "asia1", "zone": "Asia", "excludable_countries": [ "bd", "cn", "in", "id", "jp", "kr", "lk", "my", "pk", "ph", "sg", "th", "vn" ] }, { "id": "europe1", "zone": "Europe West", "excludable_countries": [ "at", "be", "ch", "de", "dk", "es", "fi", "fr", "uk", "ie", "is", "it", "lu", "mc", "no", "pt", "se", "sm" ] }, { "id": "europe2", "zone": "Europe East", "excludable_countries": [ "al", "am", "by", "ba", "bg", "cy", "cz", "ee", "gr", "hu", "hr", "lt", "mk", "mt", "rs", "ru", "si", "sk", "tr", "ua", "pl", "ro" ] }, { "id": "int", "zone": "International", "excludable_countries": [ "al", "pk", "bd", "id", "in", "ph", "ro", "eg", "pl", "my", "np", "vn", "cn", "lt", "ma", "us", "ca", "uk", "au", "de", "fr", "lk", "si", "ve", "co" ] }, { "id": "latin", "zone": "Latin America", "excludable_countries": [ "ar", "bo", "br", "cl", "co", "ec", "fk", "gf", "gy", "mx", "py", "pe", "sr", "uy", "ve" ] }, { "id": "muslim", "zone": "Muslim Countries", "excludable_countries": [ "dz", "id", "in", "pk", "bd", "ma", "ng", "eg", "ir", "tr", "tn" ] }, { "id": "west1", "zone": "USA & Western", "excludable_countries": [ "us", "uk", "ca", "au", "nz" ] } ]
Pause Jobs
Pause a Job.
POST https://sproutgigs.com/api/jobs/job-pause.php
Example request
POST /api/jobs/job-pause.php HTTP/1.1 Host: sproutgigs.com Authorization: Basic dXNlcl9pZDphcGlfc2VjcmV0 Content-Type: application/json { "job_id": "fc7b3bd10d08" }
The following fields can be added in the request body:
Attribute | Type | Required? | Default | Description |
---|---|---|---|---|
job_id |
string | yes | — | Id of the job to be paused. |
Example response
{ "ok": true }
Post Job
Post a new job.
POST https://sproutgigs.com/api/jobs/post-job.php
Example request
POST /api/jobs/post-job.php HTTP/1.1 Host: sproutgigs.com Authorization: Basic dXNlcl9pZDphcGlfc2VjcmV0 Content-Type: application/json { "zone_id": "int", "category_id": "0501", "title": "Sign up to ACME website", "instructions": [ "visit the ACME website", "Create an account" ], "proofs": [ { "description": "Screenshot of your profile at ACME website", "type": "screenshot" } ], "num_tasks": 25, "task_value": 0.10, "speed": 1000, "ttr": 7, "hold_time": 15 }
The following fields can be added in the request body:
Attribute | Type | Required? | Default | Description | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
test |
integer | no | 0 | Set this attribute 1 if you are in development. The job will be validated but it will not be created. No costs will be charged from your spendable balance. | |||||||||||||||
zone_id |
string | yes | — | Zone ID to publish the job. Conditionally required: zone_id or list_id is required to run the job. Use the zones and/or lists endpoints to get the list of zones and/or buyer lists. |
|||||||||||||||
excluded_countries |
string array | no | — | List of countries codes to be excluded from the target zone. Use the zones endpoint to get a list of excludable countries for each zone. | |||||||||||||||
list_id |
int | yes | — | List ID to publish the job. Conditionally required: zone_id or list_id is required to run the job. Use the zones and/or lists endpoints to get the list of zones and/or buyer lists. |
|||||||||||||||
category_id |
string | yes | — | Category ID to publish the job. Use the categories endpoint to get the list of available categories. The category ID must be exactly what is returned in the category endpoint, respecting the leading zeroes that may exist. | |||||||||||||||
title |
string | yes | — | Job title. | |||||||||||||||
notes |
string | no | — | Additional work notes for freelancers. | |||||||||||||||
instructions |
string array | yes | — | List of instructions of expected work from freelancers. You may also include variables. Example: ["Visit website ABC", "Click the first post.", "Click the {{ORDINAL}} link from the top."] | |||||||||||||||
variables |
object array | no | — |
Nested object with the following attributes. Mandatory if a variable has been informed in the instructions.
|
|||||||||||||||
proofs |
object array | yes | — |
Nested object with the following attributes. A max of 4 proofs can be required.
|
|||||||||||||||
challenges |
object array | no | — |
Nested object with the following attributes. A max of 3 challenges can be set up.
|
|||||||||||||||
challenge_action |
string | no | — | Action to be taken when freelancer answer the challenge incorrectly. Possible values are rate_nok, to rate the task as Not Satisfied, and rate_nok_block, to rate the task as Not Satisfied and block the freelancer from future jobs. Required if there are challenges set up. | |||||||||||||||
num_tasks |
int | no | — | Number of tasks to be performed by freelancers. Minimum of 10 tasks is required. | |||||||||||||||
workers_level |
string | no | starter | Target a minimum level of freelancers. Possible values are "starter", "expert" and "advanced". | |||||||||||||||
workers_max_tasks |
int | no | 1 | Number of tasks that the same freelancer can submit. It can range from 1 to 10. For greater than 1, the workers_level must not be "starter". |
|||||||||||||||
task_value |
float | yes | — | Amount each freelancer will earn if the task is rated as Satisfied. | |||||||||||||||
speed |
int | no | 1000 | Speed which the job is displayed to freelancers. From 1-1000 (1 is slow, 1000 is fast-normal. Each page refresh generates a random number. All job speed setting numbers above this random number are shown. A speed of 10 or even 100, the probability of showing up is really low.) | |||||||||||||||
start_time |
string | no | 00:00 | Start time for the job to be available to freelancers. Use UTC time in the format `HH:mm`, where `HH` ranges from 00 to 24 and `mm` ranges from 00:59 | |||||||||||||||
end_time |
int | no | 24:00 | End time for the job to be available to freelancers. Use UTC time in the format `HH:mm`, where `HH` ranges from 00 to 24 and `mm` ranges from 00:59 | |||||||||||||||
ttr |
int | no | 7 | Number of days the buyer has to rate the task before it is auto rated as Satisfied by the system. It ranges from 1 to 90 days | |||||||||||||||
autorate |
string | no | NO | Used to let the system auto rate tasks based on the PCODE submitted by the freelancers. Possible values are NO, where the system will not do anything and all rating will be left for the buyer. V, where the system will verify if the freelancer has submitted the correct PCODE but will not rate the task. V+R, where the system will verify and auto rate the task as Satisfied if the freelancer submitted the correct PCODE. To learn more about PCODE, visit Auto-rating with PCODE | |||||||||||||||
pause_after_approval |
int | no | 0 | Used to immediately pause the job after it's approved. Possible values are 0, to not pause it and 1, to pause it. | |||||||||||||||
hold_time |
int | no | 15 | The number of minutes a freelancer can hold a position before submitting the task. It range from 5 to 90. | |||||||||||||||
hold_required |
int | no | 0 | Require freelancers to hold the position before submitting the task. It's better used when the hold time is longer than 5 minutes | |||||||||||||||
distribution |
int | no | — | Maximum percentage of tasks done by freelancers in a single country. Value can range from 25 to 100. For example, if a job has 100 positions and the max distribution is 50%, 50 tasks could be done by freelancers in the same country and the other 50 tasks must be done by freelancers in a different country. | |||||||||||||||
notify_followers |
int | no | 0 | Freelancers that follow you will receive a notifications about the new job posted. It costs 3% of the total job cost with a minimum of $1. | |||||||||||||||
premium_amount |
float | no | 0 | You can add an amount to feature your job as premium. The job position depends on the premium amount set by other buyers at the time. The amount can range from 2.00 to 50.00 and you cannot use it together with premium credit. | |||||||||||||||
premium_credit |
boolean | no | false | Use your credits to feature your job as premium. The job position depends on the premium amount set by other buyers at the time. You can only use 1 credit per job at a time and it cannot be used together with premium amount. |
Example response
{ "ok": true, "url": "https://sproutgigs.com/employer/campaign-details.php?Id=JOB_ID", "message": "Job posted successfully" }
Rate Multiple Tasks
Rate multiple tasks of a job. You can rate up to 1000 tasks per request
POST https://sproutgigs.com/api/jobs/rate-multiple-tasks.php
Example request
POST /api/jobs/rate-single-task.php HTTP/1.1 Host: sproutgigs.com Authorization: Basic dXNlcl9pZDphcGlfc2VjcmV0 Content-Type: application/json { "job_id": "fc7b3bd10d08", "tasks": [ { "id": "1416896140ecb7", "rating": "ok", "satisfaction": "good", "comment": "great job!", "list_id": 0, "block_worker": false, "bonus": 0.0 }, ... { "id": "158004285a3523", "rating": "nok", "satisfaction": "incorrect", "comment": "wrong answer", "list_id": 0, "block_worker": false, "bonus": 0.0 } ]
The following fields can be added in the request body:
Attribute | Type | Required? | Default | Description | ||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
job_id |
string | yes | — | Id of the Job. | ||||||||||||||||||||||||||||||||||||||||
tasks |
object array | yes | — |
Nested object with the following attributes.
|
Example response
{ "tasks": [ { "id": "1416896140ecb7", "ok": true, "message": "Task rated successfully." }, ... { "id": "158004285a3523", "ok": false, "message": "Task cannot be rated." } ] }
Rate Single Task
Rate a task.
POST https://sproutgigs.com/api/jobs/rate-single-task.php
Example request
POST /api/jobs/rate-single-task.php HTTP/1.1 Host: sproutgigs.com Authorization: Basic dXNlcl9pZDphcGlfc2VjcmV0 Content-Type: application/json { "job_id": "fc7b3bd10d08", "task_id": "1416896140ecb7", "task_rating": "ok", "task_satisfaction": "good", "task_comment": "great job!", "list_id": 0, "block_worker": false, "task_bonus": 0.0 }
The following fields can be added in the request body:
Attribute | Type | Required? | Default | Description |
---|---|---|---|---|
task_id |
string | yes | — | Id of the task to be rated. |
job_id |
string | yes | — | Id of the Job. |
task_rating |
string | yes | — | Task rating. Possible values are: ok, not_ok, revise |
task_satisfaction |
string | no | — | Your satisfaction with the task. Possible values are: excellent, good, ok (if rating is ok), or: incorrect, spam, dupe (if rating is not_ok) |
task_comment |
string | no | — | Task comments. Required if task_rating is not_ok or revise |
list_id |
int | no | 0 | Inform the id of a custom list in case you want to add the freelancer to it. |
block_worker |
boolean | no | false | Freelancer should be blocked? |
task_bonus |
float | no | 0.0 | Bonus amount to be sent to the freelancer. |
Example response
{ "ok": true, "message": "Task rated successfully." }
Restart Jobs
Restart a Job.
POST https://sproutgigs.com/api/jobs/job-restart.php
Example request
POST /api/jobs/job-restart.php HTTP/1.1 Host: sproutgigs.com Authorization: Basic dXNlcl9pZDphcGlfc2VjcmV0 Content-Type: application/json { "job_id": "fc7b3bd10d08", "positions": 10 }
The following fields can be added in the request body:
Attribute | Type | Required? | Default | Description |
---|---|---|---|---|
job_id |
string | yes | — | Id of the job to be stoped. |
positions |
int | no | — | Number of positions to add in that job. |
Example response
{ "ok": true, "notice": "job restarted successfully" }
Resume Jobs
Resume a paused Job.
POST https://sproutgigs.com/api/jobs/job-resume.php
Example request
POST /api/jobs/job-resume.php HTTP/1.1 Host: sproutgigs.com Authorization: Basic dXNlcl9pZDphcGlfc2VjcmV0 Content-Type: application/json { "job_id": "fc7b3bd10d08" }
The following fields can be added in the request body:
Attribute | Type | Required? | Default | Description |
---|---|---|---|---|
job_id |
string | yes | — | Id of the job to be resumed. |
Example response
{ "ok": true }
Set Speed
Set the job speed.
POST https://sproutgigs.com/api/jobs/set-speed.php
Example request
POST /api/jobs/set-speed.php HTTP/1.1 Host: sproutgigs.com Authorization: Basic dXNlcl9pZDphcGlfc2VjcmV0 Content-Type: application/json { "job_id": "fc7b3bd10d08", "speed": 800 }
The following fields can be added in the request body:
Attribute | Type | Required? | Default | Description |
---|---|---|---|---|
job_id |
string | yes | — | Id of the job you want to set the new speed. |
speed |
int | yes | 1000 | Speed of the job. From 1 to 1000. |
Example response
{ "ok": true, "message": "Job speed updated successfully." }
Set TTR
Set the job time to rate.
POST https://sproutgigs.com/api/jobs/set-ttr.php
Example request
POST /api/jobs/set-ttr.php HTTP/1.1 Host: sproutgigs.com Authorization: Basic dXNlcl9pZDphcGlfc2VjcmV0 Content-Type: application/json { "job_id": "fc7b3bd10d08", "ttr": 3 }
The following fields can be added in the request body:
Attribute | Type | Required? | Default | Description |
---|---|---|---|---|
job_id |
string | yes | — | Id of the job you want to set the new TTR. |
ttr |
int | yes | 7 | Time to rate of the job. From 1 to 90. |
Example response
{ "ok": true, "message": "Job time to rate (TTR) updated successfully." }
Stop Jobs
Stop a Job.
POST https://sproutgigs.com/api/jobs/job-stop.php
Example request
POST /api/jobs/job-stop.php HTTP/1.1 Host: sproutgigs.com Authorization: Basic dXNlcl9pZDphcGlfc2VjcmV0 Content-Type: application/json { "job_id": "fc7b3bd10d08" }
The following fields can be added in the request body:
Attribute | Type | Required? | Default | Description |
---|---|---|---|---|
job_id |
string | yes | — | Id of the job to be stoped. |
Example response
{ "ok": true, "message": "Job stoped successfully." }
Lists
Manage your custom lists.
Add Freelancers
Add one or more freelancers to a custom list. Invalid and blocked freelancers will not be added.
POST https://sproutgigs.com/api/lists/add-workers.php
Example request
POST /api/lists/add-workers.php HTTP/1.1 Host: sproutgigs.com Authorization: Basic dXNlcl9pZDphcGlfc2VjcmV0 Content-Type: application/json { "list_id": 15237, "workers": ["0de178af", "ffcc1278", "abcd0129"] }
The following fields can be added in the request body:
Attribute | Type | Required? | Default | Description |
---|---|---|---|---|
list_id |
int | yes | — | Id of the list you want to add the freelancers. |
workers |
string array | yes | — | List of freelancer ids to be added to the custom list. |
Example response
{ "ok": true, "message": "Freelancers added to the list successfully." }
Block Freelancers
Block one or more freelancers and remove from all lists.
POST https://sproutgigs.com/api/lists/block-workers.php
Example request
POST /api/lists/block-workers.php HTTP/1.1 Host: sproutgigs.com Authorization: Basic dXNlcl9pZDphcGlfc2VjcmV0 Content-Type: application/json { "workers": ["0de178af", "ffcc1278", "abcd0129"] }
The following fields can be added in the request body:
Attribute | Type | Required? | Default | Description |
---|---|---|---|---|
workers |
string array | yes | — | List of freelancer ids to be blocked. |
Example response
{ "ok": true, "message": "Freelancers blocked and removed from all lists successfully." }
Unblock Freelancers
Unblock one or more freelancers.
POST https://sproutgigs.com/api/lists/unblock-workers.php
Example request
POST /api/lists/unblock-workers.php HTTP/1.1 Host: sproutgigs.com Authorization: Basic dXNlcl9pZDphcGlfc2VjcmV0 Content-Type: application/json { "workers": ["0de178af", "ffcc1278", "abcd0129"] }
The following fields can be added in the request body:
Attribute | Type | Required? | Default | Description |
---|---|---|---|---|
workers |
string array | yes | — | List of freelancer ids to be unblocked. |
Example response
{ "ok": true, "message": "Freelancers unblocked successfully." }
Users
Get information about your user.
Balances Endpoint
Get the balances from your user.
GET https://sproutgigs.com/api/users/get-balances.php
Example request
GET /api/users/get-balances.php HTTP/1.1 Host: sproutgigs.com Authorization: Basic dXNlcl9pZDphcGlfc2VjcmV0 Content-Type: application/json
Example response
{ "earned": "0.4200", "spendable": "3.3482" }
Webhooks
Get notified when certain events happen.
Submitted Tasks
Receive a postback when freelancers submit tasks to your jobs.
It runs every minute and will send the list of task ids submitted for each jobin that period.
In case the URL defined does not return a 200 HTTP code response, the system will retry sending the list of task ids every 5 minutes for 24 hours.
After that, it will stop trying to send the task ids.
Go to Account > Settings to define the URL to receive postbacks whenever freelancers submit tasks to your jobs and leave it blank to stop the postback.
The following fields can be added in the request body:
Attribute | Type | Description |
---|---|---|
job_id |
string array | List of submitted tasks. Example: ["99900012abcd1f", "99923817f2bce4", "99924617ab23df"] |
Example postback parameters sent:
{ "abc123dfae98": ["99900012abcd1f", "99923817f2bce4", "99924617ab23df"], "09876abce173": ["81204582ff321c", "84671036ccdefc"] }