Skip to content

Release 2026-11-05 - #9

Merged
Tariod merged 2 commits into
mainfrom
release/2026-11-05
Nov 6, 2026
Merged

Tariod merged 2 commits into
mainfrom
release/2026-11-05

Conversation

@Tariod

@Tariod Tariod commented Nov 6, 2026 •

Copy link
Copy Markdown
Collaborator

[2.0.0] - 2026-11-05

Breaking

  • Python 3.11+ is required. 3.9 and 3.10 are no longer supported.
  • Sync and async clients are separate. V1Api is sync only. Async calls use AsyncV1Api and AsyncApiClient. The *_async methods and ApiClient.request_async / aclose are gone.
  • SourceGroupsApi, WatchlistsApi, and SupplementalEndpointsApi are gone. Those operations are methods on V1Api and AsyncV1Api.
  • V1Api can take an API key directly: with V1Api(api_key="...") as api. Passing both an existing client and api_key / base_url / timeout / configuration raises ValueError. A context manager closes a client the API object created.
  • ApiClient no longer owns both a sync and an async connection pool. Use AsyncApiClient for async requests. The default async timeout is 5 minutes.
  • Query datetimes are sent as UTC YYYY-MM-DDTHH:MM:SS with no offset.
  • search_summarizer no longer accepts size or show_num_results.
  • The package is built with uv (uv_build) instead of Poetry. The version is fixed at 2.0.0 in pyproject.toml and openapi-config.yaml. The license is MIT.

Added

  • Webhook verification via Webhooks.construct_event. It checks the perigon-signature header (t=<unix-ms>,v1=<hex hmac>) with HMAC-SHA256 over {timestamp}.{raw body}. The default tolerance is 5 minutes. Failures raise SignatureVerificationError. See examples/webhooks.py.
  • Monitors: create, get, list, update, activate, pause, and archive, plus events, newsletters, and summaries.
  • Contact points: create, get, list, update, and delete.
  • Social search: LinkedIn posts, company posts, and person activity; Reddit posts; X posts.
  • get_limits for API key limits.
  • Company ISIN filters: company_isin and company_symbol_isin on article, story, and summarizer search, with matching exclude filters on articles and the summarizer. symbol_isin on company search.
  • Journalist search filters: sort_by and location (location_country, location_state, location_county, location_city, location_area).
  • HTTP 409 and 422 map to ConflictException and UnprocessableEntityException.
  • Offline tests against a fake HTTP transport. Live checks are uv run pytest --integration.

Changed

  • The SDK is regenerated with OpenAPI Generator 7.27.0 into src/perigon. scripts/generate.sh downloads the spec, applies scripts/spec-filters.json, then lints, typechecks, and tests.
  • Models and operations follow the current Perigon OpenAPI spec, including signals, news clusters, and source-group and watchlist DTOs.
  • Docs and examples use the new client and https://perigon.io/docs/api/intro.

@Tariod Tariod self-assigned this Nov 6, 2026
@Tariod
Tariod force-pushed the release/2026-11-05 branch from 1dfccd6 to 09af0a7 Compare November 6, 2026 15:27
@Tariod
Tariod marked this pull request as ready for review November 6, 2026 16:36
@Tariod
Tariod merged commit 1e4e474 into main Nov 6, 2026
7 checks passed
@Tariod
Tariod deleted the release/2026-11-05 branch November 6, 2026 16:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant