Войти

Обзор

У каждой учётной записи Crawlbase есть два токена, которые создаются автоматически при регистрации. Оба аутентифицируют одну и ту же учётную запись и используют общую квоту - они лишь направляют запросы через разную инфраструктуру.

Normal token
по умолчанию
Для обычных HTTP-запросов к API и статическим страницам. Самый быстрый, самый дешёвый. Используйте его, если вам не нужен рендеринг JavaScript.
JavaScript token
JS
Маршрутизирует запросы через настоящий headless-экземпляр Chrome. Необходим для SPA, бесконечной прокрутки и любых сайтов, рендерящих контент на стороне клиента.
Где найти токены

Оба токена видны в вашей панели управления сразу после регистрации. Они выглядят примерно так: aBcD1234efGh5678 - около 22 буквенно-цифровых символов.

Как пройти аутентификацию

Передавайте ваш токен в виде query-параметра token в каждом запросе. Это вся схема аутентификации.

GEThttps://api.crawlbase.com/?token=YOUR_TOKEN&url=...
curl 'https://api.crawlbase.com/?token=YOUR_TOKEN&url=https%3A%2F%2Fexample.com'
from crawlbase import CrawlingAPI

# Pass your token at construction; reuse the client across requests
api = CrawlingAPI({'token': 'YOUR_TOKEN'})
res = api.get('https://example.com')
const { CrawlingAPI } = require('crawlbase');

const api = new CrawlingAPI({ token: process.env.CRAWLBASE_TOKEN });
const res = await api.get('https://example.com');
require 'crawlbase'

api = Crawlbase::API.new(token: ENV['CRAWLBASE_TOKEN'])
res = api.get('https://example.com')
 getenv('CRAWLBASE_TOKEN')]);
$res = $api->get('https://example.com');
package main

import (
    "os"
    "github.com/crawlbase/crawlbase-go"
)

func main() {
    api := crawlbase.NewCrawlingAPI(os.Getenv("CRAWLBASE_TOKEN"))
    res, _ := api.Get("https://example.com")
    _ = res
}

Выбор подходящего токена

Краткое дерево решений:

Тип сайтаТокенПочему
REST/GraphQL APIsNormalУже возвращает JSON, рендеринг не нужен
HTML с серверным рендерингом (Wordpress, классический e-commerce)NormalКонтент присутствует в первоначальном ответе
SPA (React/Vue/Angular/Svelte)JavaScriptИсходный HTML пустой; нужно выполнение JS
Бесконечная прокрутка, ленивая загрузка сетокJavaScriptТребуется прокрутка/ожидание для заполнения
Сайты с защитой от ботов (Cloudflare и др.)JavaScriptДля прохождения нужен отпечаток браузера

Если не уверены, сначала попробуйте Normal. Если в ответе нет контента, который вы видите в браузере, переключитесь на JavaScript.

Безопасность и ротация

Относитесь к токенам как к паролям. Не коммитьте их в систему контроля версий, не вставляйте в тикеты поддержки и меняйте их при подозрении на утечку.

  • Используйте переменные окружения: никогда не зашивайте токены в исходный код.
  • Выполняйте ротацию через панель управления: кнопка «Reset token» генерирует новое значение и немедленно делает старое недействительным.
  • Один token на окружение: держите разработку и продакшен на разных учётных записях, чтобы утечка в одной не отравила другую.
  • Никогда не раскрывайте токены на стороне клиента: вызовы Crawlbase должны исходить из вашего бэкенда. Token в браузерном JavaScript - это token в руках у всех.
Не отправляйте токены в браузер

Токены на стороне браузера утекают через DevTools, сетевые логи, source map и общие скриншоты. Всегда проксируйте вызовы Crawlbase через собственный бэкенд.

Ошибки, связанные с аутентификацией

Если с вашим токеном что-то не так, вы получите один из следующих ответов:

401 Unauthorized
auth
Токен отсутствует, имеет неверный формат или был сброшен. Перепроверьте значение и убедитесь, что используете правильный токен для типа запроса.
402 Payment Required
quota
На аккаунте закончились кредиты или истёк пробный период. Пополните баланс в панели управления.
403 Forbidden
auth
Токен действителен, но не имеет доступа к этому продукту (например, использование Normal token на эндпоинте, требующем JS).

Полный список кодов статуса см. в разделе Status Codes.

Дальнейшие шаги

Сколько запросов в секунду может обрабатывать ваш токен.
Все коды, которые возвращает Crawlbase, и их значение.
Теперь, когда вы умеете аутентифицироваться, изучите API.