Live

Contractor Foreman logo

Contractor Foreman API and MCP server

contractorforeman.com

Contractor Foreman has no public API (checked 11 Oct 2026). Cotlet is a hosted MCP server and REST API for Contractor Foreman with 15 endpoints (8 read, 7 write): your AI agent signs in as you and does the work.

Endpoints
15 8 read, 7 write
Updated
How Cotlet connects your agent to Contractor Foreman
  1. Your agent

    Claude Code, Codex, Cursor or a script

  2. Cotlet

    MCP server and REST API · 15 endpoints

    cotlet.dev/mcp/v1

  3. Contractor Foreman logo

    Contractor Foreman

    Signed in as you on contractorforeman.com

You sign in once. We never store your password.

Official API

Does Contractor Foreman have an official API?

Contractor Foreman has no public API (checked 11 Oct 2026). Its only programmatic access is a Zapier app with 7 triggers for leads, customers and file uploads, and 2 actions: Create Lead and Create Customer.

What Contractor Foreman's own tools do compared with Cotlet
Task Contractor Foreman official Cotlet
Read projects and job costing No Yes
Create estimates and send them for e-signature No Yes
Create and send change orders No Yes
Add daily logs No Yes
Update schedule tasks and percent complete No Yes
List invoices and open balances No Yes
Add punchlist items No Yes
Add leads and customers Partly Zapier actions Create Lead and Create Customer, no reads Yes

Sources: Contractor Foreman: Zapier integration · Contractor Foreman on Zapier: triggers and actions · Contractor Foreman: features · Contractor Foreman: pricing · Contractor Foreman Knowledge Base: no over-budget notification · Contractor Foreman Knowledge Base: no notification for exceeding budgeted hours · Contractor Foreman: Daily Logs feature (weather recorded automatically) · Contractor Foreman Knowledge Base: Daily Log statuses · Contractor Foreman: Estimates feature (e-signature, opened notifications) · Contractor Foreman Knowledge Base: estimate Send Reminder · Contractor Foreman: Change Orders feature (e-signature) · Contractor Foreman Knowledge Base: Change Order Request cannot be converted · Contractor Foreman Knowledge Base: signing a Change Order in the mobile app

Common use cases

What can an AI agent do in Contractor Foreman?

Cotlet is best for contractors and project managers who want an AI agent to write daily logs, estimates and change orders and check job costing without running or fixing a server.

  • Turn a foreman's site note into a daily log Runs: Daily

    Here is Mike's voice note from the Maple St remodel. Turn it into today's daily log: framing crew of 4, one electrician, drywall delivered, rain stopped work at 2:30. Your agent calls list_projects, list_daily_logs and create_daily_log.

  • Build an estimate from a scope list and send it for signature

    Turn this scope list from the Johnson bathroom walkthrough into a Contractor Foreman estimate with 20% markup on materials, show me the total, then send it to the client for signature. Your agent calls list_projects, list_estimates, create_estimate and send_estimate.

  • Write a change order from a client request and send it for approval

    Dana wants a second window on the kitchen east wall at Maple St. Write the change order with the window, 6 hours of install labor and 20% markup, and send it to her for approval. Your agent calls list_projects, list_change_orders, create_change_order and send_change_order.

  • Reschedule a task and check the Gantt

    Rough-in inspection moved to Friday. Push that task and tell me what else shifts. Your agent calls list_schedule_tasks and update_schedule_task.

  • Find projects going over budget Runs: Weekly

    Every Monday, check job costing on all my open Contractor Foreman projects and tell me which ones have spent more than estimated on labor or materials, and by how much. Your agent calls list_projects, get_project and get_job_costing.

  • List overdue invoices every Monday Runs: Weekly

    Every Monday, list unpaid invoices older than 30 days with the amount due. Your agent calls list_invoices.

Endpoints

What is the Contractor Foreman API?

