# 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)