The OpenAI facade provides a fake() method to intercept API calls and return predefined responses. You can use specific response fake methods (e.g., CreateResponse::fake()) to define the structure of the returned data. Responses are returned in the order they are provided to the fake() method.
use OpenAI\Laravel\Facades\OpenAI;
use OpenAI\Responses\Responses\CreateResponse;
OpenAI::fake([
CreateResponse::fake([
'choices' => [
[
'text' => 'awesome!',
],
],
]),
]);
$response = OpenAI::responses()->create([
'model' => 'gpt-5',
'input' => 'PHP is ',
]);
expect($response->outputText)->toBe('awesome!');