Projects

Update a project's custom field values

Sets values for one or more of the project's custom fields and returns the whole collection as GET renders it.

This is a merge, not a replacement. Only the fields you name are written; every field you omit keeps the value it had. Send "value": null to clear one. Sending a subset is the normal case — an integration that owns three fields never has to know about the others, and never clears a value someone set in Rabbet.

The collection's membership belongs to the project's type, so there is no way to add or remove a field here. Address each field by the id GET /project-types publishes for the project's type; a field that type does not define is rejected, not ignored. Discover the ids ahead of time via GET /project-types, or read them from this endpoint.

Values are strings whatever the field's type, and must fit it: a dropdown value must be one of the field's options, a date must be ISO 8601 (YYYY-MM-DD), money, number and percent must be numeric, integer must be a whole number, and boolean must be "true" or "false".

The batch is all-or-nothing: if any entry is rejected, none are written. Concurrent requests against one project are serialized, so a field cannot end up with two values.

Idempotency

Applying the same body twice leaves the same state, so this endpoint does not require an Idempotency-Key; a retry is already safe.

patch/projects/{projectId}/custom-fields

Request

  • Base URL: https://api.rabbet.com/v1
  • URL: https://api.rabbet.com/v1/projects/{projectId}/custom-fields
  • Auth: OAuth 2 (client credentials, token URL https://api.rabbet.com/oauth/token, scopes: write)

Path parameters

projectIdstring uuid required

Rabbet project UUID. To resolve your own identifier to a project, use GET /projects?custom_id=....

Request body

Example request

{
  "custom_fields": [
    {
      "id": "b308e77f-6d1d-47c4-bd1f-0069cc548315",
      "value": "PN123"
    }
  ]
}

Response

The project's custom fields, after the merge.

Example response

{
  "data": {
    "custom_fields": [
      {
        "id": "b308e77f-6d1d-47c4-bd1f-0069cc548315",
        "label": "Project Number",
        "field_name": "loan_id",
        "type": "text",
        "value": "PN123"
      }
    ]
  }
}

Changes

No recorded changes to this operation across all 1 revision of this API.