Limites
Règles générales d’interaction avec l’API
- Vous devez essayer de minimiser le nombre de requêtes API inutiles, en particulier pour les méthodes campaign/info et campaign/stat.
- Il n’est pas nécessaire de demander en permanence les informations que vous pouvez stocker de votre côté.
- Il n’est pas nécessaire de demander en permanence des informations sur les campagnes inactives — cela n’a tout simplement aucun sens, les réponses seront toujours les mêmes.
- Un nombre raisonnable de requêtes API pour une campagne est de 1–2–3, jusqu’à un maximum de 10–20 par jour. Le nombre raisonnable de requêtes pour la méthode campaign/stat n’est pas supérieur à 1 par heure. Ainsi, un nombre raisonnable de requêtes pour un compte (jeton) est de l’ordre de quelques centaines, jusqu’à un maximum de 1000 par jour. Si vous prévoyez de faire un nombre de requêtes nettement plus élevé — nous sommes convaincus à 99 % que vous utilisez un algorithme qui peut être optimisé. Si vous êtes absolument certain d’avoir besoin de plus de requêtes, coordonnez d’abord cela avec le service d’assistance.
- Si vous recevez une réponse avec error_code=37 et erreur=Temporairement indisponible, réessayez plus tard, vous devez répéter la même requête pas avant 5 minutes.
- En cas de violation systématique de ces règles, l’accès à l’API peut être restreint.
Tous les utilisateurs de l'API sont soumis à une limite quotidienne de requêtes. Les informations relatives à cette limite sont disponibles dans les en-têtes de la réponse à la requête API :
- X-RateLimit-Limit : limite quotidienne
- X-RateLimit-Remaining : nombre de requêtes restantes pouvant être effectuées avant « X-RateLimit-Reset »
- X-RateLimit-Reset : heure à laquelle la limite quotidienne sera réinitialisée (horodatage Unix)
Exemple d'appel de la méthode :
<?php
$post = array(
'token' => $token,
'id' => 9999
);
if ($curl = curl_init()) {
curl_setopt($curl, CURLOPT_URL, 'https://www.ipweb.ru/api/v2/category/delete');
curl_setopt($curl, CURLOPT_HEADER, 1);
curl_setopt($curl, CURLOPT_RETURNTRANSFER,true);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $post);
$response = curl_exec($curl);
$header_size = curl_getinfo($curl, CURLINFO_HEADER_SIZE);
$headers_string = substr($response, 0, $header_size);
$headers_string = preg_replace('~\s+\Z~', '', $headers_string);
$headers_array = explode(PHP_EOL, $headers_string);
$headers = [];
if (is_array($headers_array)) {
foreach ($headers_array as $value) {
if (empty($value)) {
continue;
}
list($tmp_key, $tmp_value) = explode(':', $value, 2);
if ($tmp_value) {
$headers[trim($tmp_key)] = trim($tmp_value);
} else {
$headers[] = trim($tmp_key);
}
}
}
curl_close($curl);
$out = substr($response, $header_size);
print_r($headers_groups);
print_r($out);
}
// Результат:
{
.
.
.
"X-RateLimit-Limit": 1000
"X-RateLimit-Remaining": 992
"X-RateLimit-Reset": 1734987600
}
{
"status": "ok",
"error_code": 0
}