For AI agents: markdown of this page — /docs-content-en/entities/currencies/fields.md documentation index — /llms.txt
Currency fields
GET /v1/currencies/fields
Returns a description of all entity fields with their types and attributes.
Examples
curl — personal key
curl "https://vibecode.bitrix24.com/v1/currencies/fields" \
-H "X-Api-Key: YOUR_API_KEY"
curl — OAuth application
curl "https://vibecode.bitrix24.com/v1/currencies/fields" \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN"
JavaScript — personal key
const res = await fetch('https://vibecode.bitrix24.com/v1/currencies/fields', {
headers: { 'X-Api-Key': 'YOUR_API_KEY' },
})
const { success, data } = await res.json()
JavaScript — OAuth application
const res = await fetch('https://vibecode.bitrix24.com/v1/currencies/fields', {
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
},
})
const { success, data } = await res.json()
Response fields
| Field | Type | Description |
|---|---|---|
success |
boolean | Always true on success |
data |
object | Currency field descriptions and the operations available in batch mode |
data.fields |
object | Map of currency fields. The key is the field name as it appears in API responses; the value is its description |
data.batch |
array | Operations available in a batch request: create, update, delete |
Each field in the fields map is described by its type, the readonly flag, a label and a description. The label and description values are returned in English. Request headers do not switch the language.
Currency fields in the fields map:
| Field | Type | RO | Description |
|---|---|---|---|
id |
string | Currency code (USD, EUR, …). Set when the currency is created | |
amount |
number | Exchange rate | |
amountCnt |
number | Number of units for the rate | |
base |
boolean | Base currency | |
sort |
number | Sort order | |
fullName |
string | Name ($, €) | |
formatString |
string | Display format | |
decPoint |
string | Decimal separator | |
thousandsSep |
string | Thousands separator | |
decimals |
number | Decimal places | |
lid |
string | yes | ID of the site the currency is bound to |
dateUpdate |
datetime | yes | Date of the last update |
lang |
object | yes | Per-language display settings — format, name, separators, keyed by language ID. Returned by POST /v1/currencies and GET /v1/currencies/:id. Not returned by the GET /v1/currencies list |
Response example
{
"success": true,
"data": {
"fields": {
"id": { "type": "string", "readonly": false, "label": "Currency code", "description": "ISO 4217 currency code (USD, EUR, …). Set on creation." },
"amount": { "type": "number", "readonly": false, "label": "Exchange rate", "description": "Exchange rate against the base currency." },
"amountCnt": { "type": "number", "readonly": false, "label": "Rate nominal", "description": "Number of currency units the exchange rate is quoted for." },
"base": { "type": "boolean", "readonly": false, "label": "Base currency", "description": "Whether this is the Bitrix24 account's base currency." },
"sort": { "type": "number", "readonly": false, "label": "Sort", "description": "Sort order in the currency list." },
"fullName": { "type": "string", "readonly": false, "label": "Name", "description": "Human-readable currency name." },
"formatString": { "type": "string", "readonly": false, "label": "Format string", "description": "Display template for amounts in this currency (# is the number placeholder)." },
"decimals": { "type": "number", "readonly": false, "label": "Decimal places", "description": "Number of digits shown after the decimal point." },
"decPoint": { "type": "string", "readonly": false, "label": "Decimal point", "description": "Character used as the decimal separator." },
"thousandsSep": { "type": "string", "readonly": false, "label": "Thousands separator", "description": "Character used to separate thousands." },
"lid": { "type": "string", "readonly": true, "label": "Site", "description": "Identifier of the site the currency is bound to." },
"dateUpdate": { "type": "datetime", "readonly": true, "label": "Updated at", "description": "When the currency was last updated." },
"lang": { "type": "object", "readonly": true, "label": "Language bindings", "description": "Per-language display settings (format, name, separators), keyed by language id. Returned by POST /v1/currencies and GET /:id. Absent from list." }
},
"batch": ["create", "update", "delete"]
}
}
Error response example
403 — the API key lacks the crm scope:
{
"success": false,
"error": {
"code": "SCOPE_DENIED",
"message": "This endpoint requires 'crm' scope",
"hint": "This request needs the 'crm' scope, which the calling key does not carry. Add 'crm' to this key in the developer cabinet (or through the management API), then repeat the call.",
"cause": "key_scope_missing",
"requiredScope": "crm",
"keyScopes": ["task", "im"],
"fix": { "action": "edit_key_scopes", "via": "cabinet" },
"userMessage": "The app's API key lacks the “CRM” permission. You can add it in the key settings in the developer cabinet."
}
}
Errors
| HTTP | Code | Description |
|---|---|---|
| 403 | SCOPE_DENIED |
API key does not have the crm scope |
| 401 | MISSING_API_KEY |
The X-Api-Key header is missing |
| 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 errors — Errors.