Developer notes
The JobNimbus API, Documented in Two Places: Keys, Access Profiles, Endpoints and What Is Missing
JobNimbus lists "API & Webhooks" as "Unlimited" on all four of its plans. Finding out what that buys takes more digging, because the documentation lives in two places that do not quite agree. Here is the map, with the gaps marked.
November 4, 2026 · 9 min read
- PassKey made under Settings
- PassAccess profile scopedweb forms
- PassContacts and jobs in Postman
- WarnWebhook subscription endpointautomations
- WarnPublished rate limitnot stated
- PassDeprecation and sunset policy
The short answer
The JobNimbus API uses an API key created under Settings and sent as a Bearer token; the key inherits the permissions of its access profile. JobNimbus's developer site covers keys and deprecation, and its help center links a public Postman reference for contacts, jobs, tasks, activities, files, work orders, estimates, invoices and account settings. Webhooks run as an automation action.
On this page
- Two front doors to the same documentation
- A key that borrows a person's permissions
- What the Postman reference covers, folder by folder
- Search syntax, page sizes and the 10,000 ceiling
- Webhooks without a subscription endpoint
- Building for a quarter-end sunset
- Seven questions to settle before the first request
- Our side of the connection, and its price
Two front doors to the same documentation
Start at developer.jobnimbus.com and you find two guides, as of November 2026: Authorization, and a Deprecation and Sunset Policy. No endpoint list. The reference itself sits elsewhere. JobNimbus's help article on building with its Open API links a public Postman collection titled "JobNimbus Public API," says the documentation is for building custom integrations that JobNimbus's own integration list does not already offer, and points to a separate PDF for queries over 10,000 items. It also says JobNimbus "does not recommend building a custom API unless you have experience with coding," which is fair warning and a fair description of our job.
The two sources disagree on one detail that matters to any developer: the base URL. The developer site gives https://api.jobnimbus.com. The Postman reference gives https://app.jobnimbus.com/api1/ for most requests, with file uploads on api.jobnimbus.com. We do not guess which is current for your account; it is the first question we put to JobNimbus, and the answer goes in the project notes.
- Plans. "API & Webhooks" is listed as "Unlimited" on Essentials, Pro, Premium and Enterprise. No plan shows a price; each says "Request pricing."
- Integration cap. Essentials allows 2 integrations and Pro 5 (shown as both "Max 5" and "Max 5+"). JobNimbus does not say whether a custom key counts.
- Change notice. The deprecation policy promises at least six months' notice before an endpoint is sunset, with sunsets on the last day of a calendar quarter.
A key that borrows a person's permissions
Keys are made in the app. The developer site's path is Settings, then API Keys, then Create API Key; JobNimbus's Zapier article describes the same thing as the API tab under Settings and a New API key button. Either way, the key is assigned an access profile, and "Your API key inherits the permissions of the access profile it is assigned to." The key is shown once: "The key will not be displayed again after you leave the page." Every request then carries Authorization: Bearer followed by the key.

