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)
| File | Size | Uploaded | |
|---|---|---|---|
| crawlora_duckduckgo-0.1.1.tar.gz | 22.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|