How to Use the ChatGPT API with PHP: A Step-by-Step Guide

How to Use the ChatGPT API with PHP: A Step-by-Step Guide

In recent years, natural language processing (NLP) models have made tremendous advancements in understanding and generating human-like text. OpenAI's GPT-3 model, powered by the ChatGPT API, is one such breakthrough. It allows developers to integrate the power of AI language generation into their applications. In this tutorial, we will explore how to use the ChatGPT API with PHP, and we'll provide you with easy-to-follow code examples to get you started.


Before we dive into the code, ensure you have the following prerequisites in place:

  1. OpenAI API Key: You need to sign up for access to the ChatGPT API and obtain your API key. You can do this by visiting the OpenAI website.

  2. PHP: Make sure you have PHP installed on your system. You can check your PHP version by running php -v in your terminal.

  3. cURL Library: PHP's cURL library allows us to make HTTP requests. Ensure it is enabled in your PHP configuration. You can check for cURL support by running php -m | grep curl.

Setting Up Your PHP Project

Let's create a simple PHP project structure:

│   index.php

To set up this structure, create a directory named chatgpt-php and navigate to it in your terminal. Then, run the following commands:

mkdir vendor
cd vendor
composer require guzzlehttp/guzzle

This will create a basic project structure and install the Guzzle HTTP client, which we'll use to make API requests.

Making a ChatGPT API Request

Now, let's write PHP code to make a request to the ChatGPT API. Create a new file called index.php in the chatgpt-php directory and add the following code:

require 'vendor/autoload.php';

// Replace 'YOUR_API_KEY' with your actual API key
$apiKey = 'YOUR_API_KEY';

// Define the endpoint URL
$endpoint = '';

// Create a new Guzzle HTTP client
$client = new \GuzzleHttp\Client();

// Define the prompt for ChatGPT
$prompt = 'Translate the following English text to French:';

// Make a POST request to the API
$response = $client->post($endpoint, [
    'headers' => [
        'Authorization' => "Bearer $apiKey",
    'json' => [
        'prompt' => $prompt,
        'max_tokens' => 50, // Adjust the max tokens as needed

// Decode the response JSON
$data = json_decode($response->getBody(), true);

// Extract and print the AI-generated text
$generatedText = $data['choices'][0]['text'];
echo $generatedText;

In this code:

  • We import the Guzzle HTTP client to make HTTP requests.

  • Replace 'YOUR_API_KEY' with your actual ChatGPT API key.

  • We define the API endpoint for ChatGPT.

  • A prompt is set, which will be used to instruct ChatGPT.

  • We make a POST request to the API, passing in the API key, prompt, and other optional parameters such as max_tokens to limit the response length.

  • Finally, we decode the JSON response and extract and print the AI-generated text.

Running the PHP Script

To run the PHP script, navigate to the chatgpt-php directory in your terminal and execute:

php index.php

You should see the AI-generated text as a response in your terminal.

You have successfully made your first ChatGPT API request using PHP. You can now integrate this powerful language model into your PHP applications to automate tasks, generate text, or assist users with natural language understanding. Experiment with different prompts and parameters to see the full potential of ChatGPT in action. Happy coding!