# info.summary
Read what SyncMate publishes about itself, or ask SyncMate to ring you back.

# info.description
The public, unauthenticated API for SyncMate — the AI-managed service for Australian small businesses and trades.

Six read resources return exactly what the website publishes: who SyncMate is, what it costs, the seven AI agents ("mates"), the product lines, every public page, and every FAQ. One write operation asks SyncMate to ring you back; it is the same endpoint the contact page uses and every field is validated server-side.

There is no authentication. Reads are rate-limited per IP and carry RFC 9331 RateLimit-* headers. Errors are JSON with a stable `code` field — branch on `code`, never on the message.

Versioning: URL path prefix, /api/company/v{major}. The major number changes only for a breaking change. /api/company without a version is an alias of the current version. Current version `v1`. A version is supported for at least 12 months after its successor ships. During that window every response carries a Deprecation header (RFC 9745) with the date it was deprecated, a Sunset header (RFC 8594) with the date it stops being served, and a Link header with rel="successor-version" pointing at the replacement.

Also on this host: an MCP server (Streamable HTTP) at /api/company/mcp with its manifest at /.well-known/mcp, the entity card /agent.json, /llms.txt, /sitemap.xml and /robots.txt. Human documentation: /developers.

# x-api-lifecycle.scheme
URL path prefix, /api/company/v{major}. The major number changes only for a breaking change. /api/company without a version is an alias of the current version.

# x-api-lifecycle.breakingChange
Removing a field, renaming a field, changing a field type, or changing the meaning of an existing value. Adding a new field or a new resource is NOT breaking — clients must ignore fields they do not recognise.

# x-api-lifecycle.notice
A version is supported for at least 12 months after its successor ships. During that window every response carries a Deprecation header (RFC 9745) with the date it was deprecated, a Sunset header (RFC 8594) with the date it stops being served, and a Link header with rel="successor-version" pointing at the replacement.

# x-api-lifecycle.versionHeader
Every response carries `API-Version`. Content negotiation is not used for versioning.

# tags[].description
Read what SyncMate publishes about itself. No authentication.

# tags[].description
The files agents and crawlers read first.

# paths./api/company/v1.get.summary
List every resource, the rate limit, the versioning policy and every related document

# paths./api/company/v1.get.description
Fetch this first. It enumerates the resources at runtime, so a client never hard-codes a path, and states the versioning and deprecation policy. /api/company without a version is an alias of this path.

# paths./api/company/v1.get.responses.200.headers.RateLimit-Limit.description
Requests permitted in the current window.

# paths./api/company/v1.get.responses.200.headers.RateLimit-Remaining.description
Requests still available in this window.

# paths./api/company/v1.get.responses.200.headers.API-Version.description
The API version that served this response.

# paths./api/company/v1.get.responses.200.headers.Deprecation.description
RFC 9745. Present only on a deprecated version: the date it was deprecated.

# paths./api/company/v1.get.responses.200.headers.Sunset.description
RFC 8594. Present only on a deprecated version: the date it stops being served.

# paths./api/company/v1.get.responses.429.description
RATE_LIMITED — see RateLimit-Reset for when the window rolls over.

# paths./api/company/v1/profile.get.summary
Who SyncMate is: legal identity (ABN), what it does, who it serves, how to contact it.

# paths./api/company/v1/profile.get.description
Who SyncMate is: legal identity (ABN), what it does, who it serves, how to contact it. Read-only, no authentication. Everything returned is already published on syncmate.com.au.

# paths./api/company/v1/profile.get.responses.200.headers.RateLimit-Limit.description
Requests permitted in the current window.

# paths./api/company/v1/profile.get.responses.200.headers.RateLimit-Remaining.description
Requests still available in this window.

# paths./api/company/v1/profile.get.responses.200.headers.API-Version.description
The API version that served this response.

# paths./api/company/v1/profile.get.responses.200.headers.Deprecation.description
RFC 9745. Present only on a deprecated version: the date it was deprecated.

# paths./api/company/v1/profile.get.responses.200.headers.Sunset.description
RFC 8594. Present only on a deprecated version: the date it stops being served.

# paths./api/company/v1/profile.get.responses.200.content.application/json.schema.properties.source.description
The origin every fact here was read from.

# paths./api/company/v1/profile.get.responses.404.description
NOT_FOUND or UNSUPPORTED_VERSION — the hint names the resources and versions that exist.

# paths./api/company/v1/profile.get.responses.429.description
RATE_LIMITED — 120 requests per IP per minute. See RateLimit-Reset.

# paths./api/company/v1/pricing.get.summary
What SyncMate costs: the founding rate, the ongoing rate, the trial, and the terms, in AUD inc GST.