Cotlet's Contractor Foreman API exposes 15 endpoints for your own Contractor Foreman account: list projects, get project, get job costing, list estimates, list change orders, list daily logs, list schedule tasks, list invoices, create daily log, create estimate, send estimate, create change order, send change order, update schedule task and add punchlist item. The list_projects endpoint returns projects with customer, address, stage, contract amount and percent complete. Each endpoint takes simple JSON inputs like project_id, limit or title and works both as an MCP tool for agents and as a REST call for scripts.

All endpoints · 15 total

missing one? request an endpoint

  • POST

    list_projects

    read

    Returns projects newest first. Completed projects are left out unless you ask for them. Search matches the project name, number or customer. Pages hold up to 100 projects; pass next_cursor back as cursor for the next page.

    POST /api/v1/contractor-foreman/list_projects

    Input

    Input: list_projects
    Parameter Type Description
    search string Match on project name, number or customer.
    include_completed boolean Include completed projects. Default: false.
    limit integer 1 to 100. Default: 25.
    cursor string Next page cursor from the previous call.

    Example response

    {
      "projects": [
        {
          "project_id": "84213",
          "name": "Maple St Remodel",
          "number": "P-0142",
          "customer": "Dana Whitfield",
          "address": "218 Maple St, Asheville, NC",
          "stage": "In progress",
          "contract_amount": 86500,
          "percent_complete": 42
        }
      ],
      "next_cursor": null
    }
  • POST

    get_project

    read

    Returns one project. The revised contract amount is the original amount plus approved change orders, as the project shows it. Use the project_id from list_projects.

    POST /api/v1/contractor-foreman/get_project

    Input

    Input: get_project
    Parameter Type Description
    project_id required string Project ID from list_projects.

    Example response

    {
      "project_id": "84213",
      "name": "Maple St Remodel",
      "customer": "Dana Whitfield",
      "address": "218 Maple St, Asheville, NC",
      "stage": "In progress",
      "original_contract_amount": 86500,
      "revised_contract_amount": 86500,
      "start_date": "2026-08-17",
      "end_date": "2026-12-11"
    }
  • POST

    get_job_costing

    read

    Returns the figures of the project's job costing: estimated cost, actual cost and the difference for each cost code, plus totals. Labor from time cards counts toward actual cost. Read only.

    POST /api/v1/contractor-foreman/get_job_costing

    Input

    Input: get_job_costing
    Parameter Type Description
    project_id required string Project ID from list_projects.

    Example response

    {
      "project_id": "84213",
      "cost_codes": [
        {
          "code": "Labor",
          "estimated": 18000,
          "actual": 19250,
          "difference": -1250
        },
        {
          "code": "Materials",
          "estimated": 22000,
          "actual": 20100,
          "difference": 1900
        },
        {
          "code": "Subcontractors",
          "estimated": 9000,
          "actual": 9000,
          "difference": 0
        }
      ],
      "totals": {
        "estimated": 49000,
        "actual": 48350,
        "difference": 650
      },
      "currency": "USD"
    }
  • POST

    list_estimates

    read

    Returns estimates newest first, optionally for one project. Status is the label Contractor Foreman shows, for example draft or approved. Pages hold up to 100 estimates.

    POST /api/v1/contractor-foreman/list_estimates

    Input

    Input: list_estimates
    Parameter Type Description
    project_id string Only estimates for this project.
    status string Filter by status as shown in Contractor Foreman, e.g. draft or approved.
    limit integer 1 to 100. Default: 25.

    Example response

    {
      "estimates": [
        {
          "estimate_id": "E-2291",
          "project_id": "84213",
          "title": "Bathroom remodel",
          "status": "draft",
          "total": 1589,
          "opened_by_client": false,
          "signed": false
        }
      ]
    }
  • POST

    list_change_orders

    read

    Returns the change orders of one project with status and amount. Change order requests that are not yet in a change order are included unless you turn them off.

    POST /api/v1/contractor-foreman/list_change_orders

    Input

    Input: list_change_orders
    Parameter Type Description
    project_id required string Project ID from list_projects.
    include_requests boolean Include change order requests not yet in a change order. Default: true.

    Example response

    {
      "change_orders": [
        {
          "change_order_id": "CO-17",
          "title": "Second kitchen window",
          "status": "draft",
          "amount": 1368
        }
      ]
    }
  • POST

    list_daily_logs

    read

    Returns the daily logs of one project, newest first, optionally between two dates. Each log carries the notes, the people on site, deliveries and the weather Contractor Foreman recorded.

    POST /api/v1/contractor-foreman/list_daily_logs

    Input

    Input: list_daily_logs
    Parameter Type Description
    project_id required string Project ID from list_projects.
    from date First log date.
    to date Last log date.

    Example response

    {
      "daily_logs": [
        {
          "daily_log_id": "557190",
          "date": "2026-10-09",
          "notes": "Framing second floor east wall.",
          "people": {
            "Framing crew": 4
          },
          "weather": {
            "condition": "Rain",
            "high_f": 61,
            "low_f": 48
          }
        }
      ]
    }
  • POST

    list_schedule_tasks

    read

    Returns the tasks of the project schedule in the order of the Gantt chart. Each task has start and end dates, the tasks it depends on and percent complete. Use the task_id with update_schedule_task.

    POST /api/v1/contractor-foreman/list_schedule_tasks

    Input

    Input: list_schedule_tasks
    Parameter Type Description
    project_id required string Project ID from list_projects.

    Example response

    {
      "tasks": [
        {
          "task_id": "T-5530",
          "name": "Rough-in inspection",
          "start_date": "2026-10-14",
          "end_date": "2026-10-14",
          "depends_on": [
            "T-5521"
          ],
          "percent_complete": 0
        }
      ]
    }
  • POST

    list_invoices

    read

    Returns invoices newest first. Balance due is the total minus the amount paid. Retainage held is listed apart from it. Filter to invoices with a balance or due before a date. Pages hold up to 100 invoices.

    POST /api/v1/contractor-foreman/list_invoices

    Input

    Input: list_invoices
    Parameter Type Description
    project_id string Only invoices for this project.
    unpaid_only boolean Only invoices with a balance due. Default: false.
    due_before date Only invoices due before this date.
    limit integer 1 to 100. Default: 25.

    Example response

    {
      "invoices": [
        {
          "invoice_id": "INV-1048",
          "project_id": "84213",
          "customer": "Dana Whitfield",
          "total": 12000,
          "paid": 7000,
          "balance_due": 5000,
          "retainage_held": 600,
          "due_date": "2026-09-05"
        }
      ]
    }
  • POST

    create_daily_log

    write

    Adds a daily log to the project for the date you give. Contractor Foreman records the weather itself; weather_notes sits next to it. The log reaches no client or crew and can be edited in the app, so this tool runs without asking.

    POST /api/v1/contractor-foreman/create_daily_log

    Input

    Input: create_daily_log
    Parameter Type Description
    project_id required string Project ID from list_projects.
    date required date Log date.
    notes required string Work done and site notes.
    people object Crews, subcontractors and visitors on site, with headcount or names.
    materials_delivered string[] Materials delivered to the site.
    weather_notes string Your own notes next to the recorded weather.

    Example response

    {
      "daily_log_id": "557190",
      "project_id": "84213",
      "date": "2026-10-09",
      "weather": {
        "condition": "Rain",
        "high_f": 61,
        "low_f": 48
      }
    }
  • POST

    create_estimate

    write

    Saves a draft estimate on the project. Each line total is quantity times unit cost plus its markup, and the estimate total is the sum of the lines. The client sees nothing until send_estimate, so this tool runs without asking.

    POST /api/v1/contractor-foreman/create_estimate

    Input

    Input: create_estimate
    Parameter Type Description
    project_id required string Project ID from list_projects.
    title required string Estimate title.
    items required object Line items: name, item type (e.g. material or labor), quantity, unit cost, markup percent.
    notes string Scope notes shown on the estimate.

    Example response

    {
      "estimate_id": "E-2291",
      "project_id": "84213",
      "title": "Johnson bathroom",
      "status": "draft",
      "lines": [
        {
          "name": "Demolition labor",
          "total": 968
        },
        {
          "name": "Tile",
          "total": 621
        }
      ],
      "total": 1589
    }
  • POST

    send_estimate

    write

    Emails the estimate to the recipients for online approval and e-signature. Without recipients it goes to the project customer. The client can approve it from the email. By default you confirm each call; you can switch that off for this tool.

    POST /api/v1/contractor-foreman/send_estimate

    Input

    Input: send_estimate
    Parameter Type Description
    estimate_id required string Estimate ID from create_estimate or list_estimates.
    to string[] Recipient emails. Default: the project customer.
    message string Email body.

    Example response

    {
      "estimate_id": "E-2291",
      "status": "sent",
      "sent_to": [
        "client@example.com"
      ]
    }
  • POST

    create_change_order

    write

    Saves a draft change order. Each line total is quantity times unit cost plus its markup, and the total is the sum of the lines. With lump_sum the client sees one total instead of the lines. Nothing reaches the client until send_change_order, so this tool runs without asking.

    POST /api/v1/contractor-foreman/create_change_order

    Input

    Input: create_change_order
    Parameter Type Description
    project_id required string Project ID from list_projects.
    title required string Change order title.
    items required object Line items: name, quantity, unit cost, markup percent.
    lump_sum boolean Show the client one total instead of items. Default: false.
    description string Reason for the change.

    Example response

    {
      "change_order_id": "CO-17",
      "project_id": "84213",
      "title": "Second kitchen window",
      "status": "draft",
      "lump_sum": false,
      "lines": [
        {
          "name": "Window unit",
          "total": 936
        },
        {
          "name": "Install labor",
          "total": 432
        }
      ],
      "total": 1368
    }
  • POST

    send_change_order

    write

    Emails the change order to the project customer for online approval and e-signature. Approval is up to the client; the revised contract amount changes only after that. By default you confirm each call; you can switch that off for this tool.

    POST /api/v1/contractor-foreman/send_change_order

    Input

    Input: send_change_order
    Parameter Type Description
    change_order_id required string Change order ID from create_change_order.
    message string Email body.

    Example response

    {
      "change_order_id": "CO-17",
      "status": "sent",
      "sent_to": [
        "client@example.com"
      ]
    }
  • POST

    update_schedule_task

    write

    Changes the start date, end date or percent complete of one task and returns the task as the schedule shows it afterwards. Call list_schedule_tasks again to see tasks that depend on it. A schedule edit reaches no client, and one more call undoes it, so this tool runs without asking.

    POST /api/v1/contractor-foreman/update_schedule_task

    Input

    Input: update_schedule_task
    Parameter Type Description
    task_id required string Task ID from list_schedule_tasks.
    start_date date New start date.
    end_date date New end date.
    percent_complete integer 0 to 100.

    Example response

    {
      "task_id": "T-5530",
      "name": "Rough-in inspection",
      "start_date": "2026-10-16",
      "end_date": "2026-10-16",
      "percent_complete": 0
    }
  • POST

    add_punchlist_item

    write

    Adds a punchlist item to the project and assigns it to someone from your Directory. A due date is added to the calendar. The item is assigned to another person, so you confirm it. By default you confirm each call; you can switch that off for this tool.

    POST /api/v1/contractor-foreman/add_punchlist_item

    Input

    Input: add_punchlist_item
    Parameter Type Description
    project_id required string Project ID from list_projects.
    title required string What needs fixing.
    assignee string Name or email from your Directory.
    due_date date Due date, added to the calendar.

    Example response

    {
      "punchlist_item_id": "PL-311",
      "project_id": "84213",
      "title": "Touch up paint, hallway",
      "assignee": "Sam Rivera",
      "due_date": "2026-10-20",
      "status": "open"
    }

