# What are apps in ChatGPT, and how do developers build one with the Apps SDK?

Date: 2025-10-07 · Author: Robert Scales · https://guidetoartificialintelligence.com/en/learn/what-are-apps-in-chatgpt-and-the-apps-sdk/

**Answer:** Apps in ChatGPT, launched on October 6, 2025, are interactive apps from other companies, such as Spotify, Zillow and Canva, that appear inside a ChatGPT conversation when you call them by name or when ChatGPT suggests them. Developers build them with the Apps SDK, a preview toolkit based on the Model Context Protocol, which lets an app define both what ChatGPT can ask it to do and the interface shown in the chat.

Yesterday, Monday, October 6, 2025, at its DevDay conference, OpenAI introduced **apps in ChatGPT**: programs from other companies that open inside a conversation, with their own buttons, maps or playlists, and that you can talk to in plain language. Alongside them, it released a preview of the **Apps SDK**, the toolkit developers use to make such apps. An **SDK**, or software development kit, is a package of code and documentation that developers build on.

The first apps come from Booking.com, Canva, Coursera, Expedia, Figma, Spotify and Zillow. They are available to logged-in users outside the European Union on the Free, Go, Plus and Pro plans, starting in English, and OpenAI says another eleven partners will follow later this year.

## How apps appear in a conversation

There are two ways to meet an app. You can name it at the start of a message, for example "Figma, turn this sketch into a workable diagram," or ChatGPT can suggest one when it fits, such as the Zillow app when you talk about buying a house. Zillow then places homes within your price range on a map you can explore inside the chat, and you keep asking questions about them.

On your first use of any app, ChatGPT asks you to connect it and shows what data may be shared. If you already pay for a service, you can log in to your account from inside ChatGPT. TechCrunch notes how this differs from OpenAI's earlier GPT Store, which was a separate catalog: these apps appear directly in ChatGPT's answers.

## How the Apps SDK works

The Apps SDK is built on the **Model Context Protocol (MCP)**, an open standard for connecting AI to outside tools and data. OpenAI extends MCP so an app supplies two things: its logic and its interface. It has made the SDK open source, so apps built with it could run in any product that adopts the same standard.

According to the documentation, every app centers on an **MCP server**, a small web service the developer runs. It does three jobs:

1. **Describes tools.** Each tool has a machine name, a readable title and a schema, a precise description of its inputs, which tells the model what the tool is for and what to send it.
2. **Returns data.** Each answer can carry three parts: `structuredContent`, the data both the model and the interface see; `content`, text meant for the model; and `_meta`, extra data for the interface only, which the model never sees.
3. **Points to an interface.** Each tool names an HTML template, which ChatGPT displays in an **iframe**, a sealed-off window inside the page, and fills with the returned data.

## A worked example: a recipe finder

Imagine a cooking site building a ChatGPT app. A user types "Recipe Box, find me a vegetarian dinner under 30 minutes." Here is the flow, step by step:

| Step | What happens |
|---|---|
| 1 | ChatGPT reads the tool list from the Recipe Box server and picks `find_recipes` |
| 2 | It sends inputs that match the schema: `diet: "vegetarian"`, `max_minutes: 30` |
| 3 | The server searches its database and replies with five recipes in `structuredContent`, a short text summary in `content`, and full ingredient lists in `_meta` |
| 4 | ChatGPT shows the Recipe Box card carousel in the chat and adds a sentence of its own |
| 5 | The user asks, "Which one uses chickpeas?" and ChatGPT answers from the recipe data it can see |

In code, the heart of the server is one tool registration. A simplified sketch in TypeScript:

```typescript
server.registerTool("find_recipes", {
  title: "Find recipes",
  inputSchema: { diet: z.string(), max_minutes: z.number() },
  _meta: { "openai/outputTemplate": "ui://widget/recipe-cards.html" }
}, async ({ diet, max_minutes }) => {
  const recipes = await searchRecipes(diet, max_minutes);
  return {
    structuredContent: { recipes: recipes.slice(0, 5) },
    content: [{ type: "text", text: `Found ${recipes.length} recipes.` }],
    _meta: { ingredients: ingredientsFor(recipes) }
  };
});
```

The split matters. Keeping bulky details in `_meta` keeps the model's view small and focused, while the interface still has everything it needs to display.

> **Try it:** Pick a website you use often and design its ChatGPT app on paper: name two tools, list each tool's inputs, and decide which returned data the model should see and which should stay in the interface only.

## Rules, privacy and what comes next

Every app must follow OpenAI's usage policies, suit all audiences, publish a clear privacy policy and collect only the data it needs. OpenAI has published draft developer guidelines and says that later this year it will open submissions for review, launch a directory where people can browse apps, bring apps to business and education plans, and share how developers can earn money, including through instant checkout inside ChatGPT.

TechCrunch raises two open questions: how much of a conversation app makers will see, and how ChatGPT will choose between competing services, such as two food-delivery apps.

## How can you build and test your first ChatGPT app?

Start with OpenAI's Apps SDK documentation, its design guidelines and the open-source example apps. Choose one of the official MCP libraries, Python or TypeScript, and write a server with a single tool before adding an interface.

Test locally with MCP Inspector, a tool that lets you list and call your server's tools and preview the interface. ChatGPT only connects over a secure HTTPS address, so during development you can use a tunneling service such as ngrok to expose your local server, then add it as a connector in ChatGPT's developer mode.

Keep the first version small: one tool, one clear interface, minimal data. Add user login, saved state and a strict content security policy, a rule listing which outside sites your interface may load from, once the basic flow works.

## Sources

- Introducing apps in ChatGPT and the new Apps SDK: https://openai.com/index/introducing-apps-in-chatgpt/
- Set up your server (Apps SDK documentation): https://developers.openai.com/apps-sdk/build/mcp-server
- OpenAI launches apps inside of ChatGPT: https://techcrunch.com/2025/10/06/openai-launches-apps-inside-of-chatgpt/