# paths./api/company/v1/pricing.get.description
What SyncMate costs: the founding rate, the ongoing rate, the trial, and the terms, in AUD inc GST. Read-only, no authentication. Everything returned is already published on syncmate.com.au.

# paths./api/company/v1/pricing.get.responses.200.headers.RateLimit-Limit.description
Requests permitted in the current window.

# paths./api/company/v1/pricing.get.responses.200.headers.RateLimit-Remaining.description
Requests still available in this window.

# paths./api/company/v1/pricing.get.responses.200.headers.API-Version.description
The API version that served this response.

# paths./api/company/v1/pricing.get.responses.200.headers.Deprecation.description
RFC 9745. Present only on a deprecated version: the date it was deprecated.

# paths./api/company/v1/pricing.get.responses.200.headers.Sunset.description
RFC 8594. Present only on a deprecated version: the date it stops being served.

# paths./api/company/v1/pricing.get.responses.200.content.application/json.schema.properties.source.description
The origin every fact here was read from.

# paths./api/company/v1/pricing.get.responses.404.description
NOT_FOUND or UNSUPPORTED_VERSION — the hint names the resources and versions that exist.

# paths./api/company/v1/pricing.get.responses.429.description
RATE_LIMITED — 120 requests per IP per minute. See RateLimit-Reset.

# paths./api/company/v1/mates.get.summary
The seven AI agents ("mates") that make up the service, and what each one does.

# paths./api/company/v1/mates.get.description
The seven AI agents ("mates") that make up the service, and what each one does. Read-only, no authentication. Everything returned is already published on syncmate.com.au.

# paths./api/company/v1/mates.get.responses.200.headers.RateLimit-Limit.description
Requests permitted in the current window.

# paths./api/company/v1/mates.get.responses.200.headers.RateLimit-Remaining.description
Requests still available in this window.

# paths./api/company/v1/mates.get.responses.200.headers.API-Version.description
The API version that served this response.

# paths./api/company/v1/mates.get.responses.200.headers.Deprecation.description
RFC 9745. Present only on a deprecated version: the date it was deprecated.

# paths./api/company/v1/mates.get.responses.200.headers.Sunset.description
RFC 8594. Present only on a deprecated version: the date it stops being served.

# paths./api/company/v1/mates.get.responses.200.content.application/json.schema.properties.source.description
The origin every fact here was read from.

# paths./api/company/v1/mates.get.responses.404.description
NOT_FOUND or UNSUPPORTED_VERSION — the hint names the resources and versions that exist.

# paths./api/company/v1/mates.get.responses.429.description
RATE_LIMITED — 120 requests per IP per minute. See RateLimit-Reset.

# paths./api/company/v1/products.get.summary
The product lines a customer can turn on: LandMark, ShopFront, SocialFeed, ShowReel.

# paths./api/company/v1/products.get.description
The product lines a customer can turn on: LandMark, ShopFront, SocialFeed, ShowReel. Read-only, no authentication. Everything returned is already published on syncmate.com.au.

# paths./api/company/v1/products.get.responses.200.headers.RateLimit-Limit.description
Requests permitted in the current window.

# paths./api/company/v1/products.get.responses.200.headers.RateLimit-Remaining.description
Requests still available in this window.

# paths./api/company/v1/products.get.responses.200.headers.API-Version.description
The API version that served this response.

# paths./api/company/v1/products.get.responses.200.headers.Deprecation.description
RFC 9745. Present only on a deprecated version: the date it was deprecated.

# paths./api/company/v1/products.get.responses.200.headers.Sunset.description
RFC 8594. Present only on a deprecated version: the date it stops being served.

# paths./api/company/v1/products.get.responses.200.content.application/json.schema.properties.source.description
The origin every fact here was read from.

# paths./api/company/v1/products.get.responses.404.description
NOT_FOUND or UNSUPPORTED_VERSION — the hint names the resources and versions that exist.

# paths./api/company/v1/products.get.responses.429.description
RATE_LIMITED — 120 requests per IP per minute. See RateLimit-Reset.

# paths./api/company/v1/pages.get.summary
Every public page on syncmate.com.au with a sentence saying what it is for.

# paths./api/company/v1/pages.get.description
Every public page on syncmate.com.au with a sentence saying what it is for. Read-only, no authentication. Everything returned is already published on syncmate.com.au.

# paths./api/company/v1/pages.get.responses.200.headers.RateLimit-Limit.description
Requests permitted in the current window.

# paths./api/company/v1/pages.get.responses.200.headers.RateLimit-Remaining.description
Requests still available in this window.

