Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

Crawlora Python SDK

Python client for the public Crawlora API. Use it to call Crawlora scraping, search, social, developer, marketplace, datasets, reviews, travel, media, books, maps, retail, ticketing, baseball, jobs, finance, prediction-market, brand, and usage endpoints with generated type stubs for editor and type-checker support.

  • Runtime: Python 3.10+
  • Auth: x-api-key
  • Default API base URL: https://api.crawlora.net/api/v1
  • Reference: operations and recipes

Install

Published on PyPI. The current release is a prerelease (1.33.0.dev1), so install it with --pre:

pip install --pre crawlora

(Git installs from beta tags also work, e.g. pip install "git+https://github.com/Crawlora-org/crawlora-python-sdk.git@latest".)

API Key

Create or sign in to your Crawlora account at crawlora.net, then create an API key in the dashboard.

read -r CRAWLORA_API_KEY
export CRAWLORA_API_KEY

First Request

import os
from crawlora import CrawloraClient

crawlora = CrawloraClient(api_key=os.environ["CRAWLORA_API_KEY"])

response = crawlora.bing.search(
    q="coffee shops",
    count=10,
)

print(response["data"]["results"][0])

Endpoint groups are generated from the public API contract, so common calls are available as methods such as crawlora.bing.search(...), crawlora.youtube.transcript(...), and crawlora.google.map_search(...).

Typed Dynamic Calls

You can also call by operation id. Literal operation ids are covered by the generated .pyi stubs, so type checkers can infer the matching parameter and response aliases:

response = crawlora.request("bing-search", {
    "q": "coffee shops",
    "count": 10,
})

Generated stubs include operation ids, endpoint groups, keyword parameters, enum values, response aliases, and reserved request options.

Configuration

crawlora = CrawloraClient(
    api_key=os.environ["CRAWLORA_API_KEY"],
    base_url="https://api.crawlora.net/api/v1",
    timeout=30,
    retries=2,
    retry_delay=0.25,
    headers={"x-client": "my-app"},
)

Per-request options are available through reserved keyword arguments. Header names are matched case-insensitively, so request headers can override default auth, user-agent, and content headers without duplicating variants such as x-api-key and X-API-KEY:

response = crawlora.bing.search(
    q="coffee shops",
    _timeout=10,
    _headers={"x-request-id": "search-001"},
)

Text Responses

Most endpoints return JSON. _response_type must be auto, json, or text. Endpoints that support alternate text output, such as YouTube transcripts, can opt into text mode:

transcript = crawlora.youtube.transcript(
    id="VIDEO_ID",
    format="text",
    _response_type="text",
)

print(transcript)

Errors

Failed API calls raise CrawloraError:

from crawlora import CrawloraError

try:
    crawlora.bing.search(q="coffee shops")
except CrawloraError as error:
    print(error.status, error.code, error.body)
    raise

The error includes status, optional API code, parsed body, raw_body, response headers, and the underlying parser or transport exception as __cause__ when available. Retryable responses honor positive Retry-After headers, capped at 30 seconds. Timeout-like transport failures use the Crawlora request timed out SDK message.

CrawloraError has three subclasses for branching on the failure kind: CrawloraClientError (4xx, request rejected), CrawloraServerError (5xx), and CrawloraNetworkError (transport failure or timeout before a response).

Async

AsyncCrawloraClient mirrors the synchronous client for asyncio applications:

from crawlora import AsyncCrawloraClient

crawlora = AsyncCrawloraClient(api_key="YOUR_API_KEY")
result = await crawlora.bing.search(q="coffee shops")

It reuses the same validation, retries, and Retry-After handling, running each request in a worker thread so the package stays dependency-free.

Pagination

client.paginate yields successive pages, advancing the page/offset query parameter and stopping when a page returns no data:

for page in crawlora.paginate("ebay-seller-feedback", {"seller": "acme"}):
    for review in page["data"]:
        print(review)

AsyncCrawloraClient.paginate is the async for equivalent. Override detection with page_param, start, step, and max_pages.

Examples

Runnable examples live under examples/ and skip cleanly when required environment variables are missing:

python3 examples/bing_search.py
python3 examples/youtube_transcript.py

Set CRAWLORA_BASE_URL to point examples at a staging or local API.

Package Notes

The import name is crawlora:

from crawlora import CrawloraClient

The package is published on PyPI as crawlora (a prerelease — pip install --pre crawlora). Git beta tags and the moving latest tag also work, as shown above.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

crawlora-1.33.0.dev1.tar.gz (318.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

crawlora-1.33.0.dev1-py3-none-any.whl (276.7 kB view details)

Uploaded Python 3

File details

Details for the file crawlora-1.33.0.dev1.tar.gz.

File metadata

  • Download URL: crawlora-1.33.0.dev1.tar.gz
  • Upload date:
  • Size: 318.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for crawlora-1.33.0.dev1.tar.gz
Algorithm Hash digest
SHA256 912b13d47ad17e6c6b6482fedeee482a4f1c769444a1c5d475b02488184183be
MD5 31fb19151c47d62c5301333d17ca6e37
BLAKE2b-256 759128981f5204d6213d3e9b77d63a414b332570b2c81071214180b4d39a02f3

See more details on using hashes here.

Provenance

The following attestation bundles were made for crawlora-1.33.0.dev1.tar.gz:

Publisher: publish-pypi.yml on Crawlora-org/crawlora-python-sdk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file crawlora-1.33.0.dev1-py3-none-any.whl.

File metadata

  • Download URL: crawlora-1.33.0.dev1-py3-none-any.whl
  • Upload date:
  • Size: 276.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for crawlora-1.33.0.dev1-py3-none-any.whl
Algorithm Hash digest
SHA256 04c7f07599e32d4239f6706221b420396997318d7cf95eeec26f607a6b31fc24
MD5 a81f5f270f84db4ec424c0ab0a4ee8f6
BLAKE2b-256 8a1669cbc1d5ea995b048a6ac4f5557b98f63ff59db0a7be5893e4de1c993455

See more details on using hashes here.

Provenance

The following attestation bundles were made for crawlora-1.33.0.dev1-py3-none-any.whl:

Publisher: publish-pypi.yml on Crawlora-org/crawlora-python-sdk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page