Local services & SaaS
Faire
Orders, inventory, reorders and messages for wholesale brands.
12 endpoints
Schedule inspections, add agreements and read agents and clients in Spectora. Use it in ChatGPT, Claude or any AI agent over MCP, or in n8n, Make and scripts over REST.
11 tools Read and write
Spectora has an official MCP server, the AI Connector, and a public API (checked 28 Oct 2026). The connector's 10 tools read agents, clients, inspections, attachments and events for a company admin, and Spectora says it "cannot book, edit, or delete anything". The API also writes client and agent records and uploads attachments, but "can't schedule inspections, make calendar changes, or edit reports". Cotlet runs 11 Spectora tools hosted, 4 of them writes, over MCP for agents and REST for scripts.
| What you need | AI Connector | Spectora API | Cotlet |
|---|---|---|---|
| Read inspections, agents and clients | Yes, company admin | Yes | Yes, as your role sees |
| Book or reschedule an inspection | No | No | Yes, after your OK |
| Add an agreement, share the client portal | No | No | Yes, after your OK |
| Create and update agent and client records | No | Yes, standard API plan | Client inside a new booking |
| Report link | No | Not found | Link only, no findings |
| Allowed by Spectora | Yes, official | Yes, official | Uses the web app |
Checked 28 Oct 2026. Sources: Spectora: AI Connector (MCP) and API · Spectora Developer: MCP server · Spectora Help: What is the MCP Server? · Spectora Help: Using the Zapier Integration · Spectora API overview and quota · Spectora pricing
Use your own account in its Cotlet Cloud Browser.
Connect your agent or create a Cotlet API key.
Ask your agent or send an HTTP request.
We never keep your Spectora password, and no booking, reschedule or portal link goes out to a client until you approve it. Who can see your session
Use MCP with your AI agent, or HTTP requests in n8n, Make, Zapier and scripts. Follow the MCP setup below or jump to the REST guide.
Enable Spectora for agents. Make a Cotlet account, log in to Spectora in its Cloud Browser as the user the agent should act as, and press Enable for agents.
Add the Cotlet address. Give your agent https://cotlet.dev/mcp/v1 as a remote MCP server or custom connector.
Confirm the connection. Chat apps send you through a Cotlet sign-in. Editors, n8n and scripts use an API key from the console.
https://cotlet.dev/mcp/v1 is one address for all your apps, Spectora among them. You can keep Spectora's own connector next to it for its ready-made reports. Turned Spectora on after connecting? Refresh the connector to see its tools.
Settings > Connectors > Add custom connector
URL: https://cotlet.dev/mcp/v1/connect
Claude Code:
claude mcp add --transport http cotlet-spectora \
https://cotlet.dev/mcp/v1 \
--header "Authorization: Bearer $COTLET_API_KEY" Settings > Apps & Connectors > Create
MCP server URL: https://cotlet.dev/mcp/v1/connect
Authentication: OAuth // ~/.cursor/mcp.json
{
"mcpServers": {
"cotlet-spectora": {
"url": "https://cotlet.dev/mcp/v1",
"headers": { "Authorization": "Bearer ${env:COTLET_API_KEY}" }
}
}
} # ~/.codex/config.toml
[mcp_servers.cotlet-spectora]
url = "https://cotlet.dev/mcp/v1"
bearer_token_env_var = "COTLET_API_KEY" MCP Client Tool (inside an AI Agent)
Transport: HTTP Streamable
URL: https://cotlet.dev/mcp/v1
Auth: Bearer, <your key>
Tool: spectora_read Make: MCP Client > Call a tool
Zapier: MCP Client by Zapier > Run Tool
Server URL: https://cotlet.dev/mcp/v1
Token: <your key>
Tool: spectora_write Create a Cotlet API key with access to Spectora and its read operations. Store it as COTLET_API_KEY in your environment or automation platform's credential store.
Connect Spectora in Cotlet and enable it for agents. Account access: Your own Spectora account (company admin for company-wide lists and settings, inspector for your own jobs).
curl https://cotlet.dev/api/v1/spectora/inspections \
-H "Authorization: Bearer $COTLET_API_KEY" A successful REST call puts the tool output in result. This illustrative response excerpt omits call IDs, messages and credit details.
{
"status": "success",
"app": "spectora",
"tool": "list_inspections",
"result": {
"inspections": [
{
"inspection_id": "insp_81f3",
"address": "14 Maple Street, Springfield",
"starts_at": "2026-11-03T09:00:00",
"inspector": "Dana Whitt",
"client": "Priya Nair",
"services": [
"Home Inspection"
],
"agreements_signed": false
}
],
"next_cursor": null
}
} Returns inspection_id, address, date and time, inspector, client name, services and the agreement state for each job, in the order Spectora lists them. Follow next_cursor until it is empty.
Canceled inspections are included only when you search for them. The account sees the inspections its role allows.
from: First day, YYYY-MM-DD.
to: Last day, YYYY-MM-DD.
cursor: next_cursor from the previous page.
Keep the same selection when continuing a list. Compare changed record values as well as identifiers when refreshing your destination.
| Tool | Connect through | Example workflow |
|---|---|---|
| n8n | HTTP Request | Returns one inspection with its client, agents, services and agreements. Use get_inspection in your configured business report. |
| Make | HTTP > Make a request | Lists upcoming inspections whose agreement the client has not signed. Use list_unsigned_inspections in your configured business report. |
| Python or Node.js | REST API | Returns the report URL of a published inspection. Use get_report_link in your configured business report. |
Send Authorization: Bearer <your Cotlet API key> in request headers. You configure the schedule, destination and record comparisons.
Cotlet reads Spectora; your workflow steps write to your chosen destination. These HTTP workflows do not require a native Cotlet connector or a prebuilt template.
Python and Node.js can use the same HTTP requests without an AI agent. Keep access keys in credentials, outside shared workflow exports.
The API and MCP reference lists operations and inputs. The REST API guide explains authentication, errors and approvals.
Bookings and moves trigger the client emails your Automations set up. A new booking needs square feet and year built; when Spectora cannot look them up, the call fails and names what is missing.
Returns inspection_id, address, date and time, inspector, client name, services and the agreement state for each job, in the order Spectora lists them. Follow next_cursor until it is empty. Canceled inspections are included only when you search for them. The account sees the inspections its role allows.
MCP callspectora_read → list_inspections
REST endpointGET https://cotlet.dev/api/v1/spectora/inspections
| Name | Type | Description |
|---|---|---|
| from string | string | First day, YYYY-MM-DD. |
| to string | string | Last day, YYYY-MM-DD. |
| search string | string | Address or client name, as in the Inspections search. |
| inspector string | string | Inspector name, as shown in Spectora. |
| cursor string | string | next_cursor from the previous page. |
{
"inspections": [
{
"inspection_id": "insp_81f3",
"address": "14 Maple Street, Springfield",
"starts_at": "2026-11-03T09:00:00",
"inspector": "Dana Whitt",
"client": "Priya Nair",
"services": [
"Home Inspection"
],
"agreements_signed": false
}
],
"next_cursor": null
} Reads the Inspection Details page. It returns the address, time, services, agreements with their signed state, the client, the buyer's and listing agent, and notes. Report content is not returned, only the link from get_report_link.
MCP callspectora_read → get_inspection
REST endpointGET https://cotlet.dev/api/v1/spectora/inspections/{inspection_id}
| Name | Type | Description |
|---|---|---|
| inspection_id string required | string | Id from list_inspections. |
{
"inspection_id": "inspection_8c41d2"
} {
"inspection_id": "insp_81f3",
"address": "14 Maple Street, Springfield",
"starts_at": "2026-11-03T09:00:00",
"inspector": "Dana Whitt",
"client": {
"name": "Priya Nair",
"email": "priya@example.com"
},
"buyer_agent": "Marcus Lee",
"listing_agent": "Elena Cruz",
"services": [
"Home Inspection"
],
"agreements": [
{
"name": "Pre-Inspection Agreement",
"signed": false
}
]
} Fills the New Inspection form and saves it. Choosing a service pulls in the templates, agreements and fees set up for it, and Spectora then sends the client the booking email with the sign and pay link as your Automations say. The address needs square feet and year built; when Spectora cannot look them up, the call fails and lists what is missing. A service name Spectora does not have fails at once. By default you confirm each call; you can switch that off for this tool.
MCP callspectora_write → create_inspection
REST endpointPOST https://cotlet.dev/api/v1/spectora/inspections
| Name | Type | Description |
|---|---|---|
| address string required | string | Street address, city and state. |
| starts_at string required | string | Local start time, ISO 8601. |
| inspector string | string | Inspector name; defaults to the signed-in account. |
| client_name string required | string | Client full name. |
| client_email string required | string | Client email. |
| services array required | array | Service names exactly as in Settings > Services. |
| listing_agent_email string | string | Listing agent email. |
{
"address": "address",
"starts_at": "starts at",
"client_name": "client name",
"client_email": "jane@example.com",
"services": "services"
} {
"inspection_id": "insp_81f3",
"status": "scheduled",
"address": "14 Maple Street, Springfield",
"starts_at": "2026-11-03T09:00:00",
"agreements": [
"Pre-Inspection Agreement"
]
} Does what Reschedule does on Inspection Details, also for a canceled inspection. Unless you turn notifications off, Spectora sends the reschedule notices, re-queues reminders and updates the agreements to the new date. With Trigger Once on, a second reschedule does not send again. Deleted inspections cannot be rescheduled. By default you confirm each call; you can switch that off for this tool.
MCP callspectora_write → reschedule_inspection
REST endpointPOST https://cotlet.dev/api/v1/spectora/inspections/{inspection_id}/reschedule
| Name | Type | Description |
|---|---|---|
| inspection_id string required | string | Id from list_inspections. |
| starts_at string required | string | New local start time, ISO 8601. |
| duration_hours number | number | New length in hours. |
| disable_notifications boolean | boolean | Turn off all notifications before moving, as in the Internal box. |
{
"inspection_id": "insp_81f3",
"starts_at": "2026-11-07T09:00:00",
"duration_hours": 3
} {
"inspection_id": "insp_81f3",
"starts_at": "2026-11-07T09:00:00",
"duration_hours": 3,
"notifications_sent": true
} Agreement names must match your Services & Fees. The portal link shows the client's invoice, agreements and final report, so share it only with people who may see all three.
Reads the same unsigned-jobs view Spectora has in its business reports. Each row has the inspection_id, client, date and the names of the agreements still unsigned, soonest inspection first. It reports agreements only.
MCP callspectora_read → list_unsigned_inspections
REST endpointGET https://cotlet.dev/api/v1/spectora/unsigned-inspections
| Name | Type | Description |
|---|---|---|
| from string | string | First day, YYYY-MM-DD. |
| to string | string | Last day, YYYY-MM-DD. |
{
"inspections": [
{
"inspection_id": "insp_81f3",
"client": "Priya Nair",
"starts_at": "2026-11-03T09:00:00",
"unsigned_agreements": [
"Pre-Inspection Agreement"
]
}
]
} Uses Add Agreement in the Agreements box of Inspection Details. The agreement shows as unsigned until the client signs it in the Client Portal. A name that is not in the dropdown fails and lists the available agreements. By default you confirm each call; you can switch that off for this tool.
MCP callspectora_write → add_agreement
REST endpointPOST https://cotlet.dev/api/v1/spectora/inspections/{inspection_id}/agreements
| Name | Type | Description |
|---|---|---|
| inspection_id string required | string | Id from list_inspections. |
| agreement string required | string | Agreement name exactly as in the dropdown. |
{
"inspection_id": "inspection_8c41d2",
"agreement": "agreement"
} {
"inspection_id": "insp_81f3",
"agreement": "Pest Agreement",
"signed": false
} Returns the URL behind View next to the report name on the Inspection Details page, and whether the report is published. It returns the link only, never the findings. Spectora does not send reports to the listing agent, so sharing this link with them is your decision.
MCP callspectora_read → get_report_link
REST endpointGET https://cotlet.dev/api/v1/spectora/inspections/{inspection_id}/report-link
| Name | Type | Description |
|---|---|---|
| inspection_id string required | string | Id from list_inspections. |
{
"inspection_id": "inspection_8c41d2"
} {
"inspection_id": "insp_81f3",
"published": true,
"report_url": "https://app.spectora.com/reports/example-report"
} Read only. Detailed agent profiles are a Spectora Advanced feature, so some agent fields stay empty on the base plan.
Returns agent_id, name, company, email, phone and the count of your inspections that agent is on. Agents come in the order of the Agents list. Follow next_cursor to the end.
MCP callspectora_read → list_agents
REST endpointGET https://cotlet.dev/api/v1/spectora/agents
| Name | Type | Description |
|---|---|---|
| search string | string | Name, company or email. |
| cursor string | string | next_cursor from the previous page. |
{
"agents": [
{
"agent_id": "agt_204",
"name": "Marcus Lee",
"company": "Hillside Realty",
"email": "marcus@example.com",
"inspections": 11
}
],
"next_cursor": null
} Returns the agent profile and their inspections, newest first. Detailed agent profiles and agent reports are a Spectora Advanced feature, so fields only filled there come back empty on the base plan.
MCP callspectora_read → get_agent
REST endpointGET https://cotlet.dev/api/v1/spectora/agents/{agent_id}
| Name | Type | Description |
|---|---|---|
| agent_id string required | string | Id from list_agents. |
{
"agent_id": "agent_8c41d2"
} {
"agent_id": "agt_204",
"name": "Marcus Lee",
"company": "Hillside Realty",
"email": "marcus@example.com",
"inspections": [
{
"inspection_id": "insp_81f3",
"starts_at": "2026-11-03T09:00:00"
}
]
} Returns client_id, name, email, phone and the addresses of their inspections. Follow next_cursor to the end of the list.
MCP callspectora_read → list_clients
REST endpointGET https://cotlet.dev/api/v1/spectora/clients
| Name | Type | Description |
|---|---|---|
| search string | string | Name, email or address. |
| cursor string | string | next_cursor from the previous page. |
{
"clients": [
{
"client_id": "cli_552",
"name": "Priya Nair",
"email": "priya@example.com",
"inspections": [
"14 Maple Street, Springfield"
]
}
],
"next_cursor": null
} Your logged-in Spectora profile, AES-256-GCM, in Finland. Not your password.
The 11 Spectora tools. No cookie, no login.
What your Spectora role sees: jobs, clients, agents, fees.
Payments, payouts, report editing, templates, settings and deleting.
Your agent gets a sign-in link for you. We never log in for you.
Disable for agents, reset the browser or delete the key. The next call stops.
Our site has A+ on Qualys SSL Labs, securityheaders.com and Mozilla Observatory (live results). No SOC 2 report or third-party pentest so far.
"use bots, scrapers, crawlers, automated tools, or excessive requests to access, collect, or extract data from the Content without Spectora's express written permission"
Section 6 also lets Spectora close an account "for any reason". Cotlet acts in the Spectora web app as you, and Spectora can still count that as an automated tool. Spectora's own connector and API are the routes it allows, so use them for anything they cover. We found no public case of a Spectora account closed for automation (checked 28 Oct 2026).
Every booking and move emails a client and often an agent. Book a busy morning's requests one by one, not as a burst, and keep reads to what the job needs.
If Spectora redesigns the New Inspection form or renames a field, the repair is ours. status.cotlet.dev checks the site, console and API every 3 minutes.
| Action | Undo |
|---|---|
| Book an inspection | Cancel it in Spectora; the booking email is already out |
| Reschedule | Move it back; a second notice goes out unless you turn notifications off |
| Add an agreement | No undo tool; change the job by hand in Spectora |
| Share the portal link | No, the email is out |
All 4 write tools ask first, because each one can email a client or an agent. The 7 reads run at once. Switch the wait off per tool for a scheduled run.
Reschedule can turn notifications off before the move, as the Internal box on Inspection Details does.
{
"name": "reschedule_inspection",
"arguments": {
"inspection_id": "insp_81f3",
"starts_at": "2026-11-07T09:00:00",
"duration_hours": 3
}
} curl -X POST https://cotlet.dev/api/v1/spectora/inspections/insp_81f3/reschedule \
-H "Authorization: Bearer $COTLET_API_KEY" \
-H "Content-Type: application/json" \
-d '{"starts_at":"2026-11-07T09:00:00","duration_hours":3}' {
"inspection_id": "insp_81f3",
"starts_at": "2026-11-07T09:00:00",
"duration_hours": 3,
"notifications_sent": true
} Cron jobs and scripts call the same tools over REST at /api/v1/spectora, with one key and one price. A booking with a service name Spectora does not have fails at once and costs nothing. The tools table gives each tool's REST path.
About $17 a monthfor an inspection company booking about 25 jobs a month, 3,000 credits. Spectora still bills your plan as before.
| Job | Calls | Credits |
|---|---|---|
| Book an inspection from a request | 2 × 25 | 500 |
| Reschedule and notify the client | 2 × 5 | 100 |
| Chase unsigned agreements, weekly | 4 × 4 | 160 |
| Add a missing pest agreement, weekly | 4 × 4 | 160 |
| Agent referral report, weekly | 2 × 4 | 80 |
| Report link for a published inspection | 2 × 25 | 500 |
| Cloud Browser, 30 days | 1,500 | |
| Total | 3,000 |
The month is our example of a one or two inspector company; Spectora publishes no jobs-per-account figure. Spectora itself costs $109 a month for the first inspector. Dollars at the $29 pack rate.
| Credits | Price, one time | Calls at 10 credits | Per 1,000 credits |
|---|---|---|---|
| 5,000 | $29 | 500 | $5.80 |
| 15,000 | $79 | 1,500 | $5.27 |
| 32,000 | $149 | 3,200 | $4.66 |
| 60,000 | $249 | 6,000 | $4.15 |
Only successful calls use credits; failed calls and timeouts cost nothing. At a balance of 0 calls pause, never a surprise charge. Authenticate with the Authorization: Bearer header.
| Option | What it does | Where it stops |
|---|---|---|
| Spectora AI Connector | Official MCP at connect.spectora.com, 10 read tools and 14 ready-made reports such as Lapsed Agent Reactivation. | Reads only, company admin only. |
| Zapier | Sends new and changed agent and client contacts to a CRM. | Spectora Advanced only, no inspections, no actions. |
| InspectorHub/OpenInspection | Open-source inspection software that aims at parity with Spectora, 11 stars, active. | A replacement: you move your business off Spectora. |
| api-evangelist/spectora | A third-party profile of the public API. | Description only, no server. |
We found no Spectora MCP server on GitHub. For reports and questions about your business, Spectora's free connector is the simpler pick. For syncing contacts into a CRM, the API or Zapier. For booking, moving jobs and chasing agreements from an agent, Cotlet.
Take Group sp. z o.o., a software company registered in Poland, EU (VAT PL6342984273), has run Cotlet since it started and has been in business since 2019. Its founders are Bart Krawczyk (Co-founder, CTO) and Jake Slugocki (Co-founder, SEO, sales and marketing). Questions about the Spectora tools go to contact@cotlet.dev.
Sign up free at https://cotlet.dev, find Spectora under Integrations in the console and log in to Spectora in its Cloud Browser. The trial starts with your first app and asks for no card.
Sign up at cotlet.dev, log in to Spectora once in its Cloud Browser and add Cotlet to ChatGPT or Claude, following the steps in your console. No API key is needed. ChatGPT and Claude then work in your Spectora account through Cotlet, in their phone apps too.
With Cotlet, ChatGPT, Claude and other AI agents handle jobs like these in Spectora: book an inspection from a request; reschedule an inspection and tell the client; chase unsigned agreements. You ask in plain words, and anything that reaches other people waits for your OK first.
No Advanced plan is needed for the tools here, but your role counts. The official connector needs company admin (Spectora, checked 28 Oct 2026). Cotlet works in your own session, so it sees what your role sees. Agent profiles and agent reports are Advanced features, so those fields can be empty on the base plan.
They go out as your Automations say. Creating and rescheduling an inspection triggers the booking and reschedule notices, which is why those calls wait for your OK by default. Reschedule can turn notifications off first, as the Internal box does.
For questions, yes: it is free with a paid Spectora plan and comes with ready-made reports. It cannot book, edit or delete anything. Use Cotlet for the jobs that change the schedule or reach a client, and keep both connected if you like.
Yes, for Spectora Advanced users, set up at developer.spectora.com. Webhook calls do not count toward the API quota. Cotlet does not use them; run your agent on a schedule, for example a daily list_unsigned_inspections pass.
Only the way in differs. Both carry the same 11 tools, inputs and answers, with one API key and one price. Agents use MCP; scripts and HTTP steps use REST.
No. Cotlet is independent and not affiliated with Spectora.
Yes. Call Cotlet's REST API from a script or an HTTP step in n8n, Make or Zapier with your Cotlet key. MCP is the alternative for AI agents; you do not need to connect an agent to use REST.
Free 7-day trial with 2,000 credits, no card needed.
May we use Google Analytics to see which pages help people? It sets cookies only if you accept. No ads, and we never sell data. Cookie policy