openapi: 3.0.3
info:
title: Tradify API (Modeled - Not an Official Public API) Customers Jobs API
version: 0.0-modeled
description: 'IMPORTANT: This is a MODELED OpenAPI description. As of 2026-07-12, Tradify does NOT publish an open, self-serve, documented public developer API, developer portal, API keys, or webhooks. There is no public base URL to document, so this specification is intentionally SERVER-LESS and every operation is marked `x-status: modeled`. The resource surface below (jobs, customers, quotes, invoices, timesheets) is inferred from Tradify''s product capabilities and from public descriptions of unofficial third-party proxies that automate the authenticated Tradify session. None of these paths, schemas, or parameters are confirmed against official Tradify documentation and MUST NOT be treated as a supported contract. Tradify''s only supported programmatic surface is its pre-built accounting/payment partner integrations (Xero, MYOB Business, QuickBooks Online, Sage, Stripe). A live backend host, api.tradifyhq.com, exists but is undocumented, session-authenticated, and reserved for Tradify''s own web and mobile clients.'
contact:
name: Tradify (Access)
url: https://www.tradifyhq.com
x-access-model:
publicApi: false
publicApiDocumented: false
developerPortal: false
selfServiceApiKeys: false
documentedWebhooks: false
supportedProgrammaticSurface: Accounting/payment partner integrations only (Xero, MYOB Business, QuickBooks Online, Sage, Stripe).
liveButUndocumentedHost: https://api.tradifyhq.com
modeledFrom:
- https://www.tradifyhq.com/how-it-works
- https://help.tradifyhq.com/hc/en-us
- https://supergood.ai/docs/tradify-api
disclaimer: Paths and schemas are inferred, not verified. No supported public base URL exists; do not build integrations against this document.
tags:
- name: Jobs
description: (Modeled) Job records with linked customers, sites, and notes.
paths:
/jobs:
get:
operationId: listJobs
tags:
- Jobs
summary: List jobs (modeled)
description: MODELED - not a confirmed public endpoint. Lists jobs in the account.
x-status: modeled
responses:
'200':
description: A list of jobs (modeled response shape).
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Job'
'401':
$ref: '#/components/responses/Unauthorized'
post:
operationId: createJob
tags:
- Jobs
summary: Create a job (modeled)
description: MODELED - not a confirmed public endpoint. Creates a job.
x-status: modeled
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/JobInput'
responses:
'201':
description: The created job (modeled).
content:
application/json:
schema:
$ref: '#/components/schemas/Job'
'401':
$ref: '#/components/responses/Unauthorized'
/jobs/{id}:
get:
operationId: getJob
tags:
- Jobs
summary: Retrieve a job (modeled)
description: MODELED - not a confirmed public endpoint.
x-status: modeled
parameters:
- $ref: '#/components/parameters/Id'
responses:
'200':
description: A job (modeled).
content:
application/json:
schema:
$ref: '#/components/schemas/Job'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
components:
schemas:
Job:
type: object
description: Modeled job record.
properties:
id:
type: string
number:
type: string
description:
type: string
status:
type: string
customerId:
type: string
siteAddress:
type: string
createdAt:
type: string
format: date-time
JobInput:
type: object
properties:
description:
type: string
customerId:
type: string
siteAddress:
type: string
Error:
type: object
properties:
error:
type: object
properties:
code:
type: string
message:
type: string
responses:
Unauthorized:
description: Missing or invalid session credential (modeled).
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
NotFound:
description: Resource not found (modeled).
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
parameters:
Id:
name: id
in: path
required: true
description: Resource identifier (modeled).
schema:
type: string
securitySchemes:
sessionAuth:
type: apiKey
in: header
name: Authorization
description: MODELED. Tradify has no public API key scheme. Its app backend uses a session token obtained after username/password + MFA sign-in; unofficial proxies replay that session. There is no documented, self-serve public credential.