owned this note
owned this note
Published
Linked with GitHub
# openai-quickstart
Developer quickstart
====================
Take your first steps with the OpenAI API.
The OpenAI API provides a simple interface to state-of-the-art AI [models](/docs/models) for text generation, natural language processing, computer vision, and more. This example generates [text output](/docs/guides/text) from a prompt, as you might using [ChatGPT](https://chatgpt.com).
Generate text from a model
```javascript
import OpenAI from "openai";
const client = new OpenAI();
const response = await client.responses.create({
model: "gpt-4.1",
input: "Write a one-sentence bedtime story about a unicorn."
});
console.log(response.output_text);
```
```python
from openai import OpenAI
client = OpenAI()
response = client.responses.create(
model="gpt-4.1",
input="Write a one-sentence bedtime story about a unicorn."
)
print(response.output_text)
```
```bash
curl "https://api.openai.com/v1/responses" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"model": "gpt-4.1",
"input": "Write a one-sentence bedtime story about a unicorn."
}'
```
Data retention for model responses
Response objects are saved for 30 days by default. They can be viewed in the dashboard [logs](/logs?api=responses) page or [retrieved](/docs/api-reference/responses/get) via the API. You can disable this behavior by setting `store` to `false` when creating a Response.
OpenAI does not use data sent via API to train our models without your explicit consent—[learn more](/docs/guides/your-data).
[
Configure your development environment
Install and configure an official OpenAI SDK to run the code above.
](/docs/libraries)[
Responses starter app
Start building with the Responses API
](https://github.com/openai/openai-responses-starter-app)[
Text generation and prompting
Learn more about prompting, message roles, and building conversational apps.
](/docs/guides/text)
Analyze image inputs
--------------------
You can provide image inputs to the model as well. Scan receipts, analyze screenshots, or find objects in the real world with [computer vision](/docs/guides/images).
Analyze the content of an image
```javascript
import OpenAI from "openai";
const client = new OpenAI();
const response = await client.responses.create({
model: "gpt-4.1",
input: [
{ role: "user", content: "What two teams are playing in this photo?" },
{
role: "user",
content: [
{
type: "input_image",
image_url: "https://upload.wikimedia.org/wikipedia/commons/3/3b/LeBron_James_Layup_%28Cleveland_vs_Brooklyn_2018%29.jpg",
}
],
},
],
});
console.log(response.output_text);
```
```bash
curl "https://api.openai.com/v1/responses" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"model": "gpt-4.1",
"input": [
{
"role": "user",
"content": "What two teams are playing in this photo?"
},
{
"role": "user",
"content": [
{
"type": "input_image",
"image_url": "https://upload.wikimedia.org/wikipedia/commons/3/3b/LeBron_James_Layup_%28Cleveland_vs_Brooklyn_2018%29.jpg"
}
]
}
]
}'
```
```python
from openai import OpenAI
client = OpenAI()
response = client.responses.create(
model="gpt-4.1",
input=[
{"role": "user", "content": "what teams are playing in this image?"},
{
"role": "user",
"content": [
{
"type": "input_image",
"image_url": "https://upload.wikimedia.org/wikipedia/commons/3/3b/LeBron_James_Layup_%28Cleveland_vs_Brooklyn_2018%29.jpg"
}
]
}
]
)
print(response.output_text)
```
[
Computer vision guide
Learn to use image inputs to the model and extract meaning from images.
](/docs/guides/images)
Extend the model with tools
---------------------------
Give the model access to new data and capabilities using [tools](/docs/guides/tools). You can either call your own [custom code](/docs/guides/function-calling), or use one of OpenAI's [powerful built-in tools](/docs/guides/tools). This example uses [web search](/docs/guides/tools-web-search) to give the model access to the latest information on the Internet.
Get information for the response from the Internet
```javascript
import OpenAI from "openai";
const client = new OpenAI();
const response = await client.responses.create({
model: "gpt-4.1",
tools: [ { type: "web_search_preview" } ],
input: "What was a positive news story from today?",
});
console.log(response.output_text);
```
```python
from openai import OpenAI
client = OpenAI()
response = client.responses.create(
model="gpt-4.1",
tools=[{"type": "web_search_preview"}],
input="What was a positive news story from today?"
)
print(response.output_text)
```
```bash
curl "https://api.openai.com/v1/responses" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"model": "gpt-4.1",
"tools": [{"type": "web_search_preview"}],
"input": "what was a positive news story from today?"
}'
```
[
Use built-in tools
Learn about powerful built-in tools like web search and file search.
](/docs/guides/tools)[
Function calling guide
Learn to enable the model to call your own custom code.
](/docs/guides/function-calling)
Deliver blazing fast AI experiences
-----------------------------------
Using either the new [Realtime API](/docs/guides/realtime) or server-sent [streaming events](/docs/guides/streaming-responses), you can build high performance, low-latency experiences for your users.
Stream server-sent events from the API
```javascript
import { OpenAI } from "openai";
const client = new OpenAI();
const stream = await client.responses.create({
model: "gpt-4.1",
input: [
{
role: "user",
content: "Say 'double bubble bath' ten times fast.",
},
],
stream: true,
});
for await (const event of stream) {
console.log(event);
}
```
```python
from openai import OpenAI
client = OpenAI()
stream = client.responses.create(
model="gpt-4.1",
input=[
{
"role": "user",
"content": "Say 'double bubble bath' ten times fast.",
},
],
stream=True,
)
for event in stream:
print(event)
```
[
Use streaming events
Use server-sent events to stream model responses to users fast.
](/docs/guides/streaming-responses)[
Get started with the Realtime API
Use WebRTC or WebSockets for super fast speech-to-speech AI apps.
](/docs/guides/realtime)
Build agents
------------
Use the OpenAI platform to build [agents](/docs/guides/agents) capable of taking action—like [controlling computers](/docs/guides/tools-computer-use)—on behalf of your users. Use the [Agent SDK for Python](/docs/guides/agents-sdk) to create orchestration logic on the backend.
```python
from agents import Agent, Runner
import asyncio
spanish_agent = Agent(
name="Spanish agent",
instructions="You only speak Spanish.",
)
english_agent = Agent(
name="English agent",
instructions="You only speak English",
)
triage_agent = Agent(
name="Triage agent",
instructions="Handoff to the appropriate agent based on the language of the request.",
handoffs=[spanish_agent, english_agent],
)
async def main():
result = await Runner.run(triage_agent, input="Hola, ¿cómo estás?")
print(result.final_output)
if __name__ == "__main__":
asyncio.run(main())
# ¡Hola! Estoy bien, gracias por preguntar. ¿Y tú, cómo estás?
```
[
Build agents that can take action
Learn how to use the OpenAI platform to build powerful, capable AI agents.
](/docs/guides/agents)
Explore further
---------------
We've barely scratched the surface of what's possible with the OpenAI platform. Here are some resources you might want to explore next.
[
Go deeper with prompting and text generation
Learn more about prompting, message roles, and building conversational apps like chat bots.
](/docs/guides/text)[
Analyze the content of images
Learn to use image inputs to the model and extract meaning from images.
](/docs/guides/images)[
Generate structured JSON data from the model
Generate JSON data from the model that conforms to a JSON schema you specify.
](/docs/guides/structured-outputs)[
Call custom code to help generate a response
Empower the model to invoke your own custom code to help generate a response. Do this to give the model access to data or systems it wouldn't be able to access otherwise.
](/docs/guides/function-calling)[
Search the web or use your own data in responses
Try out powerful built-in tools to extend the capabilities of the models. Search the web or your own data for up-to-date information the model can use to generate responses.
](/docs/guides/tools)[
Responses starter app
Start building with the Responses API
](https://github.com/openai/openai-responses-starter-app)[
Build agents
Explore interfaces to build powerful AI agents that can take action on behalf of users. Control a computer to take action on behalf of a user, or orchestrate multi-agent flows with the Agents SDK.
](/docs/guides/agents)[
Full API Reference
View the full API reference for the OpenAI platform.
](/docs/api-reference)