Skip to content
Merged
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
106 changes: 82 additions & 24 deletions src/content/docs/ai-gateway/providers/openai.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,18 @@ pcx_content_type: get-started
https://gateway.ai.cloudflare.com/v1/{account_id}/{gateway_id}/openai
```

### Chat completions endpoint

```txt
https://gateway.ai.cloudflare.com/v1/{account_id}/{gateway_id}/openai/chat/completions \
```

### Responses endpoint

```txt
https://gateway.ai.cloudflare.com/v1/{account_id}/{gateway_id}/openai/responses \
```

## URL structure

When making requests to OpenAI, replace `https://api.openai.com/v1` in the URL you’re currently using with `https://gateway.ai.cloudflare.com/v1/{account_id}/{gateway_id}/openai`.
Expand All @@ -24,34 +36,31 @@ When making requests to OpenAI, ensure you have the following:
- An active OpenAI API token.
- The name of the OpenAI model you want to use.

## Examples
## Chat completions endpoint

### cURL
### cURL example

```bash title="Request"
```bash
curl https://gateway.ai.cloudflare.com/v1/{account_id}/{gateway_id}/openai/chat/completions \
--header 'Authorization: Bearer {openai_token}' \
--header 'Content-Type: application/json' \
--data ' {
"model": "gpt-4o-mini",
"messages": [
{
"role": "user",
"content": "What is Cloudflare"
}
]
}
'
--header 'Authorization: Bearer {openai_token}' \
--header 'Content-Type: application/json' \
--data '{
"model": "gpt-4o-mini",
"messages": [
{
"role": "user",
"content": "What is Cloudflare?"
}
]
}'
```

### Use OpenAI SDK with JavaScript
### JavaScript SDK example

If you are using a library like openai-node, set the `baseURL` to your OpenAI endpoint like this:

```js title="JavaScript"
```js
import OpenAI from "openai";

const apiKey = "my api key"; // defaults to process.env["OPENAI_API_KEY"]
const apiKey = "my api key"; // or process.env["OPENAI_API_KEY"]
const accountId = "{account_id}";
const gatewayId = "{gateway_id}";
const baseURL = `https://gateway.ai.cloudflare.com/v1/${accountId}/${gatewayId}/openai`;
Expand All @@ -65,17 +74,66 @@ try {
const model = "gpt-3.5-turbo-0613";
const messages = [{ role: "user", content: "What is a neuron?" }];
const maxTokens = 100;

const chatCompletion = await openai.chat.completions.create({
model,
messages,
max_tokens: maxTokens,
});

const response = chatCompletion.choices[0].message;
console.log(response);
} catch (e) {
console.error(e);
}
```

## OpenAI Responses endpoint

### cURL example

```bash
curl https://gateway.ai.cloudflare.com/v1/{account_id}/{gateway_id}/openai/responses \
--header 'Authorization: Bearer {openai_token}' \
--header 'Content-Type: application/json' \
--data '{
"model": "gpt-4.1",
"input": [
{
"role": "user",
"content": "Write a one-sentence bedtime story about a unicorn."
}
]
}'
```

return new Response(JSON.stringify(response));
### JavaScript SDK example

```js
import OpenAI from "openai";

const apiKey = "my api key"; // or process.env["OPENAI_API_KEY"]
const accountId = "{account_id}";
const gatewayId = "{gateway_id}";
const baseURL = `https://gateway.ai.cloudflare.com/v1/${accountId}/${gatewayId}/openai`;

const openai = new OpenAI({
apiKey,
baseURL,
});

try {
const model = "gpt-4.1";
const input = [
{
role: "user",
content: "Write a one-sentence bedtime story about a unicorn.",
},
];
const response = await openai.responses.create({
model,
input,
});
console.log(response.output_text);
} catch (e) {
return new Response(e);
console.error(e);
}
```
Loading