/api/v1/object/field/all/{objectSlug}List all fields an object owns, active and inactive.
List all fields an object owns, active and inactive.
Returns the object's own fields in one response, active first, then by
sort_order. Fields shared into the object from other objects and
relations are not included. Each item has the same shape as
GET /object/field/{objectSlug}.
Scope: read.<object slug>, for example read.contacts.
Errors:
400— no object has that slug, or the object is inactive.
Response 200:
{
"status": 200,
"message": "All fields retrieved successfully",
"data": [
{
"id": 912,
"name": "stage",
"slug": "stage-k2j9h4g7",
"label": "Stage",
"icon": null,
"type": "select",
"required": false,
"default_value": null,
"options": {
"values": [
{
"id": "6a1f3c9e-2b7d-4e8a-9f0c-1d2e3f4a5b6c",
"value": "lead",
"label": "Lead",
"color": "#3B82F6"
}
]
},
"is_active": true,
"sort_order": 4,
"group_slug": null,
"group_ineligible": false,
"is_system": false,
"api_only": false,
"is_shared": false,
"shared_with": [],
"is_visible": true,
"created_at": "2026-08-02T08:30:00.000Z",
"updated_at": "2026-09-01T11:15:00.000Z"
}
]
}
Send request
Use the documented inputs to call this endpoint directly.
Parameters
Values are applied to the request and the example on the right.
Responses
Successful response
{
"id": 1.5,
"name": "string",
"slug": "string",
"label": "string",
"icon": "string",
"type": "string",
"required": true,
"default_value": "string",
"options": "string",
"is_active": true,
"sort_order": 1.5,
"group_slug": "string",
"group_ineligible": true,
"is_system": true,
"api_only": true,
"is_shared": true,
"shared_with": "string",
"is_visible": true,
"created_at": "2026-01-01T00:00:00Z",
"updated_at": "2026-01-01T00:00:00Z"
}Archived (deleted-but-still-referenced) options are stripped — see FieldResponseDto.
Order within the field's section — and, for a section-less field, within
the flat list. For a placed (shared) field this is the placement's
position on THIS Unit, not the home definition's order. Same currency as
PUT /object/field/order and as positions[] on the section assign call.
The field's section on THIS Unit (FRD-34); null ⇒ the implicit
"Ungrouped" bucket, which renders last. null on paths that skip
stampSections (nothing grouped, or a write-echo response), so the key
is always present on the wire.
FRD-34 — this field can never be moved into a section: the record shell renders it (title, assignee, meta block, status/tag chrome) or it is system-defined. Derived on read rather than stored, so it is right for objects seeded before sections existed and on the write-echo responses.
Value-write lock — drives the "API only" toggle's state in field settings.
CFM-2: is_shared/shared_with are computed by
FieldQueryService.mergeWithPlacedFields but were stripped here.
false/[] on paths that skip the merge (e.g. findBySlug).
Per-Unit visibility of a placed (shared) field on THIS Unit — set by
mergeWithPlacedFields from the placement row. Own fields (and paths
that skip the merge) default to true; their on/off switch is
is_active.
Bad request
{
"status": 1,
"message": "string",
"code": "string",
"data": {}
}The HTTP status code of the response.
What went wrong. Several validation messages are joined with ", ".
A stable, machine-readable reason. Only some errors set it.
Extra detail about the error. Only some errors set it.
Unauthorized
{
"status": 1,
"message": "string",
"code": "string",
"data": {}
}The HTTP status code of the response.
What went wrong. Several validation messages are joined with ", ".
A stable, machine-readable reason. Only some errors set it.
Extra detail about the error. Only some errors set it.
Internal server error
{
"status": 1,
"message": "string",
"code": "string",
"data": {}
}The HTTP status code of the response.
What went wrong. Several validation messages are joined with ", ".
A stable, machine-readable reason. Only some errors set it.
Extra detail about the error. Only some errors set it.
Powered by heyo-docs