Setup

How do I connect Contractor Foreman to Claude Code, Codex or Cursor?

Connecting Contractor Foreman takes three steps: request access, sign in to Contractor Foreman once, then add one MCP server or call the REST API with the same key.

Connect Contractor Foreman over MCP

  1. 1

    Create an account

    Sign up and add Contractor Foreman in the console. Your API key is there too.

  2. 2

    Sign in to Contractor Foreman once

    Open the connect page from the console and sign in to Contractor Foreman the way you always do. We keep the session, never your password, and you can revoke it anytime.

  3. 3

    Add Cotlet to your agent

    Claude Code
    claude mcp add --transport http cotlet \
      https://cotlet.dev/mcp/v1 \
      --header "Authorization: Bearer $COTLET_API_KEY"
    Cursor
    {
      "mcpServers": {
        "cotlet": {
          "url": "https://cotlet.dev/mcp/v1",
          "headers": {
            "Authorization": "Bearer ${COTLET_API_KEY}"
          }
        }
      }
    }
    Codex
    # ~/.codex/config.toml
    [mcp_servers.cotlet]
    url = "https://cotlet.dev/mcp/v1"
    bearer_token_env_var = "COTLET_API_KEY"

    Paste the snippet for your client. The same server and key serve every app you connect, so you do this once.

  4. 4

    Ask your agent

    Prompt

    Here is Mike's voice note from the Maple St remodel. Turn it into today's daily log: framing crew of 4, one electrician, drywall delivered, rain stopped work at 2:30.

    Ask in plain words. Your agent finds the Contractor Foreman tools on the server and calls them for you; anything that reaches other people waits for your OK unless you switch that off for a tool.

