Changelog¶
2026.09.16¶
Validate interview API response shapes before constructing client models.
Type shared page fixtures and captured request bodies as JSON values.
Restored the missing
beartypeimport so the client modules load successfully.Add
interview_templates.add_questionsandinterview_templates.remove_questionto both clients, matching the newly documented HackerRank endpoints, and refreshopenapi.jsonfrom the served spec.
2026.09.07¶
Add synchronous and asynchronous HTTPX2 transports while retaining HTTPX as the default client family.
2026.08.28¶
Every method which changes state now documents whether it is safe to retry, and why.
tests.archiveis now treated as safe to repeat, so it is retried whenretriesis set.
2026.08.27¶
The built-in
HTTPXTransportandAsyncHTTPXTransportnow default to a 60 second timeout instead of inheritinghttpx’s 5 second default, and accept atimeoutargument so callers can choose their own.HackerRankandAsyncHackerRankaccept aretriesargument, defaulting to0, which retries transport errors and429,500,502,503and504responses for the requests which are safe to repeat.
2026.08.22¶
Accept documented object-form interviewers and candidate_details, preserve interview schedule / live fields, and return invite and update response bodies from sync and async clients.
Add
client.candidates.search(sync and async) for the global candidate-search endpoint, with typed attempt and candidate results.Expose documented list filters and body fields for interviews, questions, templates, and candidate invites on sync and async clients.
Reject bare
strvalues for list-like API fields (interviewers,languages,tags, and related parameters) so they are no longer split into character arrays in request bodies.Refresh
openapi.jsonfrom the live HackerRank schema and add a semantic drift check that ignores dynamic example timestamps.Add
client.interview_templates.explicit_sharing_roleswithupdate_accessandremove_accessfor sharing an interview template with users, teams or the whole company.Remove the
team_shareargument from interview-templatecreateandupdate. HackerRank ignores the parameter and has removed it from the API documentation; useexplicit_sharing_rolesinstead.SCIM user and group PATCH methods now parse the documented message acknowledgement instead of treating the response as a full resource.
SCIM group PATCH methods now parse the documented message acknowledgement instead of treating the response as a full group.
SCIM pagination preserves an explicit
startIndexof0instead of rewriting it to1.generate_codestubsnow requires a request body, matching the API contract.Custom transports are only replaced by the default when
transportisNone, so falsy callables are preserved.Unexpected HTTP 3xx redirect responses now raise
RedirectErrorinstead of being treated as successful API responses.Trailing slashes on custom
base_urlandscim_base_urlvalues are stripped so request paths are not double-slashed.
2026.08.16¶
No significant changes.
2026.07.30¶
Align interview-template create and update requests with the current API, return updated templates, and parse live string template IDs and integer question IDs.
2026.07.19¶
SCIM v2 requests are now sent to
https://services.hackerrank.com/scim/v2instead of the v3 API host, soclient.scimworks out of the box. A newscim_base_urlargument onHackerRankandAsyncHackerRankallows overriding it.Bring the async
AsyncHackerRankclient to full parity with the synchronousHackerRankclient, adding all missing operations and aligning method shapes (ats.codepair/ats.codescreen,teams.membershipsandscim.users/scim.groupssub-namespaces).
2026.07.08¶
No significant changes.
2026.05.12.2¶
2026.05.12.1¶
2026.05.12¶
Initial release.