Тарифы  Услуги  API  Партнерам  О сервисе  Контакты 
8 (800) 080 7672
Бесплатно по Казахстану
 

Интеграция с сервисом (API)

API позволяет рассылать сообщения через ваши проекты и сервисы по протоколам HTTP/HTTPS, SMTP и SMPP. Готовые библиотеки на разных языках программирования подключаются к вашему проекту и помогают отправлять сообщения из любого места с помощью одной команды.


HTTP/HTTPS SMTP SMPP SOAP OMS SMS-команды Библиотеки и примеры кода

ОТПРАВКА СООБЩЕНИЙ

Отправка SMS-сообщения

Комментарии в SMS-сообщениях

Отправка на группу номеров

Отправка HLR-запроса

Отправка MMS-сообщения

Отправка e-mail сообщения

Отправка голосового сообщения (звонок)

Отправка viber-сообщения

Отправка telegram-сообщения

Использование префиксов при отправке сообщений

Управление шаблонами сообщений

Управление шаблонами операторов

Виртуальная отправка (режим тестирования)

Уведомления о событиях

УПРАВЛЕНИЕ РАССЫЛКАМИ

СТАТУСЫ СООБЩЕНИЙ

ПРОВЕРКА СОСТОЯНИЯ БАЛАНСА

УПРАВЛЕНИЕ КОНТАКТАМИ

УПРАВЛЕНИЕ КЛИЕНТАМИ

УПРАВЛЕНИЕ ИМЕНАМИ ОТПРАВИТЕЛЕЙ (SENDER ID)

ПОЛУЧЕНИЕ ДАННЫХ

РАЗНОЕ

Получение данных

Получение истории отправленных сообщений

Для получения списка отправленных SMS-сообщений необходимо вызвать методом GET или POST адрес: https://smsc.kz/sys/get.php?get_messages=1&login=<login>&psw=<password>
Описание параметров, передаваемых Серверу:

ПараметрЗначение
loginЛогин Клиента.
pswПароль Клиента (можно добавить или изменить на данной странице).
startНачальная дата в периоде, за который запрашивается история. Формат: 'дд.мм.гггг'. Максимальный период, за который возможен запрос истории отправленных сообщений, составляет полгода.
endКонечная дата в периоде. Если не указана, то возвращаются данные с начальной даты. Формат: 'дд.мм.гггг'.
phoneНомер или разделенный запятыми список номеров телефонов, для которых необходимо получить историю отправленных SMS-сообщений.
emailE-mail адрес или разделенный запятыми список адресов, для которых необходимо получить историю отправленных e-mail сообщений.
formatПризнак запроса e-mail сообщений.
0 (по умолчанию) – запрос SMS-сообщений.
8 – запрос e-mail сообщений.
cntКоличество возвращаемых в ответе сообщений. Максимальное значение равно 1000.
prev_idГлобальный идентификатор сообщения (параметр int_id в ответе Сервера), назначаемый Сервером автоматически. Используется для запроса списка сообщений, отправленных до сообщения с указанным идентификатором.
fmtФормат ответа Сервера.
0 – (по умолчанию) в виде строки (подробнее можно ознакомиться в описании ниже).
1 – вернуть ответ в виде параметров через запятую.
2 – ответ в xml формате.
3 – ответ в json формате.

В случае ошибки Сервер возвращает следующую строку:
  • ERROR = N (описание)

  • При fmt = 1:
    0,-N

  • При fmt = 2:
    <result>
    <error>описание</error>
    <error_code>N</error_code>
    </result>

  • При fmt = 3:
    {
    "error": "описание",
    "error_code": N
    }
N – номер ошибки, может принимать следующие значения:

ЗначениеОписание
1Ошибка в параметрах.
2Неверный логин или пароль. Также возникает при попытке отправки сообщения с IP-адреса, не входящего в список разрешенных Клиентом (если такой список был настроен Клиентом ранее).
3Сообщение не найдено.
4IP-адрес временно заблокирован.
9Попытка отправки более трех одинаковых запросов на получение истории исходящих сообщений в течение минуты либо более тридцати запросов в течение часа.
Данная ошибка возникает также при попытке отправки пятнадцати и более запросов одновременно с разных подключений под одним логином (too many concurrent requests).

