What GraphQL Is (Without the Jargon)
Most APIs work like a restaurant with a fixed menu — you pick from a set of endpoints, and each one returns a predefined set of data. That’s REST.
GraphQL is different. It’s more like telling the kitchen exactly what you want. You ask for specific fields on specific objects, and that’s exactly what you get back. No more, no less.
Jobber uses GraphQL for their API. This matters for integration because it means we can pull exactly the data we need in a single request instead of making dozens of separate calls.
How It Differs from REST
| REST | GraphQL | |
|---|---|---|
| Endpoints | Many (one per resource) | One (single endpoint for everything) |
| Data returned | Fixed response shape | You choose the fields |
| Multiple resources | Multiple requests | One request can fetch related data |
| Over-fetching | Common (you get everything) | Eliminated (you get what you ask for) |
For your integration, this means fewer API calls, faster data retrieval, and less unnecessary data transfer.
What Data Is Available
Jobber’s API exposes the core objects you work with daily:
- Clients: Name, contact info, addresses, custom fields, tags
- Jobs: Job details, status, scheduling, assigned team members, line items
- Invoices: Amounts, line items, status, linked jobs and clients
- Quotes: Quote details, status, line items, linked clients
- Requests: Service requests and their details
- Properties: Client property/site information
We query these objects to sync data between Jobber and your other systems — CRM, accounting, scheduling, or whatever you’re connecting.
The GraphQL Explorer
Jobber provides a GraphQL explorer (sometimes called a playground) in their developer documentation. It’s an interactive tool where you can write queries and see the results in real time.
We use this during development to:
- Test queries before building them into the integration
- Explore available fields and relationships
- Verify data structure and field names
You don’t need to use the explorer yourself, but it’s there if you’re curious about what data is available.
A Simple Example
Here’s what a basic query looks like (you don’t need to write these — we handle this):
query {
clients(first: 10) {
nodes {
id
firstName
lastName
emails {
address
}
}
}
}
This asks for the first 10 clients, returning only their ID, first name, last name, and email addresses. Nothing else. That efficiency is why GraphQL is well-suited for integration work.
Why This Matters for Your Integration
- Efficient syncing: We pull only the fields that map to your destination system, keeping syncs fast
- Related data in one call: We can fetch a client, their jobs, and their invoices in a single query instead of three separate requests
- Pagination built in: Jobber’s GraphQL API handles large datasets with cursor-based pagination, so we can reliably sync all your records even if you have thousands
Common Issues
Rate Limits
Jobber applies rate limits to API calls. GraphQL is more efficient than REST, but complex queries that request deeply nested data still count against your limit. We design queries to stay well within bounds.
Field Availability
Not every field you see in the Jobber UI is available through the API. If there’s a specific field you need synced, let us know early so we can verify it’s accessible.
Mutations (Writing Data Back)
GraphQL isn’t just for reading — it also supports “mutations” for creating and updating records. If your integration writes data back to Jobber (e.g., creating a job from a CRM deal), we use mutations for that.
Next Steps
- Set up your Jobber developer account: Jobber Developer Account Setup
- New to APIs? Read What Is an API
- Learn more about our Jobber CRM Integration Services
Need help with the full integration?
This guide covers the setup. If you want us to handle the integration end to end, we can do that.
See Integration Services