Developer sandbox

Try the Fieldproxy API and MCP server right now

Public read-only keys for a sample workspace, Summit Heating & Air, a made-up HVAC company. No sign-up, no card, no call. Copy a curl command or add the MCP server to your AI client and ask it about the jobs.

Short answer

Can I try the Fieldproxy API without signing up?

Yes. Fieldproxy publishes two read-only keys for a sandbox workspace on this page. For the REST API, send POST https://api-uk.fieldproxy.ai/api/read with the key in the x-api-key header. For AI agents, add the MCP server at https://api-uk.fieldproxy.ai/mcp with the MCP key as Authorization: Bearer. The data is a made-up HVAC company with about 2,000 jobs, 400 customers and 2,400 invoices. You can read everything and change nothing.

The keys

Two public keys, both read only

These keys are meant to be public. They only read sample data, and the server refuses every write. If one stops working, reload this page for the current key.

REST API base

https://api-uk.fieldproxy.ai

Endpoint: POST /api/read. Hosted in the UK region.

MCP server

https://api-uk.fieldproxy.ai/mcp

Streamable HTTP. Works with any MCP client that accepts a URL and headers.

REST API key (x-api-key)

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyaWQiOiJ0ZXN0IiwiZW1haWwiOiJ0ZXN0QGV4YW1wbGUuY29tIiwidGVuYW50X2lkIjoiZWxlcWlhIiwidHlwZSI6ImFwaV9rZXkiLCJqdGkiOiI0YzliYjgwZi0yY2U2LTQ4ODYtYjk2NS1kMjA2YWU4ODczMWEiLCJpYXQiOjE3OTM5NTU3NTEsImV4cCI6MTgyNTQ5MTc1MX0.SgIxGkXEqMPbikAoX4D7H4coOUvnlrsJYb-uA8_ixNA

Read only, business tables only. Expires November 6, 2027.

MCP key (Authorization: Bearer)

fpmcp.eleqia.pZWm5OR4qsYqP1Wb0DKsxm9bfs_vdI-DCHL5JJMPlxc

Scope data:read, 165 tables, 21 tools, no email or SMS. Expires February 4, 2027; replaced here before then.

REST API

Read sample records with curl

Every call is a JSON POST with one header. The body names a table and a condition. The condition must be a non-empty object of column and value pairs; it matches exact values.

One customer

curl
curl -X POST https://api-uk.fieldproxy.ai/api/read \
  -H "x-api-key: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyaWQiOiJ0ZXN0IiwiZW1haWwiOiJ0ZXN0QGV4YW1wbGUuY29tIiwidGVuYW50X2lkIjoiZWxlcWlhIiwidHlwZSI6ImFwaV9rZXkiLCJqdGkiOiI0YzliYjgwZi0yY2U2LTQ4ODYtYjk2NS1kMjA2YWU4ODczMWEiLCJpYXQiOjE3OTM5NTU3NTEsImV4cCI6MTgyNTQ5MTc1MX0.SgIxGkXEqMPbikAoX4D7H4coOUvnlrsJYb-uA8_ixNA" \
  -H "content-type: application/json" \
  -d '{"tableName": "st_customers", "condition": {"id": 1}}'
response (trimmed)
{
  "data": [
    { "id": "1", "name": "Daniel Powell", "type": "residential",
      "phone": "(347) 555-9658", "email": "daniel.powell@example.com",
      "address": "237 Grove Ct", "city": "Garden City", "state": "NY",
      "tags": ["VIP"], "active": true, ... }
  ],
  "rowCount": 1,
  "table": "st_customers",
  ...
}

Open jobs by status

curl
curl -X POST https://api-uk.fieldproxy.ai/api/read \
  -H "x-api-key: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyaWQiOiJ0ZXN0IiwiZW1haWwiOiJ0ZXN0QGV4YW1wbGUuY29tIiwidGVuYW50X2lkIjoiZWxlcWlhIiwidHlwZSI6ImFwaV9rZXkiLCJqdGkiOiI0YzliYjgwZi0yY2U2LTQ4ODYtYjk2NS1kMjA2YWU4ODczMWEiLCJpYXQiOjE3OTM5NTU3NTEsImV4cCI6MTgyNTQ5MTc1MX0.SgIxGkXEqMPbikAoX4D7H4coOUvnlrsJYb-uA8_ixNA" \
  -H "content-type: application/json" \
  -d '{"tableName": "st_jobs", "condition": {"status": "scheduled"}}'
