Getting Started
This page will help you get started with Wonolo. You'll be up and running in a jiffy!
Welcome to the Wonolo API
Wonolo (stands for Work. Now. Locally.) is an on-demand staffing platform providing employers with a low cost option to find pre-screened workers to fill jobs quickly and reliably based on their particular needs. Wonolo allows companies to manage unpredictability by augmenting their existing labor force with hourly to daily Wonoloers who can work immediately and do the job.
The Wonolo API provides a mechanism to integrate customized applications and proprietary workflows with this platform. Integration points could include automation for software responsible for scheduling and timekeeping or HR/CRM systems. Individual systems can work directly with the API in a decentralized fashion through secure, standards based protocols.
The Wonolo API (V2.0) is a RESTful API to perform CRUD operations on Wonolo platform resources. In addition, Webhooks are available to monitor the state of particular resources.
Currently, JSON is the only encoding format supported.
Familiarizing Yourself with Wonolo
In order to get up and running with the API, we recommend familiarizing yourself with the Wonolo mobile and web apps used by workers and administrators.
The Wonolo mobile app is used by workers to accept and manage jobs. It may be downloaded from Apple App Store and Android Play Store.
The Wonolo Customer Portal is a web app used to post jobs
The Wonolo Admin App is used to administer the Wonolo Platform, CRUD resources, debug API calls and Webhooks. Note: you will only have access to the Admin App on the test environment.
Security
In order to keep data secure, all API calls must be made over https
.
With the exception of the /authenticate
and /info
services, all API calls must use an authorization token (passed as the token
request parameter).
API Keys and Access Level
The Wonolo API requires you have valid API keys. To obtain these API keys, please apply here.
Wonolo API keys will provide one of two different levels of access to Wonolo resources:
- Public Pool access — if you are accessing Wonolo's public pool of Wonoloers
- Private Pool access — if your company is managing its own private pool of workers
With Public Pool access, you will only be able to access those Wonoloers you have active Jobs with, as well as Job Requests and Jobs that you have created. Also, write operations (update/PATCH and create/POST) are forbidden in many cases.
For more details, consult the documentation of the individual endpoints.
Test and Production Environments
You will be issued with two sets of API keys:
test (starting with pk_test
and sk_test
) - for use with test.wonolo.com/api_v2
production (starting with pk_live
and sk_live
) - for use with api.wonolo.com/api_v2
Obtaining an Authorization Token
Once you receive your API keys, the first step is to authenticate to obtain a token for use with subsequent API calls by sending your api_key
and your secret_key
to the /api_v2/authenticate
endpoint.
curl -X POST \
'https://test.wonolo.com/api_v2/authenticate?api_key=pk_live_[your_key]&secret_key=sk_live_[your_key]'
var request = require("request");
var options = { method: 'POST',
url: 'https://test.wonolo.com/api_v2/authenticate',
qs:
{ api_key: 'pk_live_[your_key]',
secret_key: 'sk_live_[your_key]' },
headers:
{ 'cache-control': 'no-cache',
Connection: 'keep-alive',
'Content-Length': '0',
'Accept-Encoding': 'gzip, deflate',
Host: 'test.wonolo.com',
'Cache-Control': 'no-cache',
Accept: '*/*',
'Content-Type': 'application/x-www-form-urlencoded' } };
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
require 'uri'
require 'net/http'
url = URI("https://test.wonolo.com/api_v2/authenticate?api_key=pk_live_[your_key]&secret_key=sk_live_[your_key]")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/x-www-form-urlencoded'
request["Accept"] = '*/*'
request["Cache-Control"] = 'no-cache'
request["Host"] = 'test.wonolo.com'
request["Accept-Encoding"] = 'gzip, deflate'
request["Content-Length"] = '0'
request["Connection"] = 'keep-alive'
request["cache-control"] = 'no-cache'
response = http.request(request)
puts response.read_body
var data = null;
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.addEventListener("readystatechange", function () {
if (this.readyState === 4) {
console.log(this.responseText);
}
});
xhr.open("POST", "https://test.wonolo.com/api_v2/authenticate?api_key=pk_live_[yourkey]&secret_key=sk_live_[yourkey]");
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.send(data);
import requests
url = "https://test.wonolo.com/api_v2/authenticate"
querystring = {"api_key":"pk_live_[your_key]","secret_key":"sk_live_[your_key]"}
headers = {
'Content-Type': "application/x-www-form-urlencoded",
'Accept': "*/*",
'Cache-Control': "no-cache",
'Host': "test.wonolo.com",
'Accept-Encoding': "gzip, deflate",
'Content-Length': "0",
'Connection': "keep-alive",
'cache-control': "no-cache"
}
response = requests.request("POST", url, headers=headers, params=querystring)
print(response.text)
A successful response will be returned as follows;
{
"token": "QwErTyAsDfZxCv",
"expires_at": "2019-11-09T22:56:59Z"
}
Updated almost 5 years ago
Get started by defining badges specific to your company and the jobs you will be posting