Skip to content

feat!: sync PHP client with Apify OpenAPI spec v2-2026-10-20T121847Z and reference client - #18

Open
Pijukatel wants to merge 5 commits into
masterfrom
claude/dazzling-ritchie-dgvy9d
Open

Pijukatel wants to merge 5 commits into
masterfrom
claude/dazzling-ritchie-dgvy9d

Conversation

@Pijukatel

Copy link
Copy Markdown
Collaborator

Summary

Syncs the PHP client to OpenAPI spec v2-2026-10-20T121847Z (apify/apify-docs#3090, #3091, #3092, #3093, #3096) and ports apify/apify-client-js#1146 and #1162. It also checks the compromised intermediate CA certificates incident. Client version goes to 0.11.0.

  • Store filter: FLAT_PRICE_PER_MONTH is removed from the store pricingModel filter in StoreListOptions and the docs (#3090).
  • Charge request ID: RunChargeOptions::$requestId is sent as requestId in the charge() body (JS #1162, docs #3092). The charge() default timeout moves to the short tier, as in the JS client.
  • Unparsable success bodies (JS #1146):
    • A 2xx response whose body fails to parse now throws InvalidResponseBodyException right away instead of being retried.
    • The old $validateBody path, which parsed every JSON response twice, is removed.
    • An unparsable error body still maps to the status exception and is retried by status.
  • Psr18HttpClient::send(): it now rewinds and fully reads the body, so a body cut off mid-transfer is retried as a TransportException. sendStreaming() still returns the body unread, so log streaming stays live.
  • No change needed:
    • JS #1143 needs nothing for PHP, and JS #1164 and #1167 only change generated models.
    • The CA incident needs no change here. The client has no bundled CA store or affected dependency, so TLS trust comes from the host OS and curl. Update OS ca-certificates on hosts and CI images.

Results: 224 unit tests, 63 live integration tests and 47 examples pass. php-cs-fixer is clean and PHPStan level 6 reports no errors.


Generated by Claude Code

…nd reference client

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UUMWnU4gH573HweHieMhHi
…se, PSR-18 body buffering)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UUMWnU4gH573HweHieMhHi
…timeout tier

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UUMWnU4gH573HweHieMhHi
…on it guards

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UUMWnU4gH573HweHieMhHi
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UUMWnU4gH573HweHieMhHi
@Pijukatel Pijukatel added adhoc Ad-hoc unplanned task added during the sprint. t-tooling Issues with this label are in the ownership of the tooling team. labels Oct 21, 2026 — with Claude
@apify-service-account apify-service-account added the tested Temporary label used only programatically for some analytics. label Oct 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

adhoc Ad-hoc unplanned task added during the sprint. t-tooling Issues with this label are in the ownership of the tooling team. tested Temporary label used only programatically for some analytics.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants