Developers and API
The field service platform that is open by design
Get your own custom field service management within a day. Tailored to your workflows. Every record, screen and workflow is yours, and every one of them can be reached by your AI agent, your systems or your own code: a REST API, an MCP server, webhooks in and out, automations, public forms, apps as JSON and read-only SQL.
Short answer
How do I connect an AI agent to Fieldproxy?
Add Fieldproxy's MCP server to the agent. An administrator switches on AI assistant access, you use your workspace's MCP address (https://<api-host>/mcp, for example https://api-india-1.fieldproxy.ai/mcp; it is shown in Settings, AI assistant when you create a key), and either sign in with OAuth from the client or create a key under Settings, AI assistant, New key and send it as Authorization: Bearer fpmcp.…. The agent calls describe_schema to see your tables and starts working. Every change it makes is proposed, confirmed by a person and undoable. API and MCP access are included on every plan.
Ways to connect
Ten ways in and out, none of them locked
Pick the one that fits the job. Most teams use two or three: the REST API for their own systems, the MCP server for AI, webhooks for events, and public forms for customers.
REST API
MCP server
Read-only SQL
Webhooks in and out
Automations API
Public forms and links
Portal users
Apps as JSON
Voice and text agents
Import and export
Quickstart
Connect an AI agent in two minutes
Works with Claude, ChatGPT, Copilot, Cursor, Codex and any MCP client, with 170+ built-in tools. The examples use the India host, https://api-india-1.fieldproxy.ai/mcp; US East is https://api-us-east-1.fieldproxy.ai/mcp. Your workspace's address is shown in Settings, AI assistant when you create a key.
Claude Code
claude mcp add --transport http fieldproxy https://api-india-1.fieldproxy.ai/mcp \
--header "Authorization: Bearer fpmcp.YOUR_KEY"OpenAI Codex
export FIELDPROXY_MCP_KEY=fpmcp.YOUR_KEY
codex mcp add fieldproxy --url https://api-india-1.fieldproxy.ai/mcp --bearer-token-env-var FIELDPROXY_MCP_KEYAny MCP client that takes a URL and headers
{
"mcpServers": {
"fieldproxy": {
"url": "https://api-india-1.fieldproxy.ai/mcp",
"headers": { "Authorization": "Bearer fpmcp.YOUR_KEY" }
}
}
}Then ask
Call describe_schema, then tell me which jobs were completed last week
with no invoice, grouped by technician.Claude, ChatGPT and Copilot Studio connect with OAuth instead of a key: step-by-step guides for Claude, ChatGPT and Microsoft 365 Copilot.
Quickstart
Read and write data over REST
Create a key per system in Settings, Security, API keys: pick an expiry, the operations it may use (read, insert, update, delete) and, if you like, only some tables. Send it in the x-api-key header. Writes fire your automations.
# Find your workspace's regional API base
curl -X POST https://api.fieldproxy.ai/auth/org \
-H "content-type: application/json" \
-d '{"orgid": "<workspace-id>"}'
# => settings.url, for example https://api-india-1.fieldproxy.aicurl -X POST https://api-india-1.fieldproxy.ai/api/read \
-H "x-api-key: $FIELDPROXY_API_KEY" \
-H "content-type: application/json" \
-d '{"tableName": "your_table", "condition": {"id": 1}}'
# Reads the rows matching condition from one tableEndpoints, keys and automation behaviour: REST API reference and openapi.json.
Quickstart
Send data in with a webhook
Save an automation with a webhook trigger, switch it on, and POST to its URL from your website, CRM or any other system.
The rule
{
"name": "Website request to service request",
"enabled": true,
"trigger_type": "webhook",
"trigger_config": { "secret": "<your-shared-secret>" },
"action_spec": {
"steps": [
{ "type": "create_record", "table": "service_requests",
"values": {
"contact_name": "{{trigger.body.name}}",
"phone": "{{trigger.body.phone}}",
"description": "{{trigger.body.issue}}",
"status": "new"
} }
]
}
}The call
curl -X POST "https://<api-host>/automation/hooks/<workspace-id>/<rule-id>" \
-H "Content-Type: application/json" \
-H "x-automation-secret: <your-shared-secret>" \
-d '{"name": "Dana Lee", "phone": "+15550100", "issue": "No cooling, unit 4B"}'
# => 202 {"accepted": true} (the rule runs in the background)<api-host>is your workspace's regional API host, given during setup.
Quickstart
Get told when something happens
Rules fire on record events, status changes, schedules, SLA timers, service zones and GPS arrival. send_webhook signs every delivery so you can verify it came from Fieldproxy.
{
"name": "Tell our ERP when a job is completed",
"enabled": true,
"trigger_type": "status_transition",
"trigger_config": { "table": "jobs", "field": "status", "to": "completed" },
"action_spec": {
"steps": [
{ "type": "send_webhook",
"url": "https://erp.example.com/hooks/fieldproxy",
"secret": "{{secrets.ERP_WEBHOOK_KEY}}",
"body": { "event": "job.completed", "job_id": "{{trigger.row.id}}" } }
]
}
}// Node.js: verify a Fieldproxy send_webhook delivery
import crypto from "node:crypto"
function verify(rawBody, header, secret, toleranceSec = 300) {
// header: "t=<unix>,v1=<hex>"
const parts = Object.fromEntries(header.split(",").map((p) => p.split("=")))
const expected = crypto.createHmac("sha256", secret)
.update(`${parts.t}.${rawBody}`).digest("hex")
const fresh = Math.abs(Date.now() / 1000 - Number(parts.t)) < toleranceSec
return fresh && crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(parts.v1))
}Want it connected to your own systems on the call?
Get DemoOpen, not reckless
An agent can do the work. A person signs it off.
Propose
Every write, send and build is a dry run first: rows affected, before and after values, a pending_id.Confirm
Nothing is saved until a person agrees and confirm_write runs. Over 5 rows needs bulk permission; over 1,000 is refused.Undo
Every applied write returns an undo_id. Builds save as drafts, new automations and agents save switched off, and every call is logged.
// 1. The agent proposes; nothing is saved
propose_write({
"summary": "Mark job 1042 as completed",
"sql": "UPDATE jobs SET status = 'completed' WHERE id = 1042"
})
// => rows it would affect, sample before -> after values, and a pending_id
// 2. A person agrees, then the agent applies it
confirm_write({ "pending_id": <pending_id> })
// => the rows changed and an undo_id
// 3. Changed your mind?
undo_write({ "undo_id": <undo_id> })Reference
Developer docs
REST API
Authentication and keys
MCP tools reference
Data model
Webhooks and automations
Public forms and links
Apps as JSON
Voice and text agents
Limits and safety
For AI agents and LLMs: /developers/llms.txt and the machine-readable /developers/capabilities.json. Facts checked October 18, 2026.
FAQ
Fieldproxy API and MCP, answered
- How do I connect an AI agent to Fieldproxy?
- Add Fieldproxy's MCP server to the agent. Your administrator switches on AI assistant access, you copy your workspace's MCP address (https://<api-host>/mcp, for example https://api-india-1.fieldproxy.ai/mcp in India or https://api-us-east-1.fieldproxy.ai/mcp in US East; it is shown in Settings, AI assistant when you create a key), and either sign in with OAuth from the client or create a key under Settings, AI assistant, New key and send it as Authorization: Bearer fpmcp.…. The agent then calls describe_schema to see your tables and starts working. It takes about two minutes.
- Does Fieldproxy have a REST API?
- Yes. Fieldproxy has a REST API for reading and writing workspace data: POST /api/read, /api/insert, /api/update and /api/delete on the workspace's regional API base (for example https://api-us-east-1.fieldproxy.ai), authenticated with an x-api-key header. Keys are created in Settings, Security, API keys, one per system, with an expiry, the operations they may use and an optional table allowlist. Writes through the REST API fire the workspace's automations. It is included on every plan.
- Does Fieldproxy have an API for AI agents?
- Yes. Fieldproxy is open by design. Besides the REST API, its MCP server (https://<api-host>/mcp, 170+ built-in tools) is an HTTP API any MCP client or agent framework can call, with tools for reading data, read-only SQL, proposed writes, messages, automations, agents and app building. Automations add inbound webhooks and outbound HTTP requests and signed webhooks, and public forms, portal users and CSV import and export cover the rest. API access is included on every plan.
- Is Fieldproxy's data open to my own tools?
- Yes. Each workspace runs on its own Postgres database. describe_schema shows every readable table and column, run_sql runs read-only SELECT queries on it, export_csv saves results as CSV, and automations can sync records to an external database with db_sync. Your records, screens and workflows are yours.
- Which AI clients work with Fieldproxy?
- Claude (custom connector), Claude Code, ChatGPT (developer-mode app), Microsoft 365 Copilot and Teams (through Copilot Studio), GitHub Copilot, Cursor and OpenAI Codex, plus any other client that speaks the Model Context Protocol over HTTP.
- Can an AI agent change data in Fieldproxy safely?
- Yes. Every write is proposed first with a dry-run preview and a pending_id, applied only by confirm_write after a person agrees, and returns an undo_id for undo_write. More than 5 rows needs bulk permission, more than 1,000 is refused, and keys can be limited by table, row, column and operation.
- Can I send data into Fieldproxy from another system?
- Yes. Call the REST API (POST /api/insert or /api/update with an x-api-key), or create an automation with a webhook trigger and POST JSON to its URL; the rule's steps create or update records from {{trigger.body}}. You can also import CSV or Excel files, and public forms take submissions from your website.
- Can Fieldproxy call my systems when something happens?
- Yes. Automation rules fire on record events, status changes, schedules, SLA timers, zones and more, and their http_request and send_webhook steps call any URL. send_webhook signs the body with HMAC-SHA256 in the X-Fieldproxy-Signature header so you can verify it.
- Can I build my own screens and workflows through the API?
- Yes. Fieldproxy apps are server-driven: every screen is JSON. Through the MCP build scope an administrator's AI can create apps, edit screens, add tables and columns, write automations and configure agents, as drafts or in a sandbox, then publish, with every version kept for rollback.
- Does API or MCP access cost extra?
- No. API access and the MCP server are included on every Fieldproxy plan. The only metered part is AI credits, which a few actions spend wherever they are started, for example running an insight or simulating an agent.
Your field service, open to every tool you use
Get your own custom field service management within a day. Tailored to your workflows.