---
title: "Add a custom question to the caller's company"
method: POST
path: "/api/c2c-custom-questions"
tags: ["Companies"]
---

# Add a custom question to the caller's company

`POST /api/c2c-custom-questions`

## Request

- Base URL: `https://api.retraced.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.retraced.com/api/c2c-custom-questions`
- Auth: none declared

Adds one question with its answer options to the caller company, attributed to the caller, and answers it as stored. 409 `api_field_identifier_is_already_in_use` when another of the company's live questions has the `apiFieldIdentifier`; 409 `exceeded_number_of_custom_identifiers` for a `CUSTOM_IDENTIFIER` question when the company already has two. An empty `hintText`, `apiFieldIdentifier` or option value is stored as null; unknown keys are dropped. Legacy took an array of questions (both callers sent one) and answered a bare array; this answers 201 with `{ data, metadata }`.

## Request body

- object
  - `title` string, required
  - `type` 'SHORT_TEXT' | 'LONG_TEXT' | 'NUMBER' | 'NUMBER_UOM' | 'NUMBER_DYNAMIC_UOM' | 'NUMBER_DYNAMIC_CURRENCY' | 'MULTIPLE_CHOICE' | 'CHECK_BOX' | 'MULTIPLE_CHECK_BOXES' | 'SELECT' | 'SELECT_SINGLE_COWORKER' | 'SELECT_MULTIPLE_COWORKERS' | 'DATE' | 'CUSTOM_IDENTIFIER', required
  - `hintText` string, nullable
  - `apiFieldIdentifier` string, nullable
  - `options` object[], nullable
    - `key` string, nullable
    - `value` string, nullable
    - `unit` string, nullable
    - `retracedMapId` string, nullable

## Response `201`

Default Response

- object
  - `metadata` object, required
    - `success` boolean, required: True when the request succeeded.
  - `data` object, required
    - `id` string, required
    - `isDefault` number, required
    - `isRemoved` number, required
    - `title` string, required
    - `hintText` string, nullable, required
    - `type` string, required
    - `apiFieldIdentifier` string, nullable, required
    - `fromCompanyId` string, nullable, required
    - `createdAt` string, nullable, required
    - `createdByImpersonateId` string, nullable, required
    - `createdByUserId` string, nullable, required
    - `createdByCompanyId` string, nullable, required
    - `createdByApiKeyId` string, nullable, required
    - `createdByApiKeyLabel` string, nullable, required
    - `updatedAt` string, nullable, required
    - `updatedByImpersonateId` string, nullable, required
    - `updatedByImpersonateName` string, nullable, required
    - `updatedByUserId` string, nullable, required
    - `updatedByUserName` string, nullable, required
    - `updatedByCompanyId` string, nullable, required
    - `updatedByCompanyName` string, nullable, required
    - `updatedByApiKeyId` string, nullable, required
    - `updatedByApiKeyLabel` string, nullable, required
    - `options` object[], required
      - `id` string, required
      - `questionId` string, required
      - `key` string, nullable, required
      - `value` string, nullable, required
      - `unit` string, nullable, required
      - `retracedMapId` string, nullable, required

## Other responses

- `400`: Default Response
- `401`: Default Response
- `403`: Default Response
- `409`: Default Response

## Changes

> 108 revisions in range; 2 not diffed.

- **2026-10-18** `635b52ded6a8`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/retraced/apis/api-reference/changes/api/c2c-custom-questions/post.md)

---

[API](https://skmtc.dev/retraced/apis/api-reference.md) - [All operations](https://skmtc.dev/retraced/apis/api-reference/llms.txt) - [OpenAPI document](https://skmtc.dev/retraced/apis/api-reference/revisions/83309c4abd20?raw)