В случае успешного запроса Сервер возвращает ответ в виде строки:
  • при fmt = 0:
    Status = <status>, check_time = <last_date>, err = <err>, send_date = <send_date>, phone = <phone>, mccmnc = <mccmnc>, country = <country>, operator = <operator>, region = <region>, cost = <cost>, sender_id = <sender>, status_name = <status_name>, message = <message>, type = <type>, ID = <id>, int_id = <int_id>, sms_cnt = <sms_cnt>, format = <format>, crc = <crc>
    ...

  • при fmt = 1:
    <status>,<last_timestamp>,<err>,<send_timestamp>,<phone>,<mccmnc>,<country>,<operator>,<region>,<cost>,<sender>,<status_name>, <message>,<type>,<id>,<int_id>,<sms_cnt>,<format>,<crc>
    ...

  • при fmt = 2:
    <list>
    <sms>
    <status>status</status>
    <last_date>last_date</last_date>
    <last_timestamp>last_timestamp</last_timestamp>
    <err>err</err>
    <send_date>send_date</send_date>
    <send_timestamp>send_timestamp</send_timestamp>
    <phone>phone</phone>
    <cost>cost</cost>
    <sender_id>sender</sender_id>
    <status_name>status_name</status_name>
    <message>message</message>
    <mccmnc>mccmnc</mccmnc>
    <country>country</country>
    <operator>operator</operator>
    <region>region</region>
    <type>type</type>
    <id>id</id>
    <int_id>int_id</int_id>
    <sms_cnt>sms_cnt</sms_cnt>
    <format>format</format>
    <crc>crc</crc>
    </sms>
    ...
    </list>

  • при fmt = 3:
    [{
    "status": <status>,
    "last_date": "<last_date>",
    "last_timestamp": <last_timestamp>,
    "err": <err>,
    "send_date": "<send_date>",
    "send_timestamp": <send_timestamp>,
    "phone": "<phone>",
    "cost": "<cost>",
    "sender_id": "<sender>",
    "status_name": "<status_name>",
    "message": "<message>",
    "mccmnc": "<mccmnc>",
    "country": "<country>",
    "operator": "<operator>",
    "region": "<region>",
    "type": <type>,
    "id": <id>,
    "int_id": "<int_id>",
    "sms_cnt": <sms_cnt>,
    "format": <format>,
    "crc": <crc>
    ...]

Где:
<status> – код статуса (список)
<last_date> – дата последнего изменения статуса. Формат DD.MM.YYYY hh:mm:ss.
<last_timestamp> – штамп времени последнего изменения статуса.
<err> – код ошибки, если сообщение не было доставлено.
<send_date> – дата отправки сообщения (формат DD.MM.YYYY hh:mm:ss).
<send_timestamp> – штамп времени отправки сообщения.
<phone> – номер телефона абонента.
<country> – название страны регистрации номера абонента.
<operator> – название оператора абонента.
<region> – регион регистрации номера абонента.
<type> – тип сообщения.
<cost> – стоимость сообщения.
<sender> – имя отправителя.
<status_name> – название статуса.
<message> – текст сообщения.
<mccmnc> – мобильный код страны и мобильный код оператора.
<id> – идентификатор сообщения.
<int_id> – глобальный идентификатор сообщения.
<sms_cnt> – количество частей в сообщении.
<format> – формат сообщения.
<crc> – контрольная сумма сообщения.

Примеры:

Получение последних десяти исходящих SMS-сообщений:

https://smsc.kz/sys/get.php?get_messages=1&login=alex&psw=123&cnt=10
Получение последнего исходящего SMS-сообщения, отправленного на номер "79999999999":

https://smsc.kz/sys/get.php?get_messages=1&login=alex&psw=123&phone=79999999999

Сервер не принимает более трех одинаковых запросов в течение минуты либо тридцати запросов в течение часа на получение истории исходящих сообщений для снижения нагрузки и защиты от ошибок и зацикливаний в программе на стороне Клиента.

Получение входящих сообщений

Для получения списка входящих сообщений необходимо вызвать методом GET или POST адрес: https://smsc.kz/sys/get.php?get_answers=1&login=<login>&psw=<password>
Описание параметров, передаваемых Серверу:

ПараметрЗначение
loginЛогин Клиента.
pswПароль Клиента (можно добавить или изменить на данной странице).
cntКоличество возвращаемых в ответе сообщений. Максимальное значение равно 10000.
hourПериод в часах, за который необходимо запросить входящие сообщения. Максимальное количество часов - 168 (7 дней).
after_idИдентификатор сообщения, начиная с которого необходимо вернуть входящие сообщения, за исключением самого after_id.
to_phoneНомер телефона Клиента, на который получены входящие сообщения.

В случае ошибки Сервер возвращает следующую строку:
  • ERROR = N (описание)

  • При fmt = 1:
    0,-N

  • При fmt = 2:
    <result>
    <error>описание</error>
    <error_code>N</error_code>
    </result>

  • При fmt = 3:
    {
    "error": "описание",
    "error_code": N
    }
N – номер ошибки, может принимать следующие значения:

ЗначениеОписание
1Ошибка в параметрах.
2Неверный логин или пароль. Также возникает при попытке отправки сообщения с IP-адреса, не входящего в список разрешенных Клиентом (если такой список был настроен Клиентом ранее).
4IP-адрес временно заблокирован.
9Попытка отправки более трех одинаковых запросов на получение списка входящих сообщений в течение минуты.
Данная ошибка возникает также при попытке отправки пятнадцати и более запросов одновременно с разных подключений под одним логином (too many concurrent requests).

В случае успешного запроса Сервер возвращает ответ в виде строки:
  • при fmt = 0:
    id = <id>, received = <received>, phone = <phone>, message = <message>, to_phone = <to_phone>, sent = <sent>
    ...

  • при fmt = 1:
    <id>,<received>,<phone>,<to_phone>,<sent>,<message>
    ...

  • при fmt = 2:
    <sms_answers>
    <sms>
    <id>id</id>
    <received>received</received>
    <phone>phone</phone>
    <message>message</message>
    <to_phone>to_phone</to_phone>
    <sent>sent</sent>
    </sms>
    ...
    </sms_answers>

  • при fmt = 3:
    [{
    "id": <id>,
    "received": "<received>",
    "phone": "<phone>",
    "message": "<message>",
    "to_phone": "<to_phone>",
    "sent": "<sent>"
    },
    ...]

Где:
<id> – идентификатор входящего сообщения, назначаемый Сервером автоматически.
<received> – дата получения сообщения Сервером. Формат DD.MM.YYYY hh:mm:ss.
<phone> – номер телефона абонента.
<message> – входящее сообщение.
<to_phone> – номер телефона получателя.
<sent> – дата отправки сообщения. Формат DD.MM.YYYY hh:mm:ss.


Примеры:

Получение списка из 10 первых входящих сообщений за текущие сутки:

https://smsc.kz/sys/get.php?get_answers=1&login=alex&psw=123&cnt=10
Получение списка из 15 первых входящих сообщений за последние 48 часов:

https://smsc.kz/sys/get.php?get_answers=1&login=alex&psw=123&hour=48&cnt=15
Получение списка из 20 первых входящих сообщений с идентификаторами, большими id="1234567":

https://smsc.kz/sys/get.php?get_answers=1&login=alex&psw=123&after_id=1234567&cnt=20

Сервер не принимает более трех одинаковых запросов в течение минуты на получение списка входящих сообщений для снижения нагрузки и защиты от ошибок и зацикливаний в программе на стороне Клиента.

Получение статистики

Для получения статистики отправленных сообщений необходимо вызвать методом GET или POST адрес: https://smsc.kz/sys/get.php?get_stat=1&login=<login>&psw=<password>&start=<date1>&end=<date2>
Описание параметров, передаваемых Серверу:

ПараметрЗначение
loginЛогин Клиента.
pswПароль Клиента (можно добавить или изменить на данной странице).
startНачальная дата в периоде, за который запрашивается статистика. Формат: 'дд.мм.гггг'.
endКонечная дата в периоде. Если не указана, то возвращаются данные с начальной даты. Формат: 'дд.мм.гггг'.
mycurФлаг, позволяющий выводить статистику в текущей валюте Клиента.
balance2Флаг, позволяющий получить статистику по отправленным сообщениям, оплаченным с электронного баланса.

В случае ошибки Сервер возвращает следующую строку:
  • ERROR = N (описание)

  • При fmt = 1:
    0,-N

  • При fmt = 2:
    <result>
    <error>описание</error>
    <error_code>N</error_code>
    </result>

  • При fmt = 3:
    {
    "error": "описание",
    "error_code": N
    }
N – номер ошибки, может принимать следующие значения:

ЗначениеОписание
1Ошибка в параметрах.
2Неверный логин или пароль. Также возникает при попытке отправки сообщения с IP-адреса, не входящего в список разрешенных Клиентом (если такой список был настроен Клиентом ранее).
4IP-адрес временно заблокирован.
9Попытка отправки более трех одинаковых запросов на получение списка входящих сообщений в течение минуты.
Данная ошибка возникает также при попытке отправки пятнадцати и более запросов одновременно с разных подключений под одним логином (too many concurrent requests).

В случае успешного запроса Сервер возвращает ответ в виде строки:
  • при fmt = 0:
    login = <login>, sms = <cnt>, credit = <credit>, debit = <debit>, currency = <currency>
    ...

  • при fmt = 1:
    <login>,<cnt>,<credit>,<debit>,<currency>
    ...

  • при fmt = 2:
    <list>
    <stat>
    <login>login</login>
    <sms>cnt</sms>
    <credit>credit</credit>
    <debit>debit</debit>
    <currency>currency</currency>
    </stat>
    ...
    </list>

  • при fmt = 3:
    [{
    "login": "<login>",
    "sms": "<cnt>",
    "credit": "<credit>",
    "debit": "<debit>",
    "currency": "<currency>"
    },
    ...]

Где:
<login> - логин Клиента.
<cnt> - количество сообщений.
<credit> - расход.
<debit> - приход.
<currency> - трехсимвольный код валюты.

Примеры:

Получение статистики в текущей валюте Клиента с "01.01.2014" по "01.02.2014" по безналичному балансу:

https://smsc.kz/sys/get.php?get_stat=1&login=alex&psw=123&mycur=1&start=01.01.2014&end=01.02.2014

Сервер не принимает более трех запросов в течение минуты на получение статистики для снижения нагрузки и защиты от ошибок и зацикливаний в программе на стороне Клиента.

Запрос тарифов

Для получения списка тарифов указанного Клиента необходимо вызвать методом GET или POST адрес: https://smsc.kz/sys/get.php?get_price=1&login=<login>&psw=<password>
Описание параметров, передаваемых Серверу:

ПараметрЗначение
loginЛогин Клиента.
pswПароль Клиента (можно добавить или изменить на данной странице).

В случае ошибки Сервер возвращает следующую строку:
  • ERROR = N (описание)

  • При fmt = 1:
    0,-N

  • При fmt = 2:
    <result>
    <error>описание</error>
    <error_code>N</error_code>
    </result>

  • При fmt = 3:
    {
    "error": "описание",
    "error_code": N
    }
N – номер ошибки, может принимать следующие значения:

ЗначениеОписание
1Ошибка в параметрах.
2Неверный логин или пароль. Также возникает при попытке отправки сообщения с IP-адреса, не входящего в список разрешенных Клиентом (если такой список был настроен Клиентом ранее).
4IP-адрес временно заблокирован.
9Попытка отправки более трех одинаковых запросов на получение списка тарифов в течение минуты.
Данная ошибка возникает также при попытке отправки пятнадцати и более запросов одновременно с разных подключений под одним логином (too many concurrent requests).

В случае успешного запроса Сервер возвращает ответ в виде набора строк:
  • при fmt = 0:
    zone = <zone>, name = <name>, api = <api>, mass = <mass>, mms = <mms>, hlr = <hlr>, call = <call>
    ...

    при наличии установленных индивидуальных тарифов по определенным операторам к ответу добавляется набор строк:
    mccmnc = <mccmnc>, cost = <cost>
    ...

    mail = <mail>

  • при fmt = 1:
    <zone>,<name>,<api>,<mass>,<mms>,<hlr>,<call>
    ...

    <mccmnc>,<cost>
    ...

    <mail>

  • при fmt = 2:
    <price>
    <zones>
    <zone name="<name>" api="<api>" mass="<mass>" mms="<mms>" hlr="<hlr>" call="<call>">zone</zone>
    ...
    </zones>
    <codes>
    <mccmnc cost="<cost>">mccmnc</mccmnc>
    ...
    </codes>
    <mail>mail</mail>
    </price>

  • при fmt = 3:
    {
    "zones": [{
    "zone": "<zone>",
    "name": "<name>",
    "api": "<api>",
    "mass": "<mass>",
    "mms": "<mms>",
    "hlr": "<hlr>",
    "call": "<call>"
    },
    ...
    {
    ...
    }],
    "codes": [{
    "mccmnc": "<mccmnc>",
    "cost": "<cost>"
    },
    ...
    {
    ...
    }],
    "mail": "<mail>"
    }

Где:
<zone> - тарифная зона.
<name> - название тарифной зоны (оператор, страна и т.п.).
<api> - стоимость SMS при отправке через API.
<mass> - стоимость SMS при отправке через личный кабинет.
<mms> - стоимость MMS-сообщения.
<hlr> - стоимость HLR-запроса.
<call> - стоимость голосового сообщения (звонок).
<mccmnc> - код страны и мобильного оператора, для которого установлен индивидуальный тариф.
<cost> - стоимость сообщения по данному индивидуальному тарифу.
<mail> - стоимость e-mail сообщения.

Примеры:

Получение списка тарифов:

https://smsc.kz/sys/get.php?get_price=1&login=alex&psw=123

Сервер не принимает более трех одинаковых запросов в течение минуты на получение списка тарифов для снижения нагрузки и защиты от ошибок и зацикливаний в программе на стороне Клиента.

Получение информации об операторе

Для получения информации об операторе абонента необходимо вызвать методом GET или POST адрес: https://smsc.kz/sys/info.php?get_operator=1&login=<login>&psw=<password>&phone=<phone>
Описание параметров, передаваемых Серверу:

ПараметрЗначение
loginЛогин Клиента.
pswПароль Клиента (можно добавить или изменить на данной странице).
phoneНомер телефона абонента или список номеров через запятую.

В случае ошибки Сервер возвращает следующую строку:
  • ERROR = N (описание)

  • При fmt = 1:
    0,-N

  • При fmt = 2:
    <result>
    <error>описание</error>
    <error_code>N</error_code>
    </result>

  • При fmt = 3:
    {
    "error": "описание",
    "error_code": N
    }
N – номер ошибки, может принимать следующие значения:

ЗначениеОписание
1Ошибка в параметрах.
2Неверный логин или пароль. Также возникает при попытке отправки сообщения с IP-адреса, не входящего в список разрешенных Клиентом (если такой список был настроен Клиентом ранее).
3Оператор не найден.
4IP-адрес временно заблокирован.
9Попытка отправки более трех одинаковых запросов или любых 100 запросов на получение информации об операторе абонента в течение минуты.
Данная ошибка возникает также при попытке отправки пятнадцати и более запросов одновременно с разных подключений под одним логином (too many concurrent requests).

При успешном запросе Сервер возвращает ответ в виде строки или списка строк при множественном запросе (в этом случае в ответ Сервера добавляется параметр "phone"):

  • при fmt = 0: country = <country>, operator = <operator>, region = <region>, mcc = <mcc>, mnc = <mnc>, tz = <tz>

  • при fmt = 1: <country>,<operator>,<region>,<mcc>,<mnc>,<tz>

  • при fmt = 2:
    <info>
    <country>country</country>
    <operator>operator</operator>
    <region>region</region>
    <mcc>mcc</mcc>
    <mnc>mnc</mnc>
    <tz>tz</tz>
    </info>

    При множественном запросе конструкции <info> заключаются в тег <list>.

  • при fmt = 3:
    {
    "country": "<country>",
    "operator": "<operator>",
    "region": "<region>",
    "mcc": "<mcc>",
    "mnc": "<mnc>",
    "tz": "<tz>"
    }

Где:
<phone> – номер телефона абонента.
<country> – название страны регистрации номера абонента.
<operator> – мобильный оператор абонента.
<region> – регион регистрации номера абонента.
<mcc> – числовой код страны абонента.
<mnc> – числовой код оператора абонента.
<tz> – часовой пояс региона регистрации номера абонента.


Пример:

Получение информации об операторе абонента с номером "79999999999":

https://smsc.kz/sys/info.php?get_operator=1&login=alex&psw=123&phone=79999999999

Сервер не принимает более трех одинаковых запросов в течение минуты на получение информации об операторе абонента для снижения нагрузки и защиты от ошибок и зацикливаний в программе на стороне Клиента.

Сервер также блокирует отправку более 100 запросов в течение минуты на получение данных об операторе для снижения нагрузки на базу данных.

Получение данных о короткой ссылке

Для получения информации о короткой ссылке необходимо вызвать методом GET или POST адрес: https://smsc.kz/sys/tinyurls.php?get=1&login=<login>&psw=<password>&link=<link>
или https://smsc.kz/sys/tinyurls.php?get=1&login=<login>&psw=<password>&id=<id>
Описание параметров, передаваемых Серверу:

ПараметрЗначение
loginЛогин Клиента.
pswПароль Клиента (можно добавить или изменить на данной странице).
linkИсходная полная ссылка.
idИдентификатор короткой ссылки. Назначается автоматически при создании.

Все параметры, которые содержат специальные символы (плюс, пробел, символы кириллицы и т.д.), должны быть закодированы при помощи функции urlencode для передачи в HTTP-запросе.


В случае ошибки Сервер возвращает следующую строку:
  • ERROR = N (описание)

  • При fmt = 1:
    0,-N

  • При fmt = 2:
    <result>
    <error>описание</error>
    <error_code>N</error_code>
    </result>

  • При fmt = 3:
    {
    "error": "описание",
    "error_code": N
    }
N – номер ошибки, может принимать следующие значения:

ЗначениеОписание
1Ошибка в параметрах.
2Неверный логин или пароль. Также возникает при попытке отправки сообщения с IP-адреса, не входящего в список разрешенных Клиентом (если такой список был настроен Клиентом ранее).
3Ссылка не найдена.
4IP-адрес временно заблокирован.
9Попытка отправки более трех одинаковых запросов на получение информации о короткой ссылке в течение минуты.
Данная ошибка возникает также при попытке отправки пятнадцати и более запросов одновременно с разных подключений под одним логином (too many concurrent requests).

В случае успешного запроса Сервер возвращает ответ в виде строки:

  • при fmt = 0: id = <id>, cnt = <cnt>, cnt_mon = <cnt_mon>, cnt_day = <cnt_day>, cnt_yes = <cnt_yes>, cnt_pmon = <cnt_pmon>, link = <link>

  • при fmt = 1: <id>,<cnt>,<cnt_mon>,<cnt_day>,<cnt_yes>,<cnt_pmon>,<link>

  • при fmt = 2:
    <result>
    <id>id</id>
    <cnt>cnt</cnt>
    <cnt_mon>cnt_mon</cnt_mon>
    <cnt_day>cnt_day</cnt_day>
    <cnt_yes>cnt_yes</cnt_yes>
    <cnt_pmon>cnt_pmon</cnt_pmon>
    <link>link</link>
    </result>

  • при fmt = 3:
    {
    "id": "<id>",
    "cnt": "<cnt>",
    "cnt_mon": "<cnt_mon>",
    "cnt_day": "<cnt_day>",
    "cnt_yes": "<cnt_yes>",
    "cnt_pmon": "<cnt_pmon>",
    "link": "<link>"
    }

Где:
<id> – идентификатор короткой ссылки.
<cnt> – количество всех переходов по короткой ссылке.
<cnt_mon> – количество переходов по короткой ссылке за месяц.
<cnt_day> – количество переходов по короткой ссылке за сегодня.
<cnt_yes> – количество переходов по короткой ссылке за вчера.
<cnt_pmon> – количество переходов по короткой ссылке в предыдущем месяце.
<link> – короткая ссылка.


Пример:

Получение информации о короткой ссылке с id="145142":

https://smsc.kz/sys/tinyurls.php?get=1&login=alex&psw=123&id=145142
Получение информации о короткой ссылке по полной исходной ссылке "mywebsite.ru":

https://smsc.kz/sys/tinyurls.php?get=1&login=alex&psw=123&link=mywebsite.ru

Сервер не принимает более трех одинаковых запросов в течение минуты на получение информации о короткой ссылке для снижения нагрузки и защиты от ошибок и зацикливаний в программе на стороне Клиента.




© 2003–2024 ТОО «СМС-центр»
Рег.номер 2207-1910-01-ТОО
support@smsc.kz
Контакты
Дизайн — Студия Артемия Лебедева
Информация о сайте
SMS-центр для Android Яндекс.Метрика