List Jobs

GET https://backend.localbusiness.pro/api/v1/jobs

Returns a paginated list of jobs (work orders) for the authenticated business, sorted by creation date (newest first).

Header Parameters

X-Public-Key string required

Your business public key. Used to identify which business is making the request.

X-Timestamp string required

Current Unix timestamp in seconds. Requests older than 5 minutes are rejected.

X-Signature string required

HMAC-SHA256 signature of the signing string: {timestamp}\n{METHOD}\n{path}\n{body}, using your private key as the secret.

Query Parameters

page integer

Page number (1-indexed).

per_page integer

Items per page (max 100). Default: 25.

status string

Filter by work status (e.g., draft, sent, scheduled, in_progress, completed, cancelled).

Responses

200 Paginated list of jobs.
{
  "jobs": [
    {
      "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "job_number": "JOB-00042",
      "name": "AC Unit Replacement - Henderson Residence",
      "description": "Remove old 3-ton unit and install new Carrier 16 SEER2 system with thermostat upgrade",
      "work_status": "in_progress",
      "total_amount": "8750.00",
      "outstanding_balance": "4375.00",
      "lead_source": "referral",
      "created_at": "2026-02-01T10:00:00.000000Z",
      "updated_at": "2026-03-05T16:45:00.000000Z"
    }
  ],
  "pagination": {
    "current_page": 1,
    "per_page": 25,
    "total_items": 34,
    "total_pages": 2
  }
}
401 Missing credentials, expired timestamp, or invalid signature.
{
  "error": "Invalid API credentials",
  "code": "INVALID_CREDENTIALS"
}
403 Business account exists but is not active.
{
  "error": "Business account is not active",
  "code": "ACCOUNT_INACTIVE"
}
429 Rate limit exceeded (60 requests/minute per key).
{
  "message": "Too Many Attempts."
}