Call Contractor Foreman over REST

  1. 1

    Export your API key

    Shell

    export COTLET_API_KEY="cotlet_..."

    Your scripts use the same API key as your agent. Keep it in an environment variable, never in your code.

  2. 2

    Call a tool

    curl

    curl https://cotlet.dev/api/v1/contractor-foreman/create_daily_log \
      -H "Authorization: Bearer $COTLET_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{"project_id":"84213","date":"2026-10-09","notes":"Framing second floor east wall. Window rough openings checked.","people":{"Framing crew":4,"Electrical sub":1},"materials_delivered":["48 sheets 1/2\" drywall","20 2x6x12 studs"],"weather_notes":"Rain after 2 pm, crew stopped at 2:30."}'

    Every tool is a POST endpoint at /api/v1/contractor-foreman/{tool}. Send its parameters as JSON, exactly as listed in the endpoints above.

  3. 3

    Read the result

    Example response · create_daily_log

    {
      "daily_log_id": "557190",
      "project_id": "84213",
      "date": "2026-10-09",
      "weather": {
        "condition": "Rain",
        "high_f": 61,
        "low_f": 48
      }
    }

    You get plain JSON back, ready for your script. A failed call costs nothing.

Why Cotlet

Why use Cotlet for Contractor Foreman? Hosted, safe and kept working.

  • Built for agents

    • One MCP server for every app you connect.
    • The same tools as a REST API for scripts and cron jobs.
    • Works with Claude Code, Codex and Cursor.
  • Your login stays yours

    • You sign in to Contractor Foreman yourself. We keep only the session, encrypted with AES-256.
    • The model never sees a login.
    • No stored passwords, no CAPTCHA solving, no MFA bypass.
  • You stay in control

    • Pick read only, or read and write.
    • Anything that reaches other people waits for your OK, unless you switch it off per tool.
    • Revoke access in one click.
  • Kept working for you

    • We test every integration daily.
    • When Contractor Foreman changes, the tool pauses until we fix it.
    • Failed calls cost nothing.

