Skip to main content

crawlora-duckduckgo — DuckDuckGo API client for Python

Python client for Crawlora's hosted DuckDuckGo API. It exposes 6 API endpoints covering web, news, image, video, and shopping search plus query suggestions. Requests go to Crawlora; the package does not run a browser or scrape DuckDuckGo locally. A Crawlora account and CRAWLORA_API_KEY are required, and API use is billed under your Crawlora account. Crawlora is independent from and not endorsed by DuckDuckGo or its owners.

Install

python -m pip install crawlora-duckduckgo

Get an API key

Create an account at crawlora.net, then open the Crawlora console for API-key setup. Set your key in the shell before running the client:

export CRAWLORA_API_KEY="your-crawlora-api-key"

Use

Save this example as example.py, then run python example.py after installing the package and setting your API key.

import os

from crawlora_duckduckgo import DuckDuckGoClient

api_key = os.environ.get("CRAWLORA_API_KEY")
if not api_key:
    raise RuntimeError("Set CRAWLORA_API_KEY before running this example.")

with DuckDuckGoClient(api_key=api_key) as client:
    result_1 = client.search(q='open source web crawler')
    print(result_1)
    result_2 = client.news(q='technology')
    print(result_2)

The package also exports Client as an alias for DuckDuckGoClient. Operation methods are available directly in snake_case and through the duckduckgo group. The async package client is AsyncDuckDuckGoClient; see the online endpoint and parameter reference and runnable example.

Async usage

The package also exports AsyncClient for asynchronous requests:

import asyncio
import os

from crawlora_duckduckgo import AsyncClient

async def main():
    api_key = os.environ.get("CRAWLORA_API_KEY")
    if not api_key:
        raise RuntimeError("Set CRAWLORA_API_KEY before running this example.")
    async with AsyncClient(api_key=api_key) as client:
        result_1 = await client.search(q='open source web crawler')
        print(result_1)

asyncio.run(main())

See the runnable example for a complete usage example.

Supported DuckDuckGo API endpoints

This package exposes every route below through direct snake_case methods and the duckduckgo group. See the endpoint and parameter reference for complete input details.

Method Endpoint API operation Description
GET /duckduckgo/image duckduckgo-image Search DuckDuckGo image results
GET /duckduckgo/news duckduckgo-news Search DuckDuckGo news results
GET /duckduckgo/search duckduckgo-search Search DuckDuckGo web results
GET /duckduckgo/shopping duckduckgo-shopping Search DuckDuckGo shopping results
GET /duckduckgo/suggest duckduckgo-suggest Suggest DuckDuckGo search queries
GET /duckduckgo/video duckduckgo-video Search DuckDuckGo video results

Configuration

Pass your key through api_key or read CRAWLORA_API_KEY from the environment. Keep credentials out of source control and logs. Requests go to Crawlora's hosted API.

Metadata

Release files for crawlora-duckduckgo 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for crawlora-duckduckgo 0.1.1
File Size Uploaded
crawlora_duckduckgo-0.1.1.tar.gz 22.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for crawlora-duckduckgo 0.1.1
File Interpreter ABI Platform
crawlora_duckduckgo-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 45.9 kB

Release files / crawlora_duckduckgo-0.1.1.tar.gz

Download URL crawlora_duckduckgo-0.1.1.tar.gz
Size 22.4 kB
Tags Source
SHA-256 checksum
How to use checksums
113683556f05252e5e1c7a1e08ce1a8eaa43a6d07cc27a468801303bf9f231f9
BLAKE2b-256 checksum
How to use checksums
678b5168df20ce94474577d29b39a595c458ecf1e517a8544b3cd1ea274135ba
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / crawlora_duckduckgo-0.1.1-py3-none-any.whl

Download URL crawlora_duckduckgo-0.1.1-py3-none-any.whl
Size 23.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d62aed269ec512d81767df5119516614b8d34000cb37b7cee535804800df41c4
BLAKE2b-256 checksum
How to use checksums
0fff895ffee6ba9db19071b26c139a6de5ddb85cc88ac1f76fc1e9af1baf59f3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release files

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