Skip to main content

Official Python SDK for the Caesar search API — web search with provenance, built for agents.

Project description

caesar-search (Python)

Official Python SDK for the Caesar search API — web search with provenance, built for agents.

Quickstart

# pip install caesar-search    (or: uv add caesar-search)
from caesar_search import Caesar

client = Caesar()  # requires CAESAR_API_KEY (get one at app.trycaesar.com)
results = client.search("rust async runtime comparison", max_results=5)
doc = client.read(results.results[0].doc_id, query="which runtime is fastest")
client.feedback("result_helpful", search_id=results.search_id, doc_id=doc.doc.doc_id)

Clients

  • Caesar — synchronous; AsyncCaesar — same surface with async/await. Both support context managers.
  • Methods: search(), read() (doc_id or URL; start_char= continues truncated reads), feedback(), and the Files knowledge base: upload_file(), list_files(), delete_file(), index_files(), file_index_status().
  • Responses are typed pydantic v2 models generated from the public OpenAPI spec; provenance fields (doc_id, search_id, capture_id, canonical/source URLs, crawl dates) are preserved verbatim.
  • client.with_raw_response.search(...) returns the raw httpx.Response.
  • Retries: 429/5xx with capped exponential backoff honoring Retry-After (max_retries= to tune, 0 to disable).
  • Config: api_key= / CAESAR_API_KEY is required for the public API; base_url= / CAESAR_BASE_URL may point at a self-hosted deployment.

File uploads (workspace knowledge base)

Upload your organization's documents and search them alongside the web. upload_file() presigns, PUTs the bytes straight to storage (the API key never reaches storage), and by default triggers an incremental indexing run:

upload = client.upload_file("report.pdf")  # path, or bytes with filename=
status = client.file_index_status(upload.sync_id)  # poll until completed
hits = client.search(
    "q3 revenue",
    extra_body={"scope": {"indexes": ["workspace"], "workspace_id": "<your-org-id>"}},
)

client.list_files()          # FileListResponse: name, size, last_modified
client.delete_file("report.pdf")

Batch several uploads with index=False, then call index_files() once. Supported types match the indexer (pdf, office documents, text, markdown, csv); one file may be up to the server's max_object_bytes (100 MB by default).

Errors

CaesarErrorAPIConnectionError / APITimeoutError and APIStatusError (with .status_code, .code, .message, .request_id) → AuthenticationError (401/403), MissingAPIKeyError (local missing_api_key preflight), RateLimitError (429).

License

MIT

Project details


Download files

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

Source Distribution

caesar_search-0.5.0.tar.gz (94.4 kB view details)

Uploaded Source

Built Distribution

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

caesar_search-0.5.0-py3-none-any.whl (17.6 kB view details)

Uploaded Python 3

File details

Details for the file caesar_search-0.5.0.tar.gz.

File metadata

  • Download URL: caesar_search-0.5.0.tar.gz
  • Upload date:
  • Size: 94.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for caesar_search-0.5.0.tar.gz
Algorithm Hash digest
SHA256 5e54c44723044e5d245866e74c3b9ef5cb661b52db68ead1ccb9b82884585333
MD5 01aa66d931114b3775f7394e54daf261
BLAKE2b-256 02fe9c9b0b5310dad3dfc7b112963c9736cecc22612cdd1ef90765f89e357cfd

See more details on using hashes here.

Provenance

The following attestation bundles were made for caesar_search-0.5.0.tar.gz:

Publisher: release.yml on caesar-data/caesar-search-python

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

File details

Details for the file caesar_search-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: caesar_search-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 17.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for caesar_search-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6cc315dbb059b5c5e5a25421051b7e1da44f4dc6229a170c884a569640080b8f
MD5 e0807e035cb34053af8f7b127702dfef
BLAKE2b-256 bc70785883936d16cf480a98520a55e92f4d5535311e1c6b7665235cf6c22d9a

See more details on using hashes here.

Provenance

The following attestation bundles were made for caesar_search-0.5.0-py3-none-any.whl:

Publisher: release.yml on caesar-data/caesar-search-python

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

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page