Use FeneCAM from Claude / Cursor / your shop agent

FeneCAM is a browser cutting optimizer / CAM for linear stock (bars, pipes, tubes, profiles, lumber) and sheets; window and door fabrication is one built-in feature. The Agent API is an access channel to that product — import a BOM, run 1-CSP or 2-CSP, read yield and remnants, export PDF / XLS / CSV / DXF — without opening the dashboard. It is not a new “AI Agent” product.

For models: start with /llms.txt and OpenAPI at /api/v1/openapi.json. Import rules stay on the import manual.

Base URL

https://www.fenecam.com/api/v1

Create an API key while signed in: Dashboard → REST API → API status. Keys belong to your FeneCAM account and Paddle plan.

Auth and scopes

Authorization: Bearer fnc_live_…
X-API-Key: fnc_live_…
ScopeTools
plans:writeimport_parts, parse_clipboard, create_or_update_plan
optimizeoptimize_1csp, optimize_2csp
plans:readget_result
exportexport_plan

A key never returns another user’s plan. Unknown ids are 404.

Credits

Agent API and MCP optimize calls are metered in credits. 1 credit = $0.01. Every plan includes credits:

PlanCreditsRefill
Free $01,000 once, on signupNone
Standard $9 / month1,000 / monthEach UTC month
Professional $19 / month2,000 / monthEach UTC month
Enterprise API $99 / month12,000 / monthEach UTC month

Credit packs (one-time payment, $0.01 per credit): 1,000 credits for $10 · 2,000 for $20 · 10,000 for $100. Pack credits never expire, and neither the monthly reset nor a plan change touches them. Buy them in the pricing section or under Billing in your account.

CallCredits
New optimize_1csp or optimize_2csp solve1
Solve that starts and then fails (SOLVER_FAILED, STOCK_SHORTAGE, UNPLACED_PARTS)1
Optimize on an unchanged plan (saved result returned, summary.cached: true)0
Optimize refused before the solver starts (OPTIMIZE_BUSY, RATE_LIMITED, OPTIMIZE_COOLDOWN, PLAN_LIMIT_EXCEEDED, WRONG_KIND, CREDITS_EXCEEDED)0
get_result, GET /plans/{id}, import_parts, parse_clipboard, create_or_update_plan, export_plan, GET /me, OpenAPI, MCP schema0

Limits by plan

BOM size caps are unchanged (Free: 5 stock sizes / 20 part sizes / 500 parts). Monthly optimize volume is set by credits. Rate limits and the export cap are per account, not per key. Only one optimization may run at a time. On HTTP 429, wait for Retry-After. Do not retry SOLVER_FAILED or OPTIMIZE_COOLDOWN with the same input. Linear optimization uses ga_opt.

PlanCreditsRate / minOptimize / minExport / monthKeys
Free $01,000 once202301
Standard $91,000 / month6053005
Professional $192,000 / month120102,00020
Enterprise API $9912,000 / month3002010,00050

Exports use no credits. They count toward the export cap above; when it is reached, export returns QUOTA_EXCEEDED until the next UTC month. The Agent API and MCP are part of every plan. Enterprise API ($99 / month) is the plan for high API volume: 12,000 credits a month and the highest limits.

Tools

REST paths and MCP tools share the same names.

ToolHTTPWhat it does
import_partsPOST /import_partsJSON or CSV (keys N, M, K, S, P, LT, RT…). Kind 1csp or 2csp.
parse_clipboardPOST /import/parseCells pasted from Excel or Google Sheets (any headers) → plan draft plus columns_mapped, assumptions, warnings. Kimi maps the columns; FeneCAM reads the numbers. 0 credits; max 64 KB; Free 10, paid 30 per minute.
create_or_update_planPOST /plansSave a plan the optimizer can run.
optimize_1cspPOST /plans/{id}/optimize_1cspLinear stock (bars, pipes, tubes, profiles): bars used, yield, waste, remnants, patterns.
optimize_2cspPOST /plans/{id}/optimize_2cspSheet / panel nesting.
get_resultGET /plans/{id}/resultIdempotent read.
export_planPOST /plans/{id}/exportBody {"format":"csv"} — pdf, xls, csv, or dxf only.

Example material name: Aluminum Profile 6060. Kerf starting point for a window profile saw: 3 mm. Do not mix aluminium and uPVC in one stock list. Glass and infill belong in 2-CSP.

curl example

export FENECAM_API_KEY=fnc_live_YOUR_KEY
CSV='N,Agent Demo
M,Aluminum Profile 6060
K,3
S,6000,5
P,500,4,Sash
P,750,2,Transom'

PLAN=$(curl -sS https://www.fenecam.com/api/v1/plans \
  -H "Authorization: Bearer $FENECAM_API_KEY" \
  -H "Content-Type: application/json" \
  -d "$(jq -n --arg csv "$CSV" '{kind:"1csp",format:"csv",csv:$csv}')")
ID=$(echo "$PLAN" | jq -r .plan_id)

# 1 credit for a new solve; the response has credits_used and credits_remaining
curl -sS -X POST https://www.fenecam.com/api/v1/plans/$ID/optimize_1csp \
  -H "Authorization: Bearer $FENECAM_API_KEY" \
  -H "Idempotency-Key: $ID-run-1"

# Credit balance (uses no credits)
curl -sS https://www.fenecam.com/api/v1/me \
  -H "Authorization: Bearer $FENECAM_API_KEY"

curl -sS https://www.fenecam.com/api/v1/plans/$ID/result \
  -H "Authorization: Bearer $FENECAM_API_KEY"

curl -sS -X POST https://www.fenecam.com/api/v1/plans/$ID/export \
  -H "Authorization: Bearer $FENECAM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"format":"csv"}'

A copy-paste script lives in the repo as examples/agent-api.curl.sh.

MCP

POST JSON-RPC to /api/v1/mcp (initialize, tools/list, tools/call). Schema: /api/v1/mcp/schema.

{
  "mcpServers": {
    "fenecam": {
      "url": "https://www.fenecam.com/api/v1/mcp",
      "headers": { "Authorization": "Bearer fnc_live_YOUR_KEY" }
    }
  }
}

Exports and what we do not claim

Last update: 11 October 2026