Alternatives

Is there a Contractor Foreman MCP server on GitHub?

Contractor Foreman's own Zapier app moves leads, customers and file uploads to other apps. It reaches nothing else: no estimates, logs, schedule or financials.

Cotlet compared with a Zapier
Zapier Cotlet
Setup Connect your Contractor Foreman account in Zapier, build a Zap per workflow Request access, sign in to Contractor Foreman once, add one MCP server or API key
What it can reach Leads, customers and file uploads Projects, estimates, change orders, daily logs, schedule, invoices, job costing, punchlist
Write actions Create Lead and Create Customer only Daily logs, estimates, change orders, schedule and punchlist updates; sends to clients ask for your OK
When the app changes Zapier maintains the app Contractor Foreman built Our team tests it daily and fixes it for you; failed calls are free
Your session Account connection stored by Zapier Encrypted in an EU vault, limited to the actions you allow, revoked in one click
Where it runs Fixed Zaps on Zapier Hosted: Claude Code, Codex, Cursor, n8n and scripts, also on a schedule
Price Included in your Contractor Foreman subscription; Zapier may need its own plan Free 7-day trial with 5,000 credits, then credits per call

Which one fits you

Pick Cotlet if

  • you are not a developer, or you do not want to maintain a server
  • you need it to keep working when Contractor Foreman changes, without checking it yourself
  • your agent or a script should run it on a schedule, also while your computer is off