# => every scheduled job (about 160 rows). Other statuses:
#    pending, dispatched, in_progress, completed, canceled

One invoice

curl
curl -X POST https://api-uk.fieldproxy.ai/api/read \
  -H "x-api-key: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyaWQiOiJ0ZXN0IiwiZW1haWwiOiJ0ZXN0QGV4YW1wbGUuY29tIiwidGVuYW50X2lkIjoiZWxlcWlhIiwidHlwZSI6ImFwaV9rZXkiLCJqdGkiOiI0YzliYjgwZi0yY2U2LTQ4ODYtYjk2NS1kMjA2YWU4ODczMWEiLCJpYXQiOjE3OTM5NTU3NTEsImV4cCI6MTgyNTQ5MTc1MX0.SgIxGkXEqMPbikAoX4D7H4coOUvnlrsJYb-uA8_ixNA" \
  -H "content-type: application/json" \
  -d '{"tableName": "st_invoices", "condition": {"invoice_number": "41201"}}'
# => the invoice with its job_id, customer_id, status, due_date, total and balance

Need filters, joins or totals? Use run_sql through the MCP server below. Full reference: REST API docs and openapi.json.

MCP server

Connect an AI agent in one command

Add the sandbox to your AI client, then ask questions in plain English. The agent calls describe_schema to learn the tables and run_sql to answer.

Claude Code

terminal
claude mcp add --transport http fieldproxy-sandbox https://api-uk.fieldproxy.ai/mcp \
  --header "Authorization: Bearer fpmcp.eleqia.pZWm5OR4qsYqP1Wb0DKsxm9bfs_vdI-DCHL5JJMPlxc"

OpenAI Codex

terminal
export FIELDPROXY_SANDBOX_KEY=fpmcp.eleqia.pZWm5OR4qsYqP1Wb0DKsxm9bfs_vdI-DCHL5JJMPlxc
codex mcp add fieldproxy-sandbox --url https://api-uk.fieldproxy.ai/mcp --bearer-token-env-var FIELDPROXY_SANDBOX_KEY

Cursor, VS Code or any MCP client

mcp.json
{
  "mcpServers": {
    "fieldproxy-sandbox": {
      "url": "https://api-uk.fieldproxy.ai/mcp",
      "headers": { "Authorization": "Bearer fpmcp.eleqia.pZWm5OR4qsYqP1Wb0DKsxm9bfs_vdI-DCHL5JJMPlxc" }
    }
  }
}

Or call it directly

curl
curl -X POST https://api-uk.fieldproxy.ai/mcp \
  -H "Authorization: Bearer fpmcp.eleqia.pZWm5OR4qsYqP1Wb0DKsxm9bfs_vdI-DCHL5JJMPlxc" \
  -H "content-type: application/json" \
  -H "accept: application/json, text/event-stream" \
  -d '{"jsonrpc": "2.0", "id": 1, "method": "tools/call",
       "params": {"name": "run_sql",
                  "arguments": {"sql": "select count(*) as jobs from st_jobs"}}}'
# => {"rows": [{"jobs": "2076"}], "row_count": 1, ...}

Claude.ai, Claude Desktop and ChatGPT

Their custom connectors normally sign in with OAuth to your own workspace, and most do not let you type a header. So the key route works in clients that accept headers: Claude Code, Cursor, VS Code, Codex and agent frameworks. To use the sandbox from a chat app, connect it through one of those, or see how OAuth works for Claude and ChatGPT on a real workspace.

Try these

Questions to ask the sandbox

Paste any of these into your AI client once the server is added.

“Call describe_schema, then tell me how many jobs are in each status.”

“Which technicians ran the most visits in the last 90 days, and how many were callbacks?”

“List unpaid invoices by customer, oldest first, with how many days overdue each one is.”

“Which open estimates have had no follow-up for 30 days or more?”

“Which customers own equipment that is more than 12 years old? Group it by customer.”

“Which service agreements bill next month, and for which customers?”

“How long is the drive between the two customers with the most jobs?”

What is inside

Summit Heating & Air: sample data only

A made-up residential and commercial HVAC company in New York. Every name, phone number and address is invented, and the emails use example.com.

Jobs

about 2,076, from completed and canceled to scheduled and in progress

Appointments

about 2,070 visits with arrival windows

Invoices

about 2,440, some still pending

Estimates

about 1,260, open, sold and dismissed

Equipment

about 1,390 units installed from 2009 to 2026

