For AI agents: markdown of this page — /docs-content-en/entities/quotes/fields.md documentation index — /llms.txt

Quote fields

GET /v1/quotes/fields

Returns the full list of available fields, including user fields (ufCrm_*).

Examples

curl — personal key

Terminal
curl "https://vibecode.bitrix24.com/v1/quotes/fields" \
  -H "X-Api-Key: YOUR_API_KEY"

curl — OAuth app

Terminal
curl "https://vibecode.bitrix24.com/v1/quotes/fields" \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN"

JavaScript — personal key

javascript
const res = await fetch('https://vibecode.bitrix24.com/v1/quotes/fields', {
  headers: {
    'X-Api-Key': 'YOUR_API_KEY',
  },
})

const { success, data } = await res.json()
console.log('Fields:', Object.keys(data.fields).length)

JavaScript — OAuth app

javascript
const res = await fetch('https://vibecode.bitrix24.com/v1/quotes/fields', {
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
  },
})

const { success, data } = await res.json()

Response fields

Field Bitrix24 Type RO Description
id id number yes Quote ID
quoteNumber quoteNumber string Quote number
title title string Name
amount opportunity number Amount
taxValue taxValue number Tax value. Measured 2026-09-07 on a live portal: a value sent here is not stored in either amount mode — automatic or manual — on create or on update; the read-back is 0. The import path has not been measured, so the field is left writable
currency currencyId string Currency. List: GET /v1/currencies
stageId stageId string Status: DRAFT, SENT, APPROVED. List: GET /v1/statuses?filter[entityId]=QUOTE_STATUS
isManualOpportunity isManualOpportunity boolean Manual amount mode (Y/N in Bitrix24, converted to boolean)
opened opened boolean Available to everyone
closed closed boolean yes Quote is closed
dealId dealId number Deal ID. Lookup: GET /v1/deals
leadId leadId number Lead ID. Lookup: GET /v1/leads
contactId contactId number Contact ID. Lookup: GET /v1/contacts
contactIds contactIds array Quote contact IDs. Send the full list — the binding set is replaced, not merged
contacts contacts array yes Quote contacts
companyId companyId number Company ID. Lookup: GET /v1/companies
mycompanyId mycompanyId number Your company details
personTypeId personTypeId number yes Payer type
assignedById assignedById number Assignee. List: GET /v1/users
createdBy createdBy number yes Creator. Lookup: GET /v1/users
updatedBy updatedBy number yes Updated by
lastActivityBy lastActivityBy number Last activity author
comments comments string Comment
content content string Content
terms terms string Terms
locationId locationId string Location
webformId webformId number Created by a CRM web form
storageTypeId storageTypeId number File storage type
storageElementIds storageElementIds array Storage file IDs
utmSource utmSource string UTM source
utmMedium utmMedium string UTM medium
utmCampaign utmCampaign string UTM campaign
utmContent utmContent string UTM content
utmTerm utmTerm string UTM term
beginDate begindate datetime Start date
closeDate closedate datetime Close date
actualDate actualDate datetime Valid until
lastActivityTime lastActivityTime datetime Last activity
lastCommunicationTime lastCommunicationTime string yes Last communication date
lastCommunicationCallTime lastCommunicationCallTime datetime yes Last call date
lastCommunicationEmailTime lastCommunicationEmailTime datetime yes Last email date
lastCommunicationImolTime lastCommunicationImolTime datetime yes Last Open Channels dialog date
lastCommunicationWebformTime lastCommunicationWebformTime datetime yes Last CRM web-form submission date
createdTime createdTime datetime yes Creation date
updatedTime updatedTime datetime yes Modification date

The UTM fields are returned in list/get but accepted neither in filter nor in sorting. A request with filter[utmSource] returns 400 UNKNOWN_FILTER_FIELD, one with sort=utmSource returns 400 UNKNOWN_SORT_FIELD, and both refusals arrive before Bitrix24 is called.

User fields (ufCrm_*) are also returned in responses and accepted on create/update.

Available includes

The GET /v1/quotes/fields endpoint returns the list of available includes: deal, contact, company.

Usage example: Get quotes.

More about includes: Related data.

Response example

JSON
{
  "success": true,
  "data": {
    "fields": {
      "id": {
        "type": "number",
        "readonly": true,
        "label": "Quote ID",
        "description": "Quote identifier assigned by Bitrix24."
      },
      "title": {
        "type": "string",
        "readonly": false,
        "label": "Name",
        "description": "Quote name shown in the list and in the card."
      },
      "assignedById": {
        "type": "number",
        "readonly": false,
        "label": "Assignee",
        "description": "Employee responsible for the quote. Available values: GET /v1/users."
      }
    },
    "batch": ["create", "update", "delete"]
  }
}

Only 3 of the many fields are shown. The full list is in the table above.

Every field is described by an object { type, readonly, label, description }. label is a short caption in English, while labels that the platform takes straight from the Bitrix24 account come in the account language. description is an extended explanation: what the field is for, where to get the list of allowed values, and how it behaves on write. Request headers do not switch the language. The stageId value set is configured in your Bitrix24 account, so its description links to the status list endpoint instead of enumerating fixed values.

Errors

HTTP Code Description
403 SCOPE_DENIED The API key lacks the crm scope
401 TOKEN_MISSING The API key has no configured tokens
429 RATE_LIMITED Rate limit exceeded: 300 requests per minute per portal, all API keys of the portal share one limit. The exact value arrives in the x-ratelimit-limit header (the cap is divided across replicas). Retry after the delay in the Retry-After header

Full list of common API errors — Errors.

See also