PedibeeDocs

Create a custom field

Add a field every contact can hold a value for.

POST/api/v1/contact-fields
Scopecontacts:write

Adds a custom field. Its key is made from the label — lower case, with underscores, e.g. Renewal date → renewal_date — and never changes. If that key is taken or reserved (like email or name), a number is added: email_2.

Only a key whose creator is a manager or the owner can change fields.

Body

Send a JSON object.

Prop

Type

TypeShown asHoldsExample value
TEXTTextUp to 500 characters"Berlin office"
LONG_TEXTLong textUp to 5,000 characters"Evaluating us against…"
NUMBERNumberAny number25
DATEDateA calendar date, YYYY-MM-DD"2026-11-30"
SELECTDropdownOne of the field's options"Pro"
CHECKBOXCheckboxtrue or falsetrue
URLLinkA web address; https:// is added if missing"https://northwind.io/pricing"

Example request

curl -X POST "https://api.pedibee.com/api/v1/contact-fields" \
  -H "Authorization: Bearer $PEDIBEE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "label": "Plan",
    "type": "SELECT",
    "options": [
      "Free",
      "Pro",
      "Enterprise"
    ]
  }'

Response

The new field, with its key.

201 Created
{
  "id": "66f1c2a9e4b0a1b2c3d4e201",
  "key": "plan",
  "label": "Plan",
  "type": "SELECT",
  "options": [
    "Free",
    "Pro",
    "Enterprise"
  ],
  "position": 0,
  "createdAt": "2026-10-05T09:30:00.000Z",
  "updatedAt": "2026-10-05T09:30:00.000Z"
}

Errors

Every error is { "error": "…" } with a message you can show. See Errors and limits.

StatusWhen
400The label is missing or too long, the type is unknown, a SELECT field has no options, or the workspace already has 50 fields.
403The key doesn’t have contacts:write, or its creator’s role no longer allows it.
409A field with this label already exists.
401The API key is missing, invalid, revoked or expired.
429Too many requests. Wait for the seconds in Retry-After.

On this page