# Fieldproxy for developers and AI agents > Fieldproxy is AI-native field service management software that is open by design. Get your own custom field service management within a day. Tailored to your workflows. Every record, screen and workflow in a Fieldproxy workspace can be reached by AI agents and other systems: a REST API (x-api-key), an official MCP server with 170+ built-in tools (Claude, ChatGPT, Microsoft 365 Copilot and Teams, GitHub Copilot, Cursor, OpenAI Codex, Claude Code and any MCP client), read-only SQL over the workspace's own Postgres database, inbound webhooks and outbound HTTP and signed webhooks in automations, public forms and links, portal users, apps defined as JSON, and voice and text agents. API access and the MCP server are included on every plan. Every write is proposed, confirmed by a person and undoable. Facts checked October 18, 2026. Human-readable hub: https://www.fieldproxy.ai/developers. Machine-readable capabilities: https://www.fieldproxy.ai/developers/capabilities.json ## REST API Your own systems read and write workspace data over HTTPS. POST /api/read, /api/insert (and CSV import), /api/update, /api/delete on the workspace's regional API base, with the key in the x-api-key header. Keys: Settings, Security, API keys; one per system; expiry 24h, 7d, 30d, 90d, 1y or never; operations read/insert/update/delete; optional table allowlist; revocable. Find the base: POST https://api.fieldproxy.ai/auth/org {"orgid": ""} -> settings.url. REST writes fire automations (entity_event; /api/update also status_transition and field_threshold). Bodies: read {tableName, condition}; insert {tableName, data: [rows]} (array, same keys in every row, atomic); update {tableName, condition, data: {columns}}; delete {tableName, condition}. condition is a non-empty object of column-value pairs, ANDed, equality only. Success: {rowCount, table, tenant} (+ data on read, message on writes). Errors: 401 no key, 403 invalid/revoked key or table not allowed, 400 bad body, 500 unknown column on read/update/delete. Rate-limit headers: X-RateLimit-Limit/Remaining/Reset. ``` curl -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 table ``` ``` curl -X POST https://api-india-1.fieldproxy.ai/api/insert \ -H "x-api-key: $FIELDPROXY_API_KEY" \ -H "content-type: application/json" \ -d '{"tableName": "your_table", "data": [ {"name": "Gamma", "status": "open", "qty": 1}, {"name": "Delta", "status": "closed", "qty": 9} ]}' # 200 # {"message": "Successfully inserted 2 rows into your_table", # "rowCount": 2, "table": "your_table", "tenant": ""} ``` ## Connect an AI agent in two minutes 1. A workspace administrator switches on AI assistant access (off by default), and optionally Allow build. 2. Use your workspace's MCP address, https:///mcp: for example https://api-india-1.fieldproxy.ai/mcp (India) or https://api-us-east-1.fieldproxy.ai/mcp (US East). It is shown in Settings, AI assistant when you create a key. 3. Sign in from the client with OAuth (Claude, ChatGPT, Copilot Studio), or create a key under Settings, AI assistant, New key and send `Authorization: Bearer fpmcp.…`. 4. Call describe_schema, then work with run_sql (read-only), the find_* tools, and propose_write -> confirm_write -> undo_write. ``` claude mcp add --transport http fieldproxy https://api-india-1.fieldproxy.ai/mcp \ --header "Authorization: Bearer fpmcp.YOUR_KEY" ``` ```json { "mcpServers": { "fieldproxy": { "url": "https://api-india-1.fieldproxy.ai/mcp", "headers": { "Authorization": "Bearer fpmcp.YOUR_KEY" } } } } ``` ## Integration surfaces - REST API: Your own systems read and write the workspace's data over HTTPS: POST /api/read, /api/insert (plus CSV import), /api/update and /api/delete on the workspace's regional API base. Writes fire the workspace's automations. Auth: An API key in the x-api-key header, created in Settings, Security, API keys: one per system, with an expiry, the operations it may use and optionally only some tables. Revocable. Docs: https://www.fieldproxy.ai/developers/docs/rest-api - MCP server: An official Model Context Protocol server over HTTP at https:///mcp (for example https://api-india-1.fieldproxy.ai/mcp), with 170+ built-in tools. Claude, ChatGPT, Microsoft 365 Copilot and Teams (through Copilot Studio), GitHub Copilot, Cursor, OpenAI Codex, Claude Code and any other MCP client can read the workspace, run read-only SQL, propose changes, draft messages, run automations and build apps. Auth: OAuth sign-in (the token lasts 1 hour and renews itself for 30 days) or a scoped key (fpmcp.…) sent as Authorization: Bearer. Docs: https://www.fieldproxy.ai/developers/docs/authentication - Read-only SQL: describe_schema lists every table and column the connection may read; run_sql runs one SELECT against the workspace's own Postgres database (up to 500 rows, 5-second limit). export_csv saves up to 10,000 rows as a CSV link. Auth: The MCP connection's data:read scope. Hidden columns are removed and row limits are applied by Postgres. Docs: https://www.fieldproxy.ai/developers/docs/data-model - Webhooks in and out: In: an automation with a webhook trigger gets its own URL; any system POSTs JSON to it and the steps read {{trigger.body.field}}. Out: http_request (any method, headers, JSON or file body), send_webhook (HMAC-SHA256 signed), call_integration and db_sync, plus send_email, send_sms and place_call. Auth: In: no sign-in, an optional shared secret in the x-automation-secret header, and the rule must be on. Out: credentials from the encrypted secret vault as {{secrets.NAME}}, never written into the rule. Docs: https://www.fieldproxy.ai/developers/docs/webhooks-automations#webhook-trigger - Automations API: Rules are JSON: a trigger (15 types, from record events and cron to SLA timers, zones and GPS arrival) and a list of steps (about 50 types). Create, validate, dry-run, enable, run, retry and restore versions. Auth: From the MCP server (save_automation, simulate_automation…) or the automation API with a signed-in administrator session. Docs: https://www.fieldproxy.ai/developers/docs/webhooks-automations - Public forms and links: Open forms anyone can fill in, record links for one customer's quote, job or invoice (with signatures and Stripe payments), no-login customer portals, and lookup pages. Links can expire, be capped and be revoked. Auth: Built and published through the public-forms API by a signed-in administrator; the people filling them in need no login. Docs: https://www.fieldproxy.ai/developers/docs/public-forms - Portal users: Customers, contractors and partners sign in with their own email and password to one web app and see only their own records, enforced by Postgres row security. Auth: Set up by an administrator in Settings, Portal users, then invited. Docs: https://www.fieldproxy.ai/developers/docs/public-forms#portal-users - Apps as JSON: Every screen of the web and mobile apps is JSON: views, widgets, actions and the SQL behind them. Read, edit, validate, render, publish and roll back versions through MCP. Auth: The MCP build scope (an administrator, with Allow build switched on). Docs: https://www.fieldproxy.ai/developers/docs/apps-as-json - Voice and text agents: Phone agents and SMS or email agents that answer customers from live data, configured as JSON with instructions, allowed tables, tools, hours and a knowledge base, and tested in a simulator. Auth: The MCP build scope, or the agent settings in the web app. Docs: https://www.fieldproxy.ai/developers/docs/agents - Import and export: Import CSV or Excel into any table (up to 1,000 rows per MCP import, dry-run first), and export CSV or Excel from any screen or query. Auth: In the app, or the MCP data:write and data:read scopes. Docs: https://www.fieldproxy.ai/developers/docs/limits-safety#import-export ## Docs - [Fieldproxy developer docs](https://www.fieldproxy.ai/developers/docs): Every way to connect an AI agent, a system or a script to Fieldproxy field service management: MCP, webhooks, automations, public forms, apps as JSON and read-only SQL. - [Fieldproxy REST API](https://www.fieldproxy.ai/developers/docs/rest-api): Read, insert, update and delete workspace data over HTTPS with an x-api-key: per-system keys with an expiry, operation scopes and an optional table allowlist. REST writes fire automations. - [Authentication and keys](https://www.fieldproxy.ai/developers/docs/authentication): How AI clients and integrations sign in to Fieldproxy: OAuth sign-in or fpmcp keys made in Settings, AI assistant, with scopes, row and column limits, expiry and revoke. - [Fieldproxy MCP tools reference](https://www.fieldproxy.ai/developers/docs/mcp-tools): Every built-in tool on Fieldproxy's MCP server, grouped by area, with what each does and which scope it needs. - [Fieldproxy data model](https://www.fieldproxy.ai/developers/docs/data-model): How field service data is stored in Fieldproxy: a Postgres database per workspace with customers, locations, jobs, technicians, quotes, invoices and your own tables. - [Webhooks and automations](https://www.fieldproxy.ai/developers/docs/webhooks-automations): Fieldproxy automation rules: trigger types including inbound webhooks, and step types including outbound HTTP requests, email, SMS and phone calls. - [Public forms and links](https://www.fieldproxy.ai/developers/docs/public-forms): Open forms, record links, customer portals and lookup pages that people outside the company use without a login, and how they are published and linked. - [Apps as JSON (server-driven UI)](https://www.fieldproxy.ai/developers/docs/apps-as-json): Every Fieldproxy screen is JSON: views, widgets, actions and SQL, rendered on web and mobile, versioned with drafts, publish and rollback. - [Voice and text agents](https://www.fieldproxy.ai/developers/docs/agents): Fieldproxy's phone, SMS and email AI agents: configuration, tools, the confirm gate, the simulator and conversation logs. - [Limits and safety](https://www.fieldproxy.ai/developers/docs/limits-safety): Read-only SQL limits, propose-confirm-undo, bulk limits, send limits, approvals, sandboxes and audit logging on Fieldproxy's API surfaces. ## MCP tools (170+ built-in; each workspace adds its own actions and saved tools) ### Schema and read-only SQL - describe_schema: List the tables this connection may read, or the full columns, types and foreign keys of up to 20 of them. - run_sql: Run one read-only SELECT (or WITH … SELECT) on the workspace's data: up to 500 rows, 5-second limit. - list_distinct_values: The distinct values in a column with their row counts (statuses, service types). - explain_change: Explain why a number changed between two periods, split by a dimension, biggest movers first. - get_tables: The business tables screens can query, with columns, types, defaults and links. ### Find records and ready-made reports - find_customers: Find customers and leads by name, company or email. - find_jobs: Find jobs by status group, schedule window, customer, technician or text. - find_technicians: List technicians with their user ids for assignment. - find_invoices: Find overdue, outstanding or paid invoices. - find_quotes: Find quotes by status, customer or expiry. - find_contracts: Find service contracts, optionally those expiring soon. - find_communications: Find sent emails and SMS from the communications log. - todays_schedule: Today's jobs with time, customer, technician, status and priority. - ops_report: A daily operations brief in one call: open jobs, unassigned work, technician load, overdue receivables. - tech_workload: Active jobs and next-7-days jobs per technician. - technician_jobs: All open jobs for one technician, by name or user id. - dispatch_query: Booked minutes and job counts per technician for a day or a date range. - get_tech_performance: Jobs scheduled, completed and completion rate per technician. - ar_aging: Unpaid invoices with days past due. - get_ar_aging: Outstanding balance bucketed by days overdue (current, 1–30, 31–60, 61–90, 90+). - analyze_funnel: Quote-to-close funnel over a date range. - revenue_by_month: Collected revenue by month for the last 12 months. - segment_customers: Top customers by lifetime value, or dormant customers. - quotes_to_follow_up: Sent quotes due a follow-up. - unbilled_completed_jobs: Completed billable jobs with no invoice yet. - overdue_tasks: Tasks past their due date and not completed. - jobs_chart: A bar chart of open jobs by status, technician, service type or priority. - open_record: A link that opens one record on its own screen in the Fieldproxy web app. ### Change data: propose, confirm, undo - propose_write: Dry-run one INSERT, UPDATE or DELETE (or up to 20 in one transaction) and return a preview and a pending_id. Nothing is saved. - confirm_write: Apply a proposed change after the person agrees; returns the rows changed and an undo_id. Over 5 rows needs allow_bulk. - undo_write: Reverse an applied change with its undo_id. - cancel_write: Discard a prepared change or message draft. - confirm_action: Carry out an action another tool proposed, once, after the person agrees. - cancel_action: Drop a proposed action without doing it. - import_records: Prepare an import of up to 1,000 CSV or spreadsheet rows into a table; updates instead of duplicating where an import profile exists. - export_csv: Run one SELECT and save up to 10,000 rows as a CSV download link. - comment_on_record: Prepare a comment on a record, with @mentions that notify people. - record_history: A record's change history: who changed what, before and after. - compare_record: How a record's fields differ between two times. - revert_record: Propose putting a record's fields back to how they were after one audited change. - list_deleted_records: Recently deleted records that can still be restored. - restore_deleted_records: Propose restoring up to 50 deleted records. ### Dispatch, routes and maps - plan_job_distribution: Plan who does which unassigned job over a date range under a daily cap. Read-only. - plan_day_routes: Plan one day's routes per technician by road, with start times. Read-only. - apply_schedule: Stage technician, date and time changes for up to 200 jobs; applied by confirm_write, undoable. - calculate_route: Best visiting order for up to 50 stops as a round trip, with drive times. - drive_time: Road drive time and distance between two places. - nearest_technicians: The technicians closest to a place by road, from their latest positions. - technician_locations: Each technician's latest position, time, battery and accuracy. - technician_route: One technician's movement on a day. - geocode_address: Coordinates for up to 10 addresses. - reverse_geocode: The street address nearest a coordinate. - list_service_zones: Service zones drawn on the map, optionally with GeoJSON outlines. - zones_for_location: Which active service zones contain a place. - save_service_zone: Propose creating or changing a service zone (administrators). - delete_service_zone: Propose deleting a service zone (administrators). - create_job_signoff_link: A no-login sign-off link for one job, for a subcontractor. ### Email, SMS, inbox and notifications - draft_sms: Prepare text messages without sending them; at most 20 per draft and per hour. - confirm_send: Send prepared messages after the person has read and agreed to them. - search_inbox: Search your connected mailbox threads. - read_email_thread: Read one email thread's newest messages. - list_email_templates: Your and the team's email templates with their placeholders. - get_email_template: One email template in full. - save_email_template: Create or change an email template. - set_email_followup: Remind yourself about an email thread later. - list_email_followups: Your pending follow-up reminders on email threads. - cancel_email_followup: Cancel a follow-up reminder. - notify_users: Propose an in-app notification to up to 25 workspace users. - set_reminder: Propose one email to be sent at a later time. ### Documents, proposals, files and photos - list_document_templates: The workspace's PDF and Word document templates and their arguments. - get_document_template: One document template's definition and versions. - preview_document_template: Render a document template without saving it. - save_document_template: Propose saving a document template (administrators); earlier versions are kept. - rollback_document_template: Propose making an earlier template version current again. - generate_document: Fill a document template for a record and get a PDF link. - generate_pdf: Turn HTML into a branded PDF and get a link. - list_estimate_templates: Estimate templates that can price a job from measurements. - generate_estimate: Price a job from measurements with a published estimate template. Nothing is saved. - list_proposal_templates: Proposal templates, their arguments and option tiers. - preview_proposal: Show what a proposal would contain without creating it. - issue_proposal: Propose issuing a proposal; returns the customer link on confirm. - reissue_proposal: Propose replacing an open proposal with a fresh one. - list_proposals: Proposals sent to customers and their status. - get_proposal_link: A fresh link to an open proposal. - list_proposal_blocks: The reusable proposal page library. - save_proposal_block: Save a reusable proposal page. - list_record_files: The photos, PDFs, documents and signatures stored on one record. - read_file: Read the text of a stored PDF, Word, Excel, PowerPoint, CSV or email file. - view_images: Look at up to 10 stored photos at once, for example before and after. ### Dashboards, alerts, reports and insights - list_dashboards: Command Center dashboards you can see. - view_dashboard: Open a dashboard: each tile's current data. - create_dashboard: Propose a new, unpublished dashboard. - add_dashboard_tile: Propose a dashboard tile from one read-only SELECT. - list_alerts: Your data alerts. - create_alert: Propose a data alert: a preset, new rows in a table, or a threshold. - change_alert: Pause, resume, delete or check an alert. - list_scheduled_reports: Your scheduled reports. - schedule_report: Propose a daily, weekly or monthly report from one SELECT. - change_scheduled_report: Pause, resume, delete or run a scheduled report. - list_insights: The workspace's AI insights and when each last ran. - run_insight: Run an insight now on current data. - get_insight_result: The latest result of an insight with evidence. - list_saved_views: Saved filter presets on an app view. - save_saved_view: Save or change a filter preset. - delete_saved_view: Delete a saved filter preset. - integration_status: Status of the workspace's accounting and business integrations. - sync_integration: Propose pulling the latest payment status from an integration. - workspace_usage: Usage against the plan: records, seats and this month's AI credits. ### Automations - get_automation_docs: The automation reference: overview, triggers, steps and recipes. - list_automations: Every automation: on or off, its trigger, and whether it has been failing. - get_automation: One automation's full trigger and steps. - validate_automation: Check a rule definition without saving it. - save_automation: Create or replace a rule. A new rule is always saved switched off. - simulate_automation: Dry-run a saved automation against a real record. Nothing is written or sent. - set_automation_enabled: Turn an automation on or off. - run_automation: Propose running an automation now, for real. - list_automation_runs: Recent runs by automation or status. - list_automation_versions: An automation's change history. - restore_automation_version: Put an automation back to an earlier version. - list_failed_runs: The failure worklist. - retry_automation_run: Propose retrying a failed run; normally resumes after completed steps. - dismiss_failed_run: Propose marking a failure as handled. - list_pending_approvals: Automation steps waiting for someone's approval. - decide_approval: Propose approving or rejecting a waiting step (named approvers). ### Voice and text agents - list_agents: The workspace's voice (phone) and text (SMS and email) agents. - get_agent: One agent's full configuration and its agent_hash. - save_agent: Create or replace an agent. A new agent is saved switched off. - simulate_agent: Test an agent with a conversation. Changes are staged, nothing is sent. - set_agent_enabled: Turn an agent on or off. - list_agent_conversations: Recent text conversations or calls with summaries and outcomes. - list_calls: Voice-agent calls with direction, outcome and summary. - get_call: One call in full: transcript, outcome, summary and tool use. - my_agent_tasks: Your personal-agent tasks and what each is waiting on. - agent_task_detail: One personal-agent task in full. - agent_updates: What your personal agents reported recently. ### Build: apps, screens, tables and workspace tools - get_widget_docs: The app-building reference for web or mobile: app, view, actions, schema and every widget. - list_apps: The workspace's apps, web or mobile, and their live and newest versions. - get_app: One app's settings, screen list and base_hash. - get_view: One screen, whole or in part (find, outline, element, JSON Pointer). - create_app: Create a new app from compiled_data as version 1, not live. - save_draft: Save a change to an app as a new draft version; checked before saving. - edit_view: Change part of one screen with set, remove and insert operations, as a draft. - validate_app: Check app JSON exactly as a save would (lint, SQL EXPLAIN, navigation) without saving. - render_view: Draw a screen in a real browser: desktop and phone screenshots plus a design audit. - publish_app: Make a draft version live for every user of the app. - list_app_versions: Every saved version of an app and which one is live. - rollback_app: Make an earlier version live again, checked like a publish. - create_table: Propose a new business table (id, created_at, updated_at added). - add_column: Propose adding one column to an existing table. - drop_column: Propose deleting a column that was added through MCP. - drop_table: Propose deleting a table that was created through MCP. - list_workspace_tools: The workspace's own AI tools (saved queries and actions). - get_workspace_tool: One workspace tool's definition. - save_workspace_tool: Create or update a workspace tool (administrators); saved switched off. - test_workspace_tool: Run a read workspace tool with sample parameters. - set_workspace_tool_enabled: Switch a workspace tool on or off. ### Sandboxes and promotion - create_sandbox: Make a private copy of the workspace to build in; it sends nothing and expires after 7 days unless extended. - list_sandboxes: This workspace's sandboxes and when each expires. - extend_sandbox: Push a sandbox's expiry out by 1–30 days (at most 90 days in all). - delete_sandbox: Delete a sandbox now; the live workspace is not touched. - plan_promotion: Work out what copying apps, automations or agents from a sandbox to live would do, without changing anything. - confirm_promotion: Apply a promotion: apps as drafts, automations and agents switched off. ### AI memory, access and audit - get_workspace_instructions: The instructions the workspace wrote for its AI assistant. - list_ai_memory: Command Center's standing instructions, yours and workspace-wide. - add_ai_memory: Add a standing instruction for you or (administrators) the whole workspace. - remove_ai_memory: Remove a standing instruction. - list_ai_connections: Every MCP key and OAuth-connected app, with scopes, limits and status (administrators). - revoke_ai_access: Propose cutting off one key or connected app; it stops at once (administrators). - ai_activity_log: Every AI tool call: key, owner, tool, outcome and timing (administrators). - ai_usage_summary: AI connection calls and errors per key, person and tool (administrators). - workspace_activity: Who changed what across the workspace, with before and after values (administrators). - activity_summary: The busiest tables, sources and people in the audit trail. - list_activity_alert_rules: Activity alert rules and how often each fired. - create_activity_alert_rule: Propose an alert on bulk deletes, bulk changes, off-hours activity or field changes. - list_activity_alerts: Alerts raised by activity rules. - acknowledge_activity_alerts: Mark activity alerts as seen. - log_turn: Save a conversation turn to the person's Command Center history; changes no data. ## Webhook in (automation webhook trigger) ``` curl -X POST "https:///automation/hooks//" \ -H "Content-Type: application/json" \ -H "x-automation-secret: " \ -d '{"name": "Dana Lee", "phone": "+15550100", "issue": "No cooling, unit 4B"}' # => 202 {"accepted": true} (the rule runs in the background) ``` ## Signed webhook out (send_webhook step) Headers: X-Fieldproxy-Signature: t=,v1= (HMAC-SHA256 of `${t}.${body}`), X-Fieldproxy-Timestamp, X-Fieldproxy-Delivery. ## Questions, 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:///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:///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. ## OpenAPI - https://www.fieldproxy.ai/developers/openapi.json (OpenAPI 3.1 for the REST API) ## See it on your data - [Get Demo](https://www.fieldproxy.ai/book-demo?source=developers-llms): Get your own custom field service management within a day. Tailored to your workflows.