Repository navigation
Release: contacts runs, deprecation warnings, no-credentials 401 - #56
Merged
Merged
Conversation
The platform replaces one-shot contact search with a stepwise run: find contacts, fill gaps with web search, review, then find emails under a spending cap. SDK users need the same flow, including a wait that can drive the steps but never spends on emails without a cap. The old search, count and generate endpoints now carry a 2026-12-31 sunset, so their SDK methods warn and their CLI commands say so after their output, keeping error stderr a single JSON object. Discover is not part of that sunset and stays as is. The run routes are hidden from the public OpenAPI schema, so their request models are kept by hand and their routes skip the contract check. suggested_email rides PENDING_PROPERTIES until dev serves it.
The API gained both fields on POST /contacts/run. They are optional and left off the wire unless set, so the SDK still works against an API that has not deployed them.
The API no longer refuses find_emails without a cap: the step bills per result and stops when the account balance runs out, and a cap, when given, still bounds the spend. wait(follow=True) keeps stopping before find_emails when neither the run nor the call has a cap, so an unattended follow never spends without one.
Hardcoded warnings needed an SDK release for every deprecation and fired on each call, even without a request. The server now sends Deprecation on retired routes, so the transport warns once per endpoint and new deprecations reach existing SDK versions.
The API dropped steps and tightened validation, so the stepwise client would be rejected with 422 before it ever shipped.
contacts.count stays supported, so it no longer warns. Deprecation warnings now come from the server's headers on every call and are visible by default, so callers cannot miss a sunset.
The contract check against the platform's development spec failed on the contacts run models, which still carried flat rows and internal step fields the API stopped sending and lacked the progress, totals, filters, email state and stop reason it now returns, and on discover and count, which did not know valid_mx. Regenerating the request models from that spec also picks up the larger server default for max_records and clears suggested_email from PENDING_PROPERTIES now that the spec carries it. ExtractResult.language stays for #55.
The API removes the field from /extract, so the contract check would flag it once that release is live. Merge after the platform release.
Warn from server deprecation headers
The API release adding Pay as you go returns a structured 401 when a request has no credentials. Port the changelog note and test from #48, which still described the old $5-a-month allowance.
This was referenced Nov 11, 2026
yudelevi
marked this pull request as ready for review
November 11, 2026 00:23
|
Automatic reviews are disabled for this repository. Configure in Code Review Settings. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Ships the SDK and CLI changes for the API release that adds contacts runs and the Pay as you go free plan. Merge after that API release is live. Version bump and changelog heading still to set before merge.
client.contacts_runandcontacts runCLI commands; old contact search deprecated with warnings from server Deprecation headersExtractResultdropslanguage