#Diff between responses api and assistants api
1 messages · Page 1 of 1 (latest)
Hi @viral ice. I'm kapa.ai, your friendly support bot. I will try to answer your question by searching through the knowledge base. :wave:
The main difference between the Assistants API and the Responses API, especially regarding the use of assistant IDs, is how you manage and reference your assistant’s configuration.
With the Assistants API:
- You created an "assistant" object via the API, which had an assistant ID.
- This assistant bundled together the model, instructions, and tools.
- You could store the assistant ID and use it whenever you wanted to start a new thread or run, and the assistant’s configuration would always be applied automatically.
With the Responses API:
- The concept of an assistant ID is replaced by a "prompt" ID.
- Prompts are created and versioned in the dashboard (not via API), and they hold the configuration (model, instructions, tools, etc.).
- When you want to use a specific configuration, you reference the prompt ID in your API call.
- There is no longer an API to create, update, or delete prompts programmatically; you manage them in the dashboard and reference their IDs in your code.
- Instead of threads, you use "conversations" to manage state and context.
In simple terms:
Before, you stored and used an assistant ID in your code. Now, you store and use a prompt ID, which you set up in the dashboard. When making a request, you pass the prompt ID to the Responses API to get the same modularity and configuration reuse as before. The workflow is similar, but the object you reference (prompt vs. assistant) and how you manage it (dashboard vs. API) has changed.
“Assistants were persistent API objects that bundled model choice, instructions, and tool declarations—created and managed entirely through the API. Their replacement, prompts, can only be created in the dashboard, where you can version them as you develop your product.”
Assistants migration guide
“You have to use the UI as an owner, scoped to a project... Just make API calls, and place all the information needed to obtain a response or maintain a conversation.”
Forum Post: Does the PromptID really replace the AssistantID
So, instead of using an assistant ID, you now use a prompt ID from the dashboard when calling the Responses API.
Note: you can ask me a follow up question by @ mentioning me again :speech_balloon:
@viral ice Kapa.ai is still learning and improving, please let me know how I did by reacting below.
@noble gyro why can't we create a prompt id via api? its an issue as we use customer's own account
Let me check the knowledge base for you again. One moment! :books:
Currently, you cannot create a prompt ID via the API—prompts must be created and managed through the OpenAI dashboard UI. This is a deliberate design decision by OpenAI. According to official responses, prompts are intended to be managed by the project owner in the dashboard, not programmatically by end users or via API. This restriction is likely in place to prevent end users from programmatically creating or modifying server-side configurations, which could introduce security or governance issues, especially when using customer accounts.
As stated by OpenAI support:
"As described, there no API for creating, reading, updating a 'prompt' (the name for server-side settings and message instructions to ‘run’). You have to use the UI as an owner, scoped to a project. Almost like a deliberate decision, 'we are not going to facilitate end users making the API equivalent of GPTs, or getting any kind of elevated rights. These “prompts” have to be manually created.'"
Forum Post: Does the PromptID really replace the AssistantID
So, if your workflow relies on users creating their own prompts dynamically, this limitation means you must handle prompt creation and management centrally in your project’s dashboard, not per end user via API.
Note: you can ask me a follow up question by @ mentioning me again :speech_balloon:
@viral ice Kapa.ai is still learning and improving, please let me know how I did by reacting below.
@noble gyro can we use prompt id from one account but conversation id stored in customer account which is different account
Let me check the knowledge base for you again. One moment! :books:
Based on the available knowledge sources, prompt IDs and conversation IDs are both scoped to the project and organization in which they were created. Prompts are project-level resources, and conversations are also tied to the project/account context in which they are created. There is no information in the knowledge sources indicating that you can use a prompt ID from one account (or project) with a conversation ID from a different account (or project).
In fact, prompt caches and other resources are explicitly not shared between organizations, and access to prompts is managed at the project level in the dashboard, not across accounts or organizations Prompt caching FAQ Prompt management in Playground.
Therefore, you cannot mix a prompt ID from one account with a conversation ID from another, as they are not designed to be interoperable across different accounts or organizations. Each must be used within the same project/account context in which it was created.
If you need to support multiple customers, you should create and manage prompts and conversations within each customer's own project or account context.
Note: you can ask me a follow up question by @ mentioning me again :speech_balloon:
@viral ice Kapa.ai is still learning and improving, please let me know how I did by reacting below.
@noble gyro this is problem for us as for us we use customers own api for openai to manage everything in customer account for privacy reasons
Let me check the knowledge base for you again. One moment! :books:
You are correct—this limitation is a challenge for your use case. The knowledge sources confirm that prompts must be created and managed in the dashboard UI by a project owner, and there is no API to create, update, or manage prompts programmatically. This means you cannot dynamically create prompts in each customer’s account via API, which is problematic if you need to manage everything within the customer’s own OpenAI account for privacy or compliance reasons Forum Post: Does the PromptID really replace the AssistantID.
The knowledge sources do not mention any workaround or upcoming feature to allow prompt creation via API. As it stands, prompt management is intentionally restricted to the dashboard for security and governance reasons, and all prompt and conversation resources are scoped to the project/account in which they were created.
If this limitation is critical for your workflow, you may want to provide feedback to OpenAI through their support channels or forums, as this is a known concern for teams building on behalf of customers.
Note: you can ask me a follow up question by @ mentioning me again :speech_balloon:
@viral ice Kapa.ai is still learning and improving, please let me know how I did by reacting below.
@noble gyro can we attach files or associate files with Conversations API
Let me check the knowledge base for you again. One moment! :books:
I'm sorry, but the knowledge sources do not contain enough information to confirm whether you can attach or associate files directly with the Conversations API. The available documentation covers file association with the Assistants API (using threads and attachments) and the Responses API (using file IDs or base64 data in the input), but does not explicitly mention file handling or attachment capabilities for a Conversations API. If you need this functionality, you may want to consult the latest OpenAI documentation or support channels for clarification.
Note: you can ask me a follow up question by @ mentioning me again :speech_balloon:
@viral ice Kapa.ai is still learning and improving, please let me know how I did by reacting below.
@noble gyro so is it necessary to send prompt id when we send req to responses API? We can just send prompt itself
Let me check the knowledge base for you again. One moment! :books:
No, it is not strictly necessary to send a prompt ID when making a request to the Responses API. You have two options:
-
Send the prompt ID:
You can reference a reusable prompt (created in the dashboard) by sending its prompt ID in your API request. This allows you to manage and version prompts centrally and simply refer to them by ID in your code Prompt engineering – Reusable prompts. -
Send the prompt content directly:
You can also send the full prompt (instructions, messages, etc.) directly in the API request without using a prompt ID. This is useful if you want to define the prompt dynamically in your code or do not need versioning or central management Forum Post: Does the PromptID really replace the AssistantID.
In summary:
You can either send a prompt ID or the prompt content itself—using a prompt ID is optional.
Note: you can ask me a follow up question by @ mentioning me again :speech_balloon:
@viral ice Kapa.ai is still learning and improving, please let me know how I did by reacting below.
@viral ice where you able to upload images to the Conversations API? I'm facing a "Error while downloading" 400 error when trying, and found no solution in the community nor here at discord
@noble gyro is there an available api for openai for fred
Let me check the knowledge base for you again. One moment! :books:
I'm sorry, but the knowledge sources do not contain any information about an official OpenAI API specifically for accessing FRED (Federal Reserve Economic Data). The only mention of FRED is in the context of a sample project using the OpenAI Agents SDK, where FRED data is accessed via the FRED API (provided by the Federal Reserve), not by OpenAI itself. In that example, you need to obtain a FRED API key separately and use it alongside your OpenAI API key cookbook.openai.com example.