Pick an open-source server if

  • you are comfortable installing, updating and fixing it yourself
  • you want the session to stay on your own computer
  • you only need it now and then, from one MCP client

For AI agents

Cotlet for Contractor Foreman in plain text The facts on this page in one block: status, endpoints, access, pricing, contact.

Endpoint health

verified 2h ago

  • list_projects passing
  • get_project passing
  • get_job_costing passing
  • list_estimates passing
  • list_change_orders passing

+ 10 more endpoints

15/15 passing latest check self-healing

contractor-foreman.txt

Contractor Foreman has no public API (checked 11 Oct 2026). Its only programmatic access is a Zapier app with 7 triggers for leads, customers and file uploads, and 2 actions: Create Lead and Create Customer.
Cotlet provides a hosted MCP server and REST API for Contractor Foreman: 15 tools (8 read, 7 write).
Access       Request access at https://cotlet.dev/app/signup?app=contractor-foreman; we email the API key.

MCP server   https://cotlet.dev/mcp/v1
REST base    https://cotlet.dev/api/v1/contractor-foreman
Auth         Authorization: Bearer <COTLET_API_KEY>. Listing endpoints and schemas needs no key; calling an endpoint needs one.
Tools        list_projects, get_project, get_job_costing, list_estimates, list_change_orders, list_daily_logs, list_schedule_tasks, list_invoices, create_daily_log, create_estimate, send_estimate, create_change_order, send_change_order, update_schedule_task, add_punchlist_item
Confirm      send_estimate, send_change_order, add_punchlist_item (by default the user approves each call; the user can switch this off per tool, e.g. for scheduled automations)
Markdown     https://cotlet.dev/integrations/contractor-foreman-api-mcp-server.md

How access works:
1. The user requests access at https://cotlet.dev/app/signup?app=contractor-foreman (Contractor Foreman is pre-selected). Each request is reviewed and the API key is sent by email.
2. The user signs in to Contractor Foreman once in a browser. An agent cannot do this step.
3. The API key goes into the MCP client or the REST call as a bearer token.

Fits: people who want a hosted Contractor Foreman server that someone else maintains, including non-developers.

Policy: Cotlet never stores passwords, never solves CAPTCHAs, never bypasses MFA.
Company: legal details in the Terms of service at https://cotlet.dev/terms. Contact contact@cotlet.dev.
Session: the user signs in to Contractor Foreman in a browser; Cotlet keeps only the session, AES-256 encrypted, revocable in the dashboard at any time.
Terms: the user stays responsible for following Contractor Foreman's terms; Cotlet is not affiliated with Contractor Foreman.
Full page as Markdown

Automations

Can Contractor Foreman automations run on a schedule in n8n, Make or Zapier?

Yes. Cotlet does not replace your automation platform: it gives it a Contractor Foreman connection it does not have, with the same API key as your agent. Write actions ask for your OK by default; switch that off in your dashboard for the tools you choose, for example to turn a foreman's site note into a daily log, and the schedule runs on its own. Cotlet runs in the cloud, so it keeps going while your computer is off.

Where to run Contractor Foreman automations through Cotlet, and how to schedule them
Where How to connect How to schedule
Your AI agent Add https://cotlet.dev/mcp/v1 with your API key. A scheduled agent run, for example a Claude Code routine.
n8n MCP Client node with https://cotlet.dev/mcp/v1, or an HTTP Request node to https://cotlet.dev/api/v1/contractor-foreman/{tool}. Schedule Trigger node.
Make HTTP module: POST https://cotlet.dev/api/v1/contractor-foreman/{tool} with an Authorization: Bearer header and a JSON body. Scenario schedule.
Zapier Webhooks by Zapier: POST https://cotlet.dev/api/v1/contractor-foreman/{tool} with the same header and body. Schedule by Zapier trigger.
Your own script POST https://cotlet.dev/api/v1/contractor-foreman/{tool} with your API key. cron or GitHub Actions.

