← Joblogic integration

Getting Joblogic API access

Joblogic's public API is a REST API under /api/v1, documented at

apidocs.joblogic.com. Access is gated on three

things: credentials, a tenant id, and an IP allowlist entry. All three arrive

from Joblogic — none of them are self-generated.

1. Request credentials

Joblogic ships an API Access app in its marketplace that automates the

request. It returns:

ValueWhat it is
Client IDIdentifies your integration
Client SecretEmailed separately from the client id
Tenant IDYour contractor's GUID in Joblogic

Joblogic will also provision a UAT tenant at uat.joblogic.com so you can

develop against test data. A fresh UAT tenant starts empty — export a handful of

customers, sites, and assets from live and import them, or create records by

hand.

2. Register your egress IP

Joblogic's resource servers only answer requests from IP addresses it has

allowlisted. Supply the public IP your integration calls from before you start,

and tell Joblogic whenever it changes.

This is the single most common failure mode: an unregistered IP returns **403

Forbidden**, which reads like a permissions problem but is not. If your

credentials are correct and every call 403s, check the allowlist first.

3. Authenticate

Auth is OAuth2 client credentials. Exchange the client id and secret for a

bearer token:

POST https://uatidentityserver.joblogic.com/connect/token
Content-Type: application/x-www-form-urlencoded

client_id=...&client_secret=...&grant_type=client_credentials&scope=JL.Api
{
  "access_token": "eyJhbGciOiJSUzI1NiIsImtpZCI6...",
  "expires_in": 3600,
  "token_type": "Bearer",
  "scope": "JL.Api"
}

Send it as Authorization: Bearer <access_token> on every request.

Tokens expire — Joblogic documents roughly an hour and reserves the right to

change the lifetime without notice, so read expires_in rather than assuming a

value, and treat a 401 as "mint a new token and retry once". This provider

caches a token per credential set and refreshes it automatically.

4. Pass the tenant id

Every request carries the tenant id — the contractor whose data you're touching.

It rides in the query string on GET/DELETE and as TenantId in the JSON body

on POST/PUT. This provider injects it from the connected account, so tools

never take it as a parameter.

Environments

Resource serverToken endpoint
UAThttps://uatapi.joblogic.comhttps://uatidentityserver.joblogic.com/connect/token
Livehttps://api.joblogic.comsupplied with your credentials

Both URLs are overridable on the connection form. Develop against UAT and switch

the environment once the flow is proven.

Rate limits

Endpoints are limited to 100 requests per minute by default, and the limit

varies per client and can change without notice. Over the limit, Joblogic

returns 429 Too Many Requests — back off exponentially and honour any

Retry-After header. Batch reads and page deliberately rather than fanning out.

Dates

The API accepts and returns UTC only, for both reads and writes. Converting

to and from local time is the caller's job. A datetime sent in another zone is

accepted and then misinterpreted, which makes this a quiet source of

off-by-hours bugs in scheduling.