Troubleshooting
If requests fail, run zero doctor check-connector --env-name SPROUTGIGS_API_SECRET or zero doctor check-connector --url https://sproutgigs.com/api/users/get-balances.php --method GET
Authentication
SproutGigs uses HTTP Basic Auth with the user ID as the username and API secret as the password.
curl -s "https://sproutgigs.com/api/users/get-balances.php" \
-u "$SPROUTGIGS_USER_ID:$SPROUTGIGS_API_SECRET"
Get or reset the API secret from SproutGigs Account Settings -> Settings.
Environment Variables
SPROUTGIGS_USER_ID- SproutGigs user IDSPROUTGIGS_API_SECRET- SproutGigs API secret
API Basics
Base URL: https://sproutgigs.com/api
SproutGigs' public docs show JSON request bodies for several GET endpoints. When an endpoint needs parameters, send JSON with Content-Type: application/json, even if the method is GET.
Rate limit: 1 request/second. Do not run SproutGigs API calls in parallel. If a request returns HTTP 429, wait at least 10 seconds before retrying.
Many write endpoints spend account balance or affect worker outcomes. Before calling post-job, add-positions, feature-job, rate-*, list block/unblock, or job stop/restart/resume operations, confirm the exact parameters unless the user has already explicitly authorized that action.
Helper Pattern
sproutgigs() {
local method="$1"
local path="$2"
local body="${3:-}"
if [ -n "$body" ]; then
curl -s -X "$method" "https://sproutgigs.com/api$path" \
-u "$SPROUTGIGS_USER_ID:$SPROUTGIGS_API_SECRET" \
-H "Content-Type: application/json" \
-d "$body"
else
curl -s -X "$method" "https://sproutgigs.com/api$path" \
-u "$SPROUTGIGS_USER_ID:$SPROUTGIGS_API_SECRET"
fi
}
Endpoint Inventory
Gigs
GET /gigs/get-categories.php- list gig categories and minimum pricesGET /gigs/get-gig.php- get a gig bygig_idGET /gigs/get-gigs.php- list active gigs with filters and paginationGET /gigs/get-gig-public-questions.php- list public Q&A for a gigGET /gigs/get-gig-reviews.php- list gig reviews
Useful gig list body fields: category_id, subcategory_ids, countries, min_price, max_price, search_term, page, results_per_page, order.
sproutgigs GET /gigs/get-gigs.php '{
"page": 1,
"results_per_page": 10,
"order": "newest"
}'
Jobs
POST /jobs/add-positions.php- add paid positions to a jobPOST /jobs/edit-targeting.php- edit job targetingPOST /jobs/feature-job.php- feature a jobGET /jobs/get-categories.php- list job categoriesGET /jobs/get-job.php- get one jobGET /jobs/get-jobs.php- list jobsGET /jobs/get-lists.php- list account freelancer listsPOST /jobs/get-predicted-position.php- estimate job positionGET /jobs/get-rated-tasks.php- list rated tasksGET /jobs/get-unrated-tasks.php- list submitted tasks awaiting ratingGET /jobs/get-zones.php- list available zonesPOST /jobs/job-pause.php- pause a jobPOST /jobs/post-job.php- create a jobPOST /jobs/rate-multiple-tasks.php- approve or reject multiple tasksPOST /jobs/rate-single-task.php- approve or reject one taskPOST /jobs/job-restart.php- restart a stopped jobPOST /jobs/job-resume.php- resume a paused jobPOST /jobs/set-speed.php- update job speedPOST /jobs/set-ttr.php- update time-to-ratePOST /jobs/set-daily-tasks-limit.php- update daily task limitPOST /jobs/set-distribution.php- update job distributionPOST /jobs/job-stop.php- stop a job
Common discovery flow before posting a job:
sproutgigs GET /users/get-balances.php
sproutgigs GET /jobs/get-zones.php
sproutgigs GET /jobs/get-categories.php
sproutgigs GET /jobs/get-lists.php
Use the field names from SproutGigs' current API docs when creating or updating jobs; the docs contain the full required field list and accepted values for each write endpoint.
Lists
GET /lists/get-public-lists.php- list public freelancer listsPOST /lists/add-workers.php- add freelancers to a listPOST /lists/block-workers.php- block freelancers in a listPOST /lists/unblock-workers.php- unblock freelancers in a list
Profiles
GET /profiles/get-profile.php- get a freelancer profile
sproutgigs GET /profiles/get-profile.php '{"user_id": "123456"}'
Users
GET /users/get-balances.php- get account balances
sproutgigs GET /users/get-balances.php
Webhooks
SproutGigs documents webhooks for job status changes and submitted tasks. These are incoming notifications configured in SproutGigs, not outbound API calls to run from the agent.
Common Workflows
Check Account and Job Setup
sproutgigs GET /users/get-balances.php
sleep 1
sproutgigs GET /jobs/get-zones.php
sleep 1
sproutgigs GET /jobs/get-categories.php
Review Submitted Tasks
sproutgigs GET /jobs/get-unrated-tasks.php '{"job_id": "JOB_ID", "page": 1, "results_per_page": 25}'
Inspect submissions before rating. Ratings are worker-impacting and often irreversible from the API, so do not bulk approve or reject without explicit user confirmation.
Search Marketplace Gigs
sproutgigs GET /gigs/get-categories.php
sleep 1
sproutgigs GET /gigs/get-gigs.php '{"search_term": "wordpress", "page": 1, "results_per_page": 10}'
Notes
- The API is marked beta in SproutGigs' docs.
- The public docs were last checked on 2026-05-19 and list a documentation update date of 2026-04-29.
- Prefer read endpoints first, then narrow write calls to one job/list/task batch at a time.
- Avoid automating worker-side task claiming or human-action simulation. This skill is for buyer-side job, gig, list, profile, balance, and review operations.