All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- Add response streaming types (#711)
- Add
response.queuedevent to streamed responses (#712) - Add streamed response retrieval (#713)
- Add image streaming support (#720)
- Add webhook signature verification (#722)
- Add
reasoning_contentfield toCreateResponseMessage(#737)
- Fix list items for conversation when
file_idis null andfile_datais missing (#715) - Handle optional values correctly in
Responses\CreateResponseType(#728) - Add support for missing
urlon web search output (#733) - Add support for empty
keepalivestream events (#734) - Do not bail early on
text/plainresponses unless JSON parsing fails (#736)
- Test against PHP 8.5 (#714)
- Bump
actions/checkoutfrom 5 to 6 (#716) - Bump
actions/cachefrom 4 to 5 (#724)
- Add support for Gemini Flash (2.5 - Nano Banana) (#685)
- Add diarized JSON response in TranscriptionResponseSegment (#706)
- Add support for actions on web_search_call (#707)
- Add usage to streamed completions (#708)
- Fix missing properties on container file annotation (#703)
- Fix missing containers interface on client (#704)
- Allow bytes to be nullable on ContainerFileResponse (#705)
- Fix missing
Open-AI-Betaheader on all Assistant related requests. (#701) - Fix missing
filenameproperty on text annotation file. (#696)
- Add Conversation API (#658)
- Handle object/string error responses with robust
ErrorException(#682) - Increase nullability on Doubao image usage types (#684)
- Add missing pagination fields to
files.list(#687) - Fix undefined array key errors for xAI Responses API (#689)
- Prevent registration of beta headers on all requests (#688)
- Deprecate Assistants API officially (#679)
- Add
sequence_numbersupport toOutputTextDelta(#664) - Add
web-searchtool option (#665) - Add support for reasoning text streaming events (#673)
- Handle optional attributes in CreateResponse (#662)
- Handle null require_approval in Response API (#669)
- Support mcp error objects in response api (#661)
- Support nested file search properties (#670)
- Add missing properties to ListInputItems call (#668)
- Remove extra spaces from json keys in ThreadRunStreamResponseFixture.txt (#674)
- Add GPT-5 support (#639)
- Add support for
reasoning.summaryfield (#642) - Add Container File API (#648)
- Added raw response to Exceptions (#643)
- Add
OverrideStrategyenum for fakeable trait to support merge/replace (#646)
- Fix support for fine-tuning with failed tuning job (#651)
- Fix Response API support for MCP Connectors (#654)
- Rework exception handling to catch unhandled string/array crashes. (#643)
- Detect HTTP 429 and throw RateLimitException (#652)
- Add
updateAttributesmethod toVectorStoresFiles(#626) - Add support for chat completion audio modality (#629)
- Add
ContainersAPI (#636) - Add
modelfield toCreateResponsefor embeddings (#634)
- Fix streamed response tool call without arguments in VLLM (#623)
- Fix support for
code_interpreter_callon retrieve response (#632) - Fix JSON encoding to preserve UTF-8 characters using
JSON_UNESCAPED_UNICODE(#628)
- Add helper method
output_textto Responses API (#579) - Add support for response cancel in Responses API (#588)
- Add support for Image Generation Tool to Responses API (#594)
- Add streaming for Image Generation in Responses API (#602)
- Add support for Code Interpreter to Responses API (#610)
- Add support for Remote MCP Tool in Responses API (#601)
- Add realtime ephemeral tokens (#591)
- Add streaming support for Audio transcriptions (#603)
- Add realtime key documentation (#597)
- Add missing
indextoCreateStreamedResponseToolCall(#562) - Make
$parametersoptional in threadcreate()method (#577) - Support Azure
model.listendpoint (#599) - Add
reasoning_effortsupport to Assistants (#606) - Use proper parameter order in
Responseconstructor (#615) - Support reused prompts/instructions in Responses API (#616)
- Use proper header notation for Responses API docs (#596)
- Collapse legacy/deprecated sections by default in docs (#609)
- Add support for Responses API (#541)
- Add Throwable type support to ClientFake responses (#576)
- Removed PHP 8.1 support
- Add logprobs to Chat Response (#533)
- Add ResponseHasMetaInformationContract contract to ThreadRunStepResponse (#523)
- Add support for 'attributes' on vector store files (#551)
- Add OpenAI compatibility support for Google Gemini (#502)
- Add compatibility for Aliyun LLM APIs (#530)
- Add ability to pass arguments to files list request (#557)
- Add search vector store functionality (#559)
- Add Image Response usage (#571)
- Add category applied input types to moderation response (#572)
- Add support for annotations in Chat response (Web Search) (#564)
- Add test coverage for assistants streaming and related functionality (#444)
- Update GitHub Action deprecations & opt into Dependabot (#544)
- Draw attention away from deprecated completions endpoints in docs (#548)
- Fix type definition for responses in ClientFake::addResponses method (#382)
- Fix Content retrieval in HttpTransport with custom HttpClient (#343)
- Fix correct completion endpoint when logprobs missing (#550)
- Fix chat completion choices to allow responses without logprobs field (#554)
- Fix support for streaming of non-OpenAI models that return "ping" (#556)
- Fix OpenRouter token usage response (#560)
- Fix Gemini list models (#567)
- Add http status to ErrorException (#487)
- Add
cached_usageto CreateResponseUsage for Chat (#494) - Add moderation categories (Illicit*) (#495)
- Fix missing parameters on FineTuning RetrieveJobResponse (#496)
- Fix nullable description on Assistants Tool Function (#484)
- Fix attachment key missing on ThreadMessageResponse (#471)
- Add
thread.run.incompleteto ThreadRunStreamResponse (#421) - Add
withProjectto configure the project for the client (#377) - Add fake
b64_jsonto support mocking (#462)
- Fix image url content type to use
urlinstead offile_id(#422) - Fix type error on VectorStoresFilesTestResources (#460)
- Fix vector store cancel method (#435)
- Add support for Assistants API v2 and Vector Stores endpoints (#420)
- Add vector store endpoints documentation (#420)
- Add support for Assistants API v2 and Vector Stores endpoint (#405)
- Support for usage stream option on chat endpoint (#398)
- Missing output parameter on streamed code interpreter output (#406)
- Add support for Batches endpoint (#403)
- Assistants: add streaming support (#367)
- Audio: add support for timestamp_granularities (#374)
- Fix default fake data for meta information (#332)
- ThreadRun: Add "usage" property to the response (#330)
- ThreadRunStep: "content" missing in response if result has not been submitted (#319)
- Files: "bytes" in retrieve response is may null (#325)
- Add support for Assistants and Threads endpoint (#271)
- Add stream support for Text To Speech (#235)
- Add test resources for Assistants and Threads (#279)
- Remove thread messages delete endpoint (#309)
- Handle x-request-id in meta information (#283)
- Handle meta information from azure headers (#307)
- Add missing default system_fingerprint to chat create response fixture (#308)
- Convert headers to lower case before creation meta information (#306)
- Remove threads list endpoint from README.md (#275)
- Clarify assistants files docs (#278)
- Fix image creation example (#297)
- Fix outdated links (#299)
- Add troubleshooting section and explain how to configure HTTP client timeouts
- Add support for Assistants and Threads endpoint (#271)
- Remove
list()from Threads resource
- instruction on ThreadRunResponse may be nullable
- Add RetrieveJobResponseError and batch_size, learning_rate_multiplier parameters on RetrieveJobResponseHyperparameters for fine-tuning endpoint (#255)
- Add revised_prompt property to CreateResponseData on the image create endpoint (#257)
- Fix model in one of the examples
- Add support for Assistants and Threads endpoint (#243)
- Add support for GTP-4 vision on the chat completion endpoint (#241)
- Add support for tool calls on the chat completion endpoint (#239)
- Add support for the audio speech endpoint (#237)
- Update Models endpoint response object to the latest API changes (#235)
- Update FineTuning job id names (#230)
- Use Chat resource as the primary example
- nEpochs on RetrieveJobResponseHyperparameters may be string
- processingMs ond MetaInformationOpenAI may be null (#218)
- Add "has_more" to fine-tuning jobs and events list responses (#206)
- Add parameters to the fine-tuning jobs list request to filter the results (#206)
- error_code may be int
- Missing openai-version header from Azure
- Typo in class name MetaInformationOpenAI
- Add support for the fine-tuning API (#199)
- Provide access to header / meta information for all responses (#195)
- Mark
FineTunesresource as deprecated - Mark
Editsresource as deprecated - Add missing moderation enums (#178)
- Chat completion create response with function calling on Azure (#184)
- Breaking change on OpenAI API regarding "transient" field in Audio translations (#168)
- Docs: fix OpenAI URL
- Breaking change on OpenAI API regarding "transient" field in Audio (#160)
- Error handling: use error code as exception message if error message is empty (#150)
- Error handling: Catch error in stream responses (#150)
- Error handling: Handle errors where message is an array (#150)
- Chat/CreateResponse faking with function_call (#145)
- Add support for function calling in the Chat Completions API (#144)
- Exception handling for server error with non default content type header (#134)
- Faking embedding responses for multidimensional vectors (#131)
- Add support for psr/http-message ^2.0 (#130)
- fix: stream broken after checking for errors (regression of #113)
- Support for HTTP base uri (#106)
- unify exception handling between HTTP client implementations (#113)
- fix toArray() on
CreateStreamedResponseDeltato match the original API response (#108)
- explain usage for "OpenAI on Azure" (#109)
- Testing support (#71)
- Trim ApiKey before sending it to the API (#101)
- Nullable fields on error response (#102)
- Stream support (#84)
- Removed dependency for
guzzlehttp/guzzleand use PSR-18 client discovery instead (#75) - Add Client factory which allows for a custom HTTP client
- Client factory further accepts custom HTTP headers, query parameters and API URI
status_detailscan be a string in file responses. Affects Files and FineTunes resources (#68)
Audioresource to turn audio into text powered bywhisper-1(#62)
Chatresource aka ChatGPT powered bygpt-3.5-turbo(#60)
- Missing
eventson FineTunesRetrieveResponse(#41)
OpenAI::client()first argument changed fromapiTokentoapiKey(#25)
- Getting contents from Guzzle's response causing issues with middleware (#33)
- FineTunes create response:
batch_size,learning_rateandfine_tuned_modelare nullable (#16) - File responses: add missing fields
statusandstatus_details
- Add
images()resource to interact with DALL-E
- Parse completions create response with logprobs correctly
- First version