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.

Attribute Type Required? Default Description
name string yes Variable name as informed in the instructions without the braces {{}}. For example, if you have added a variable in the instructions like {{URL}}, just use "URL" as the name of the variable.
values array yes Variable values. It must have more than 1 value and less than 1000. If there are more variables, the number of values in all variables must be the same.
proofs object array yes Nested object with the following attributes. A max of 4 proofs can be required.

Attribute Type Required? Default Description
type string yes Proof type. Possible values are text and screenshot.
description string yes Proof description. What is required from freelancers to prove they have completed the task.
challenges object array no Nested object with the following attributes. A max of 3 challenges can be set up.

Attribute Type Required? Default Description
question string yes Challenge question that will be displayed to users.
answer string yes The correct answer to the challenge question to be verified against the answer from freelancers.
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.

Attribute Type Required? Default Description
id string yes Id of the task to be rated.
rating string yes Task rating. Possible values are: ok, not_ok, revise
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)
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?
bonus float no 0.0 Bonus amount to be sent to the freelancer.

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