Customers

about 435 homes and businesses in New York

Technicians

12, with skills, rates and home locations

Service agreements

9, with billing schedules

Subcontractors

10

Projects

6, with milestones

Main tables

The MCP key can read 165 tables. The ones most people start with are st_jobs, st_appointments, st_appointment_techs, st_customers, st_locations, st_invoices, st_estimates, st_estimate_items, st_equipment, st_agreements, st_technicians, st_subcontractors, st_projects, st_business_units, st_campaigns, st_calls. Call describe_schema for the full list with columns.

Tools on the sandbox MCP key

describe_schema
Lists every table and column the key can read.
run_sql
Runs one read-only SELECT on the sample database.
search_freeform
Finds records by a name, number or phrase.
list_distinct_values
Shows the values a column holds, such as job statuses.
open_record
Returns a link that opens one record in the Fieldproxy app.
explain_change
Explains why a number changed between two periods, broken into its biggest drivers.
export_csv
Saves a query result as a CSV link.
generate_pdf
Makes a PDF from a record.
list_dashboards
Lists the workspace dashboards (view_dashboard opens one).
geocode_address
Turns an address into coordinates (reverse_geocode goes back).
drive_time
Drive time between two places.
calculate_route
Plans a route across several stops.

21 tools in all on this key. A real workspace has 170+, including writes, messages, automations and app building: MCP tools reference.

Limits

What the sandbox cannot do

  • Write data. Insert, update and delete calls are refused, and the MCP key has no write tools.
  • Send email or text messages, or place calls.
  • Read platform tables such as users and settings. Only business tables are open.
  • Build apps, automations or agents.
  • Run SQL functions that could reach other tables, such as sum() and avg(). count(), max(), group by and date filters work.
a refused write
# Writes are refused on this key:
curl -X POST https://api-uk.fieldproxy.ai/api/insert -H "x-api-key: ..." \
  -H "content-type: application/json" \
  -d '{"tableName": "st_customers", "data": [{"name": "Test"}]}'
# => {"message": "API key is not authorized for 'insert' operations"}

Next step

Get a workspace with write access

Your own workspace runs on your data, on its own Postgres database, in your region. An administrator creates keys with the operations and tables each system needs, and AI writes are proposed, confirmed by a person and undoable. API and MCP access are included on every plan.

For AI agents: /developers/llms.txt and /developers/capabilities.json. Keys checked November 6, 2026.

FAQ

The Fieldproxy sandbox, answered

Can I try the Fieldproxy API without signing up?
Yes. Fieldproxy publishes a read-only sandbox key at https://www.fieldproxy.ai/developers/sandbox. Send POST https://api-uk.fieldproxy.ai/api/read with the key in the x-api-key header and a body such as {"tableName": "st_customers", "condition": {"id": 1}}. There is no sign-up, no card and no call. The data is a made-up HVAC company.
Is there a public MCP server I can test?
Yes. Fieldproxy's MCP server runs at https://api-uk.fieldproxy.ai/mcp with a public read-only key listed at https://www.fieldproxy.ai/developers/sandbox. Add it to Claude Code, Cursor, Codex or any MCP client that accepts a URL and headers, send the key as Authorization: Bearer, and ask questions about the sample jobs, customers and invoices. It has 21 read-only tools, including run_sql and describe_schema.
Is the sandbox data real?
No. "Summit Heating & Air" is a made-up HVAC company. Every customer, job, invoice and technician in it is sample data, and the emails use example.com. It is shaped like a real service business so the answers look like the ones you would get on your own workspace.
Can I write data in the sandbox?
No. Both sandbox keys are read only. Insert, update and delete calls are refused, and the MCP key cannot propose changes, send email or send texts. A real workspace has keys with write access, and every AI write there is proposed, confirmed by a person and undoable.
How do I get a key for my own workspace?
Book a demo and Fieldproxy sets up a workspace on your own data. In your workspace, an administrator creates REST keys under Settings, Security, API keys (with an expiry, the operations they may use and an optional table list) and MCP keys under Settings, AI assistant. Claude, ChatGPT and Copilot can also sign in with OAuth. API and MCP access are included on every plan.
When do the sandbox keys expire?
The REST key expires on November 6, 2027. The MCP key expires on February 4, 2027, because MCP keys last at most 90 days, and it is replaced on this page before then. If a key stops working, reload the page for the current one.

Liked the sample? See it on your own data

Get your own custom field service management within a day. Tailored to your workflows.