метод REST
scope: базовый
app.info
Показать информацию о приложении
Описание
Метод app.info возвращает информацию о приложении.
Без параметров.
Примеры запроса
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/app.info
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"auth": "**put_access_token_here**"
}' \
https://**put_your_bitrix24_address**/rest/app.info
// This snippet is an ES module: top-level await requires type="module" or a bundler.
// $b24 is an already-initialized SDK instance (see the SDK "Get started" guide).
import { Text } from '@bitrix24/b24jssdk'
import type { B24Frame } from '@bitrix24/b24jssdk'
declare const $b24: B24Frame
// Shape of the payload returned in result (match the "response handling" section of the page)
type AppInfoResult = {
ID: number
CODE: string
VERSION: number
STATUS: string
INSTALLED: boolean
PAYMENT_EXPIRED: string
DAYS: number | null
LANGUAGE_ID: string
LICENSE: string
LICENSE_TYPE: string
LICENSE_FAMILY: string
}
try {
const response = await $b24.actions.v2.call.make<AppInfoResult>({
method: 'app.info',
params: {},
requestId: Text.getUuidRfc4122()
})
// The payload is available only on a successful response
if (!response.isSuccess) {
console.error(response.getErrorMessages().join('; '))
} else {
const result = response.getData()!.result
console.info(result.ID, result.CODE, result.STATUS, result.LICENSE)
}
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
<!-- Load the SDK (UMD build); it is exposed as the global B24Js -->
<script src="https://unpkg.com/@bitrix24/b24jssdk@1/dist/umd/index.min.js"></script>
<script>
async function getAppInfo() {
try {
// Initialize the SDK inside a Bitrix24 frame
const $b24 = await B24Js.initializeB24Frame()
const response = await $b24.actions.v2.call.make({
method: 'app.info',
params: {},
requestId: B24Js.Text.getUuidRfc4122()
})
// The payload is available only on a successful response
if (!response.isSuccess) {
console.error(response.getErrorMessages().join('; '))
return
}
const result = response.getData().result
console.info(result.ID, result.CODE, result.STATUS, result.LICENSE)
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
}
document.addEventListener('DOMContentLoaded', getAppInfo)
</script>
from b24pysdk.errors import BitrixAPIError, BitrixSDKException
try:
bitrix_response = client.app.info().response
result = bitrix_response.result
print(result)
except BitrixAPIError as error:
print(
"Ошибка Bitrix API",
f"error: {error.error}",
f"error_description: {error.error_description}",
sep="\n",
)
except BitrixSDKException as error:
print(f"Ошибка Bitrix SDK: {error.message}")
except Exception as error:
print(f"Непредвиденная ошибка: {error}")
try {
$applicationInfoResult = $serviceBuilder->getMainScope()->main()->getApplicationInfo();
$itemResult = $applicationInfoResult->applicationInfo();
print("ID: " . $itemResult->ID . PHP_EOL);
print("Code: " . $itemResult->CODE . PHP_EOL);
print("Scope: " . json_encode($itemResult->SCOPE, JSON_THROW_ON_ERROR) . PHP_EOL);
print("Version: " . $itemResult->VERSION . PHP_EOL);
print("Status: " . $itemResult->getStatus()->getStatusCode() . PHP_EOL);
print("Installed: " . ($itemResult->INSTALLED ? 'true' : 'false') . PHP_EOL);
print("Payment Expired: " . $itemResult->PAYMENT_EXPIRED . PHP_EOL);
print("Days: " . $itemResult->DAYS . PHP_EOL);
print("License: " . $itemResult->LICENSE . PHP_EOL);
} catch (Throwable $e) {
print("Error: " . $e->getMessage() . PHP_EOL);
}
BX24.callMethod(
"app.info",
{},
function(result)
{
if(result.error())
console.error(result.error());
else
console.log(result.data());
}
);
require_once('crest.php');
$result = CRest::call(
'app.info',
[]
);
echo '<PRE>';
print_r($result);
echo '</PRE>';
// client и ctx уже созданы — см. раздел «SDK для Go»
res, err := client.Core().Call(ctx, "app.info", nil)
if err != nil {
return fmt.Errorf("app.info: %w", err)
}
var item struct {
ID b24.ID `json:"ID"`
Code string `json:"CODE"`
Version int `json:"VERSION"`
Status string `json:"STATUS"`
Installed bool `json:"INSTALLED"`
PaymentExpired string `json:"PAYMENT_EXPIRED"`
}
if err := json.Unmarshal(res.Result, &item); err != nil {
return fmt.Errorf("разбор ответа: %w", err)
}
fmt.Println(item.ID, item.Code)
Ответ
HTTP-статус: 200
{
"result": {
"ID": 5,
"CODE": "telefum24.kp10",
"VERSION": 4,
"STATUS": "F",
"INSTALLED": true,
"PAYMENT_EXPIRED": "N",
"DAYS": null,
"LANGUAGE_ID": "ru",
"LICENSE": "ru_ent10000",
"LICENSE_TYPE": "ent10000",
"LICENSE_FAMILY": "ent"
},
"time": {
"start": 1722841503.0585,
"finish": 1722841503.09885,
"duration": 0.0403509140014648,
"processing": 0.00533103942871094,
"date_start": "2024-08-05T07:05:03+00:00",
"date_finish": "2024-08-05T07:05:03+00:00",
"operating": 0
}
}
Возвращаемые данные
result
object
Объект содержит информацию о приложении:
ID— локальный идентификатор приложения в Битрикс24CODE— код приложенияVERSION— установленная версия приложенияSTATUS— статус приложения. Возможные значения:
-F(Free) — бесплатное
-D(Demo) — демо-версия
-T(Trial) — триальная версия (ограниченная по времени)
-P(Paid) — оплаченное приложение
-L(Local) — локальное приложение
-S(Subscription) — подписное приложениеINSTALLED— [true|false] cтатус установленности приложения. Если приложение не установлено, оно доступно только администраторам Битрикс24 и должно сигнализировать об окончании установки при помощи вызова BX24.installFinish. Пока значениеfalse, Битрикс24 не доставляет приложению события и не показывает его встройки, даже если event.bind и placement.bind отработали успешноPAYMENT_EXPIRED— [Y|N] флаг, показывающий, истек ли оплаченный период или период триального использованияDAYS— количество дней, оставшееся до конца оплаченного периода или периода триального использованияLICENSE— обозначение тарифа с указанием региона в виде префикса.Состоит из базового языка Битрикс24 и идентификатора тарифного плана. В случае с тарифами, состав которых менялся при сохранении публичного наименования (как CRM+, Команда и Компания), понять, какой именно тариф действует по этому полю нельзя. Примеры вариантов значений:
-ru_project— тариф Проект
-ru_basic— тариф Базовый
-ru_std— тариф Стандартный
-ru_pro100— тариф Профессиональный
-ru_ent250— Энтерпрайз 250
-ru_ent500— Энтерпрайз 500
-ru_ent1000— Энтерпрайз 1000
-ru_ent2000— Энтерпрайз 2000
-ru_ent10000— Энтерпрайз 10000
time
time
Информация о времени выполнения запроса
Обработка ошибок
HTTP-статус: 400
{
"error":"ACCESS_DENIED",
"error_description":"Access denied! Application context required"
}
| Код | Описание | Значение |
|---|---|---|
ACCESS_DENIED |
Access denied! Application context required | Метод вызван вне контекста приложения |

