Skip to main content

Tests Documentation PyPI

NOSIBLE

NOSIBLE Python SDK

nosible is the official synchronous Python SDK for NOSIBLE's worldwide web-surveillance platform. It provides SEARCH for retrieving dated, ranked web sources and WORLD for accessing structured, point-in-time verified events for models, research, and backtesting.

Version 0.4.0 supports every SEARCH v2.1 endpoint and exposes WORLD through the client.world namespace. Existing 0.3 Search models and convenience methods remain available.

Installation

pip install "nosible==0.4.0"

Python 3.9 or newer is supported.

Authentication

Create an API key at app.nosible.com, then set NOSIBLE_API_KEY or pass the key to the client.

$Env:NOSIBLE_API_KEY="nos_sk_..."
from nosible import Nosible

client = Nosible()
# Or: client = Nosible(nosible_api_key="nos_sk_...")

Search uses the api-key request header. Authenticated World routes use bearer authentication. World version is public and always credential-free. Search Schema and Markdown delivery requests are sent without credentials first; if a deployment responds with an authentication error, the SDK retries once with SDK-managed bearer authentication when an API key is configured. Credentials configured on an injected HTTP client are replaced for every SDK request and are never forwarded to presigned Bulk and Time Search download URLs.

Search v2.1

from nosible import Nosible

with Nosible() as client:
    results = client.fast_search(
        question="What is changing in semiconductor capacity?",
        companies=["NVIDIA", "TSMC"],
        collection="this-week",
        deduplicate=True,
        n_results=25
    )

    for result in results:
        print(result.title, result.similarity, result.url)

The client covers all 11 Search endpoints:

  • search for Cybernaut agentic search
  • fast_search and fast_searches
  • rich_search
  • bulk_search
  • time_search
  • scrape_url
  • topic_trend
  • save_search, get_searches, and delete_search
  • get_limits

Bulk and Time Search handle polling, Fernet decryption, and current Zstandard or legacy gzip payloads. bulk_search returns a ResultSet; time_search preserves the interval-bucket response. Transient download responses are retried, and authentication configured on an injected httpx.Client is explicitly disabled for presigned download hosts.

fast_searches accepts question strings, list[Search], or SearchSet. Shared filters and retrieval options are applied consistently to every search whose model does not override them. Non-null model values take precedence, including False for the optional certain filter. Expansion generation is enabled when either the batch or the individual model opts in. Requests run concurrently up to the client's configured concurrency while results retain input order.

For compatibility, Fast Search defaults to 100 results and 128 context tokens, while the service schema defaults are 10 and 256. Requests for fewer than 10 results are truncated locally.

World

from nosible import Nosible

with Nosible() as client:
    page = client.world.entity_events(
        entity_type="ORG",
        name="NVIDIA",
        from_="2026-07-01",
        to="2026-07-20",
        include="event_lite",
        include_live=True
    )

    for event in page:
        print(event.event_id, event.event["title"])

    neighbors = client.world.similar_events(
        date="2026-07-20",
        event_id=page[0].event_id,
        floor=0.35
    )

client.world covers dated events, entity/ticker/ontology timelines, global search and aggregation, resolve and metadata routes, dated search, event details and coverage, snapshots, and all Markdown delivery routes. WorldEvent and WorldEventPage preserve unknown fields so newer server schemas can round-trip without data loss. Snippet does the same for Search scrape payloads, including the distinction between an omitted field and an explicit null.

Errors and custom transports

HTTP failures raise subclasses of NosibleAPIError, which remains a ValueError for backwards compatibility. Errors expose status_code, code, method, path, body, and retry_after.

An httpx.Client and alternate merged API origin can be injected for testing or private deployments:

import httpx
from nosible import Nosible

http = httpx.Client()
client = Nosible(
    base_url="https://staging.example/api",
    http_client=http
)
client.close()  # Does not close an injected client.
http.close()

Reference

© 2026 NOSIBLE Inc. Privacy · Terms

Metadata

Release files for nosible 0.4.0

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

Source distribution (sdist)

Source distribution for nosible 0.4.0
File Size Uploaded
nosible-0.4.0.tar.gz 51.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for nosible 0.4.0
File Interpreter ABI Platform
nosible-0.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 104.1 kB

Release files / nosible-0.4.0.tar.gz

Download URL nosible-0.4.0.tar.gz
Size 51.8 kB
Tags Source
SHA-256 checksum
How to use checksums
456e5e457749a68ac7060fa47799ee44c41ef4aaf035b15c7f8ec1127e462606
BLAKE2b-256 checksum
How to use checksums
6b867939637e68e7d4356255b241fbc69f678971819e452f97829e8914423af0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 7, 2026.

Transparency log

Release files / nosible-0.4.0-py3-none-any.whl

Download URL nosible-0.4.0-py3-none-any.whl
Size 52.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b1f5aa6fcb8a1a5f506a661403fd673f0bcba1b1f7bab0be7f0905c473ae742b
BLAKE2b-256 checksum
How to use checksums
b4ace1b71dfb555c7de84758975e385416edec0d95df9db1653c4fb7dfd4c80a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 7, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.4.0 This release

2 release files

0.3.9

2 release files

0.3.6

2 release files

0.3.5

2 release files

0.3.4

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.2.10

2 release files

0.2.9

2 release files

0.2.8

2 release files

0.2.7

2 release files

0.2.6

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

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