Because the key copies a profile's reach, the profile is the security setting. JobNimbus's own advice is to use "the most restrictive access profile" that does the job, keep keys out of client-side code and public repositories, store them in environment variables or a secrets manager, and rotate them periodically. Error codes follow from that: a missing header returns 401, and an invalid, expired or revoked key, or one without permission for the action, returns 403 in the Problem Details format.
What the Postman reference covers, folder by folder
The public reference is organized in folders. Updates and deletes are both PUT requests to a record's jnid, a quirk worth knowing before a developer sends a DELETE that goes nowhere. The table summarizes what a website or dashboard can do with each, as of November 2026.
| Folder | What it allows | Website use |
|---|---|---|
| Contacts | Create, update, delete, retrieve one, retrieve all | New web leads; matching returning homeowners |
| Jobs | Create, update, delete, retrieve one, retrieve all | Estimate and inspection requests linked to a contact |
| Activities | Create, retrieve one, retrieve all | The homeowner's message and tracking notes on the record |
| Tasks | Create, update, delete, retrieve | Preferred inspection times for the office to confirm |
| Files | Upload, multipart upload, retrieve (older create calls marked deprecated) | Photos a homeowner attaches to a leak report |
| WorkOrders, MaterialOrders, Products | Create, update, delete, retrieve | Rarely needed by a website; useful for dashboards |
| Estimates (Legacy), Invoices, Payments | Create and retrieve; payments list and create | Revenue figures for a sold-roof report |
| Account | Read settings and users; create workflows, statuses, lead sources, custom fields and more | Reading exact workflow, status and source names |
For a lead, the required fields are short. A contact needs a name, a record_type_name (the workflow) and a status_name; a job needs name, record_type_name and status_name; and a source_name, if sent, must match a lead source in the account. An activity wants a note, a record type and the primary.id of the record it belongs to. Our JobNimbus lead forms page turns that into a full field map.
Search syntax, page sizes and the 10,000 ceiling
JobNimbus's list requests are more capable than they look. The reference says "you are able to pass a query using ElasticSearch syntax," as a URL-encoded JSON filter with clauses such as must, term, terms and range; its example filters contacts by a date_created range. Lists also take size (1000 by default), from for paging, sort_field, sort_direction and fields to trim the response. The WorkOrders list notes that "The maximum value for size is 10,000," and the help center's 10k PDF covers larger pulls.
Two practical uses follow. Matching: before creating a contact, the server filters on email and phone and attaches the new request to an existing record, which keeps storm weeks from doubling the database. Syncing: a nightly pass filtered on update dates keeps a custom dashboard current without pulling everything. JobNimbus publishes no rate limits that we could find, so we pace requests conservatively, back off on any error, and never loop a failed call.
Webhooks without a subscription endpoint
"API & Webhooks" on the pricing page might suggest a subscription API like other platforms publish. What JobNimbus documents is different: Webhook is one of five automation actions, alongside Create Task, Send Text Message, Send Email and Change Status. An automation, once its conditions are met, posts record data for contacts, jobs, tasks, work orders, material orders or activity to a static URL from the receiving service. Available fields are limited per record type, and "Custom Fields are *not* included in available Webhook actions." The help article also warns against using webhooks without programming experience.
JobNimbus's Zapier app offers a second outbound path, with triggers for "Contact Created, Modified or Deleted" and "Job Created, Modified or Deleted." Neither source documents a signature or retry behavior, so our listener treats each delivery as a hint: it uses an unguessable HTTPS address, reads the record ID, and fetches the record through the API with our own key before acting. That is how a status change to Sold becomes a row on a dashboard or a conversion sent to Google through conversion tracking.
Treat a JobNimbus webhook as a doorbell, not a parcel: it tells you to look, and the API tells you what is there.
Building for a quarter-end sunset
JobNimbus's Deprecation and Sunset Policy, last updated February 11, 2026, is the kind of document more vendors should publish. It promises at least six months' notice before an endpoint is sunset, sets sunsets on the last day of a calendar quarter, and marks deprecated endpoints with Deprecation and Sunset response headers. The Postman reference already marks two older file requests as deprecated.
Our builds log those headers and raise a plain-English alert the first time one appears, which turns a sunset into a scheduled job instead of a broken form in some future storm season. The Athena agent Argus watches the live forms from the other side, so a failure shows up on our screen before a homeowner gives up on yours.
Seven questions to settle before the first request
- 1
Confirm the base URL and the integration cap
Ask JobNimbus which host your account should use and whether a custom key counts toward your plan's integration limit.
- 2
Create a website-only access profile
Your admin builds a profile that can read and create contacts, jobs, activities and tasks, then creates a key under it and copies it once.
- 3
Export workflows, statuses and lead sources
Read them through the Account settings request or from the app, and agree the exact names each form will send.
- 4
Write the field map and the matching rule
Decide which forms create jobs, where messages and preferred times go, and which filters find an existing contact.
- 5
Choose the outbound path
An automation Webhook action, Zapier triggers, or a scheduled sync, depending on what the dashboard or ad tracking needs.
- 6
Agree how testing works
We found no JobNimbus sandbox in its public docs, so test records go into the live account under an obvious name, at times the office knows.
- 7
Install, log and watch
The key goes into the server's environment, every request is logged, and deprecation headers trigger an alert.
Our side of the connection, and its price
We are a San Antonio, Texas studio that builds custom Next.js sites and connects them to the systems contractors run, using the habits our API integrations work applies everywhere: field map first, server-side validation, queued and idempotent writes, readable logs. We are not a JobNimbus partner. The closest proof is roofing work outside JobNimbus: American Roofing & Waterproofing, built around an instant-quote tool that books inspections, and HomeService WebApp, a contractor command center we redesigned.
A JobNimbus connection on your existing site begins at $575, set by complexity and quoted after a free review; linking two systems typically goes live the same day. New roofing sites start at $1,500 and include one custom API integration; see web design pricing and website financing, or begin with a free site audit. The JobNimbus integration hub covers the whole connection, roofing website design covers the site, and the AccuLynx API guide and FieldEdge API guide show how other platforms compare.
Questions roofers ask about JobNimbus integration
In two places, as of November 2026. developer.jobnimbus.com holds the Authorization and Deprecation guides. The endpoint reference is a public Postman collection, "JobNimbus Public API," linked from JobNimbus's help article on building with its Open API, plus a PDF for queries over 10,000 items.
JobNimbus's pricing page lists "API & Webhooks" as "Unlimited" on Essentials, Pro, Premium and Enterprise, as of November 2026. Prices are not published. Integrations are capped at 2 on Essentials and 5 on Pro, and JobNimbus does not say whether a custom key counts, so ask.
We found none in the developer site or the Postman reference as of November 2026. List requests default to 1,000 records, and the WorkOrders list caps size at 10,000. A careful integration paces its requests, backs off on errors and asks JobNimbus for limits before heavy syncing.
The Postman reference lists Account requests to create a workflow, a status within a workflow, a lead source, a custom field and more. The lead source request's description is copied from the workflow request, so its documentation is thin. We let your office manage those lists in JobNimbus.
Through automations. Webhook is one of five automation actions; when an automation's conditions are met, JobNimbus posts record data to a URL from the receiving service. Fields are limited by record type and custom fields are excluded. JobNimbus's Zapier triggers are a second outbound path.
JobNimbus's developer site gives https://api.jobnimbus.com, while its Postman reference uses https://app.jobnimbus.com/api1/ for most requests. Confirm with JobNimbus which applies to your account before building. Either way, requests carry the key as a Bearer token.
Kairos · AI chat and booking
Book the job while the visitor is still on the page
Kairos answers questions from your own services, hours and published prices, offers real open times and books the appointment in the chat, at 2 p.m. or 2 a.m. Today it books into a Google or Microsoft 365 calendar; booking straight into field-service software is rolling out. Clio, its dashboard, shows which pages and ads turned into bookings.
Keep reading
- Web leads into JobNimbusJobNimbus Lead Forms: Roofing Inquiries That Arrive With a Workflow, a Status and a SourceSend every roofing, gutter and siding form on your website into JobNimbus as a contact with the right workflow, status and lead source. No retyping.
- JobNimbus integrationJobNimbus Integration: Roofing and Exterior Websites That Hand JobNimbus a Finished ContactConnect a roofing, siding or gutter website to JobNimbus: leads with the right workflow and source, texting, webhooks and tracking, and what each costs.
- Roofing CRM comparisonAccuLynx vs JobNimbus vs Roofr, Judged From the Website's Side of the FenceAccuLynx vs JobNimbus vs Roofr on what a roofing website needs: API access, webhooks, Zapier, web forms, booking and texting, from each vendor's own pages.
- Everything in JobNimbus IntegrationSee the section
Get a clear read on what JobNimbus's API can do for your site
Tell us what the website or dashboard should do. We check it against JobNimbus's reference, list the questions for JobNimbus, and quote the build in writing.
Which of these sounds like you? (pick any)
Rather talk now? Call (210) 346-0848.