Developer Documentation

Sendatradie Zapier Integration — API Reference

The endpoints powering the Sendatradie Zapier integration. Use this reference to connect your Sendatradie account to thousands of apps through Zapier triggers and actions.

Base URL  https://api.sendatradie.com/integrations/v1

Authentication

All endpoints require a Sendatradie company API key.

Preferred header

Authorization: Bearer <company_api_key>

Alternative supported header

x-api-key: <company_api_key>

Response envelope

Successful responses use this envelope:

{
  "success": true,
  "data": {}
}

Errors use the same envelope where possible:

{
  "success": false,
  "data": "Error message"
}

Common status codes

Status Meaning
200 Request succeeded
201 Resource created
400 Required field missing or invalid input
401 Missing or invalid API key
500 Server error

Zapier Features

How each Zapier trigger, action and dropdown maps to an API endpoint.

Zapier feature API endpoint
Authentication test GET /auth/test
Trigger: Job Created GET /events?type=job.created
Trigger: Job Closed GET /events?type=job.closed
Trigger: Client Created GET /events?type=client.created
Trigger: Job Moved to Pipeline GET /events?type=job.pipeline_moved
Action: Create Client POST /clients
Action: Create Job POST /jobs
Dynamic dropdown: Job Types GET /meta/job-types
Dynamic dropdown: Pipeline Lists GET /meta/lists
Dynamic dropdown: Technicians GET /meta/workers

Test Authentication

GET/auth/test

Used by Zapier to verify the API key and label the connected account.

Example response

{
  "success": true,
  "data": {
    "company_id": 123,
    "company_name": "Example Plumbing",
    "time_zone": "Australia/Melbourne"
  }
}

List Events

GET/events

Used by Zapier polling triggers.

Query parameters

Parameter Required Description
type No Event type filter. Zapier uses job.created, job.closed, client.created, and job.pipeline_moved.
after No ISO timestamp. Returns events after this time. Defaults to 1970-01-01T00:00:00Z.
limit No Maximum number of events. Defaults to 50, maximum 200.

Example request

GET /integrations/v1/events?type=job.created&after=2026-05-01T00:00:00Z&limit=50
Authorization: Bearer <company_api_key>

Example response

{
  "success": true,
  "data": [
    {
      "id": 1001,
      "event_type": "job.created",
      "entity_type": "job",
      "entity_id": 456508,
      "occurred_at": "2026-05-27T03:10:00.000Z",
      "payload": {
        "job_id": 456508,
        "customer_id": 203814,
        "name": "John Smith",
        "address": "1 Collins St, Melbourne VIC 3000",
        "job_status_id": 1,
        "list_id": 10
      }
    }
  ]
}

Event payload notes

Event type Payload fields
job.created job_id, customer_id, name, address, job_status_id, list_id
job.closed job_id, job_status_id, date_closed
client.created client_id, name, email, phone, address or mainaddress
job.pipeline_moved job_id, from_list_id, to_list_id

Create Client

POST/clients

Used by the Zapier “Create Client” action.

Request fields

Field Required Description
name Yes Client name.
email No Client email address.
phone No Client phone number.
address No Main client address.
billto No Billing address. Defaults to address when omitted.
companyname No Client company name.

Example request

{
  "name": "John Smith",
  "email": "john@example.com",
  "phone": "0400000000",
  "address": "1 Collins St, Melbourne VIC 3000",
  "billto": "1 Collins St, Melbourne VIC 3000",
  "companyname": "John Smith Pty Ltd"
}

Example response

{
  "success": true,
  "data": {
    "id": 203814,
    "name": "John Smith",
    "email": "john@example.com",
    "phone": "0400000000",
    "address": "1 Collins St, Melbourne VIC 3000"
  }
}

Create Job

POST/jobs

Used by the Zapier “Create Job” action.

Current Zapier action fields

Field Required Description
name Yes Customer/job name shown in Zapier as “Customer Name”.
job_status_id Yes Job status. Zapier currently offers 1 for Pending and 7 for Quote. Defaults to 1.
address No Job address.
job_description No Additional job description or notes.
email No Customer email address.
phone No Customer phone number.
job_type No Job type ID selected from GET /meta/job-types.
list_id No Pipeline/list ID selected from GET /meta/lists.

Additional API-supported fields

Field Description
customer_id Existing customer ID. If omitted, the API finds or creates a customer.
customer_name, client_name, customer.name Used to create/find the customer when customer_id is omitted. Falls back to name.
customer_email, customer_phone, customer_address Customer details used when finding or creating the customer.
customer_companyname, companyname, companyName Customer company name.
schedule_appointment Boolean. If omitted, it is true when appointment_time is provided.
appointment_time ISO timestamp for the appointment.
duration Job duration in minutes. Defaults to 60.
worker_ids Technician IDs as an array or comma-separated string.

Example request

{
  "name": "John Smith",
  "job_status_id": 1,
  "address": "1 Collins St, Melbourne VIC 3000",
  "job_description": "Blocked drain from Zapier lead",
  "email": "john@example.com",
  "phone": "0400000000",
  "job_type": 5,
  "list_id": 10
}

Example response

{
  "success": true,
  "data": {
    "id": 456508,
    "customer_id": 203814
  }
}

List Job Types

GET/meta/job-types

Used by Zapier as a hidden dynamic dropdown for the Create Job action.

Example response

{
  "success": true,
  "data": [
    {
      "value": 5,
      "label": "Plumbing",
      "estimate_job_time": 60,
      "appointment_duration": 60
    }
  ]
}

Zapier maps each item to:

{
  "id": "5",
  "name": "Plumbing"
}

List Pipeline Lists

GET/meta/lists

Used by Zapier as a hidden dynamic dropdown for the Create Job action.

Example response

{
  "success": true,
  "data": [
    {
      "id": 10,
      "name": "New Leads"
    }
  ]
}

List Technicians

GET/meta/workers

Available as a Zapier dynamic dropdown resource. The current Zapier Create Job UI has technician selection commented out, but the backend and Zapier resource support it.

Example response

{
  "success": true,
  "data": [
    {
      "id": 5,
      "full_name": "Jane Technician"
    }
  ]
}

Zapier maps each item to:

{
  "id": "5",
  "name": "Jane Technician"
}

List / Search Jobs

GET/jobs

Available for integration use. The current Zapier polling triggers use GET /events instead.

Query parameters

Parameter Required Description
updated_after No ISO timestamp. Returns jobs edited after this time.
limit No Maximum number of jobs. Defaults to 50, maximum 200.
job_status_id No Filter by job status ID.
job_number No Filter by exact job number.

Example response

{
  "success": true,
  "data": [
    {
      "id": 456508,
      "string_id": "JOB-456508",
      "name": "John Smith",
      "address": "1 Collins St, Melbourne VIC 3000",
      "job_status_id": 1,
      "job_type": 5,
      "job_number": 10025,
      "po_number": "",
      "money": 0,
      "include_tax": 1,
      "customer_id": 203814,
      "phone": "0400000000",
      "email": "john@example.com",
      "note": "",
      "appointment_time": null,
      "appointment_time_local": null,
      "suburb_name": "",
      "last_edited": "2026-05-27T03:10:00.000Z",
      "date_closed": null
    }
  ]
}
Need help connecting? Generate your company API key in Sendatradie, then paste it into the Zapier connection prompt when you add the Sendatradie app to a Zap. Contact support if you need a key issued.