Pricing & limits

How much does the Contractor Foreman API cost?

Free 7-day trial with 5,000 credits, no card needed. After that, the Contractor Foreman API comes with the Cotlet plan, from $29 a month for 3,000 credits, with no limit on apps. Each month's credits stay valid for 3 months, so unused credits add up.

Cotlet plan sizes: price, monthly credits and price per credit
Size Price Credits / month Per credit
Solo $29/mo 3,000 about $0.0097
Pro $99/mo 12,000 about $0.0083
Agency $299/mo 40,000 $0.0075

Each successful call uses credits for the work it takes; failed calls and timeouts cost nothing. A hard spend cap is on by default. Authenticate with the Authorization: Bearer header.

About Cotlet

How Cotlet holds your access

Cotlet hosts MCP servers and REST APIs for apps with no usable API. Your agent works in your own Contractor Foreman account.

Company details
The legal name, address and registration numbers of the company behind Cotlet are in the Terms of service. Terms
Your session
You sign in to Contractor Foreman yourself, in your browser. We keep only the session, never your password: encrypted with AES-256 in an EU vault, isolated to your account and used only when your agent calls a Contractor Foreman tool you allowed. When it expires, your agent gives you a link to sign in again. Security
Revoking access
Disconnect Contractor Foreman in your dashboard: the session is deleted and access ends at once. Actions that reach other people wait for your OK unless you switch that off per tool.
What we never do
Store passwords, solve CAPTCHAs or bypass MFA.
Contractor Foreman's terms
You use your own Contractor Foreman account and stay responsible for following Contractor Foreman's terms. Cotlet is independent and not affiliated with Contractor Foreman. Terms
Contact
Questions about the company, security or an app: contact@cotlet.dev
About Cotlet

Frequently asked questions

How do I get access?

Request access and pick Contractor Foreman. Cotlet reviews each request and emails you your API key.

Do I need to be technical?

No. You sign in to Contractor Foreman once in your browser and paste one command into your agent, or one URL into n8n. Your agent can walk you through it. There is no server to install, update or fix.

Is a hosted server safe? My Contractor Foreman session would leave my computer.

Cotlet keeps your Contractor Foreman session encrypted with AES-256 in an EU vault, isolated to your account and used only for the tools you allow: read only, or read and write. The AI model never sees it, and you revoke it in one click. A local server keeps the same session in a file on your computer, readable by any program you run, and needs a fresh sign-in whenever it expires.

Does Contractor Foreman have a way to export or sync estimates and logs?

Not through its Zapier app (checked 11 Oct 2026). Contractor Foreman lists Zapier as included in the subscription, and the app has 7 triggers (leads, customers, file uploads) and 2 actions (Create Lead, Create Customer). Estimates, change orders, daily logs, schedule and invoices are not part of it.

Which Contractor Foreman plan do I need?

Cotlet works in your own account and does not use the Zapier app. Contractor Foreman's pricing page does not say which plans include API access, because there is none. What your agent can reach depends on the modules your role can open in the app.

Can my agent post or send messages in Contractor Foreman without asking me?

No. Every call to send_estimate, send_change_order or add_punchlist_item waits for your OK by default. For scheduled automations you can switch confirmation off per tool in your dashboard, for example only for approvals. create_daily_log, create_estimate, create_change_order, update_schedule_task runs without asking, because it sends nothing to anyone and one call undoes it.

Can I use the Contractor Foreman API in n8n?

Yes. Add https://cotlet.dev/mcp/v1 with your API key in n8n's MCP Client node, or call https://cotlet.dev/api/v1/contractor-foreman/{tool} from the HTTP Request node.

Give your agent access to Contractor Foreman.

Request access and pick it. We review each request and email you your API key. Free 7-day trial with 5,000 credits, no card needed.