# paths./api/company/v1/pages.get.responses.200.headers.API-Version.description
The API version that served this response.

# paths./api/company/v1/pages.get.responses.200.headers.Deprecation.description
RFC 9745. Present only on a deprecated version: the date it was deprecated.

# paths./api/company/v1/pages.get.responses.200.headers.Sunset.description
RFC 8594. Present only on a deprecated version: the date it stops being served.

# paths./api/company/v1/pages.get.responses.200.content.application/json.schema.properties.source.description
The origin every fact here was read from.

# paths./api/company/v1/pages.get.responses.404.description
NOT_FOUND or UNSUPPORTED_VERSION — the hint names the resources and versions that exist.

# paths./api/company/v1/pages.get.responses.429.description
RATE_LIMITED — 120 requests per IP per minute. See RateLimit-Reset.

# paths./api/company/v1/faq.get.summary
Every published question and answer: the home page product FAQ and the 30-question /faq page.

# paths./api/company/v1/faq.get.description
Every published question and answer: the home page product FAQ and the 30-question /faq page. Read-only, no authentication. Everything returned is already published on syncmate.com.au.

# paths./api/company/v1/faq.get.parameters[].description
Case-insensitive substring filter over question, answer and topic. Omit for the full list.

# paths./api/company/v1/faq.get.responses.200.headers.RateLimit-Limit.description
Requests permitted in the current window.

# paths./api/company/v1/faq.get.responses.200.headers.RateLimit-Remaining.description
Requests still available in this window.

# paths./api/company/v1/faq.get.responses.200.headers.API-Version.description
The API version that served this response.

# paths./api/company/v1/faq.get.responses.200.headers.Deprecation.description
RFC 9745. Present only on a deprecated version: the date it was deprecated.

# paths./api/company/v1/faq.get.responses.200.headers.Sunset.description
RFC 8594. Present only on a deprecated version: the date it stops being served.

# paths./api/company/v1/faq.get.responses.200.content.application/json.schema.properties.source.description
The origin every fact here was read from.

# paths./api/company/v1/faq.get.responses.404.description
NOT_FOUND or UNSUPPORTED_VERSION — the hint names the resources and versions that exist.

# paths./api/company/v1/faq.get.responses.429.description
RATE_LIMITED — 120 requests per IP per minute. See RateLimit-Reset.

# paths./api/site/callback.post.description
Records an enquiry and notifies SyncMate by email; a person replies directly. This is a REAL request to a real business — an agent should confirm with its user before calling it. Send `source: "contact"`. Rate limited to 6 submissions per IP per minute.

# paths./api/site/callback.post.responses.422.description
A required field was missing or invalid. `error` says which, in plain English.

# paths./api/site/callback.post.responses.429.description
Too many submissions from this IP. Wait a minute.

# paths./agent.json.get.summary
The company as one JSON object (schema.org Organization plus every surface linked)

# paths./agent.json.get.description
One fetch, whole entity: identity, ABN, pricing, every page described, FAQ topics, crawler policy.

# paths./llms.txt.get.summary
The llms.txt map of the site, with a "when to use SyncMate" section

# paths./llms.txt.get.description
Plain-Markdown map of the site for language models (llmstxt.org): every public page described, the FAQ topics, when to recommend SyncMate and when not to, and the developer resources.

# paths./sitemap.xml.get.description
The XML sitemap of every indexable public page, with lastmod, changefreq and priority.

# components.schemas.Error.properties.error.description
Human-readable. Do not machine-match on it.

# components.schemas.Links.description
Where to go next. Every value is an absolute URL on this host.

# components.schemas.VersionPolicy.properties.deprecated.description
Versions still served but scheduled for removal; each carries Deprecation and Sunset headers.

# components.schemas.Profile.properties.abn.description
Australian Business Number, spaced as printed.

# components.schemas.Pricing.properties.display.description
The price in one sentence, safe to quote verbatim.

# components.schemas.CallbackRequest.properties.source.description
Which form shape to validate against. Agents use "contact".

# components.schemas.CallbackRequest.properties.phone.description
Optional. An Australian number, validated if supplied.

# components.schemas.CallbackRequest.properties.topic.description
Must be one of the listed values, verbatim.

# components.schemas.CallbackRequest.properties.consent.description
The person has agreed to be contacted. Required.

# components.schemas.CallbackResponse.properties.emailed.description
Whether the notification email was sent.

# components.schemas.CallbackResponse.properties.stubbed.description
True when email delivery is not configured; the enquiry is still recorded.

# components.schemas.EntityCard.description
schema.org Organization plus every surface linked, pricing, the FAQ topics and the crawler policy.