FieldCamp
Resources

Items | FieldCamp API

Items are the products or services billed as line items on jobs.

An item is a billable product or service. Items appear as line items on jobs, where they roll up into subTotal, tax, and total.

The path is /api/product-service (legacy naming) even though we refer to the resource as "Items" everywhere else.

Create once, reuse forever

Items are long-lived. Create each distinct product or service once, store the returned id, and reference it from every job's jobItems.

There's no server-side dedup on item names. If you naïvely POST /api/product-service for the same named item twice, you'll have two items. Look up by name (and optionally price) client-side first.

Fields

  • typeService (time-based work) or Product (physical goods).
  • isActive — set true. Inactive items aren't selectable in the UI.
  • price — the default unit price. Override per-line via JobItem.price if needed.

Endpoints

Send your key on the Authorization header here

This is a legacy route rather than a /api/v1/... one, and it authenticates slightly differently. Your fc_live_ key does work — it authenticates as the user who created it — but only when sent on the Authorization header:

curl https://api.fieldcamp.ai/api/teams \
  -H "Authorization: Bearer fc_live_..."

X-Api-Key is not read on these routes, and per-key scopes are not enforced here — the key acts with its creator's own access. On the /api/v1/... routes both header forms work and scopes are checked, so prefer a v1 endpoint whenever one exists for what you need.

GET/api/product-service

Authorization

BearerAuth
AuthorizationBearer <token>

Your FieldCamp API key (starts with fc_live_). Send it as Authorization: Bearer fc_live_… — or as the X-Api-Key: fc_live_… header. Create a key in Settings → API. This is an API key, not a login JWT.

In: header

Query Parameters

searchView?string
page?string
limit?string
groupsPerPage?string
recordsPerGroup?string
groupPage?string
groupPagination?string
groupBy?string

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/api/product-service"
{  "success": true,  "message": "",  "data": null}
POST/api/product-service

Authorization

BearerAuth
AuthorizationBearer <token>

Your FieldCamp API key (starts with fc_live_). Send it as Authorization: Bearer fc_live_… — or as the X-Api-Key: fc_live_… header. Create a key in Settings → API. This is an API key, not a login JWT.

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/api/product-service" \  -H "Content-Type: application/json" \  -d '{    "name": "string",    "type": "string",    "price": 0  }'
{  "success": true,  "message": "",  "data": null}

On this page