Microsoft Azure · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Microsoft Azure Assistants API
35 actions
35 updates
phrasing
extends
openapi/microsoft-azure-assistants-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for Microsoft Azure's API. It is a proposal applied on top of the contract, not a document Microsoft Azure publishes.
What the actions change
x-apievangelist-phrasing
Targets 35 · first 16 shown; the file carries all of them
$.info
$.paths['/assistants'].get
$.paths['/assistants'].post
$.paths['/assistants/{assistantId}'].get
$.paths['/assistants/{assistantId}'].post
$.paths['/assistants/{assistantId}'].delete
$.paths['/assistants/{assistantId}/files'].get
$.paths['/assistants/{assistantId}/files'].post
$.paths['/assistants/{assistantId}/files/{fileId}'].get
$.paths['/assistants/{assistantId}/files/{fileId}'].delete
$.paths['/assistants/{assistant_id}'].get
$.paths['/assistants/{assistant_id}'].delete
$.paths['/threads'].post
$.paths['/threads/{thread_id}'].get
$.paths['/threads/{thread_id}'].post
$.paths['/threads/{thread_id}'].delete
OpenAPI Overlay
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
title: API Evangelist conversational phrasing for Microsoft Azure Assistants API
version: 1.0.0
extends: openapi/microsoft-azure-assistants-api-openapi.yml
actions:
- target: $.info
update:
x-apievangelist-phrasing:
method: generated
generated: '2026-09-26'
generator: build-phrasing.py
label: Generated by API Evangelist
operations: 34
- target: $.paths['/assistants'].get
update:
x-apievangelist-phrasing:
intent: List the assistants I have created
effect: read
questions:
- Which assistants have I already set up in Azure OpenAI?
- Can I page through my assistants newest first, a fixed number at a time?
instructions:
- text: Show me all the assistants I've created.
- text: List my first {limit} assistants in {order} order.
slots:
limit: query.limit
order: query.order
- text: Continue listing my assistants after assistant {after}.
slots:
after: query.after
method: generated
generated: '2026-09-26'
- target: $.paths['/assistants'].post
update:
x-apievangelist-phrasing:
intent: Create a new assistant
effect: write
questions:
- How do I set up a new assistant on a model deployment with its own system instructions?
- Can a brand-new assistant be given tools and files from the moment it is created?
instructions:
- text: Create an assistant named {name} on model {model}.
slots:
name: requestBody.name
model: requestBody.model
- text: 'Set up a new {model} assistant that follows these instructions: {instructions}.'
slots:
model: requestBody.model
instructions: requestBody.instructions
- text: Create a {model} assistant with access to uploaded files {file_ids}.
slots:
model: requestBody.model
file_ids: requestBody.file_ids
method: generated
generated: '2026-09-26'
- target: $.paths['/assistants/{assistantId}'].get
update:
x-apievangelist-phrasing:
intent: Look up one assistant's configuration
effect: read
questions:
- What model and instructions is a particular assistant configured with?
- Can I pull up the settings of one assistant by its id?
instructions:
- text: Show me the configuration of assistant {assistantId}.
slots:
assistantId: path.assistantId
- text: Fetch assistant {assistantId} so I can check which tools it has.
slots:
assistantId: path.assistantId
method: generated
generated: '2026-09-26'
- target: $.paths['/assistants/{assistantId}'].post
update:
x-apievangelist-phrasing:
intent: Change an existing assistant's settings
effect: write
questions:
- Can I switch an assistant I already built to a different model?
- How do I rewrite the instructions of an assistant that's already live?
instructions:
- text: Move assistant {assistantId} to model {model}.
slots:
assistantId: path.assistantId
model: requestBody.model
- text: 'Replace the instructions on assistant {assistantId} with: {instructions}.'
slots:
assistantId: path.assistantId
instructions: requestBody.instructions
- text: Rename existing assistant {assistantId} to {name}.
slots:
assistantId: path.assistantId
name: requestBody.name
method: generated
generated: '2026-09-26'
- target: $.paths['/assistants/{assistantId}'].delete
update:
x-apievangelist-phrasing:
intent: Delete an assistant
effect: destructive
questions:
- Can I permanently remove an assistant I no longer use?
- What happens when I delete an assistant by its id?
instructions:
- text: Delete assistant {assistantId}.
slots:
assistantId: path.assistantId
- text: Get rid of the assistant with id {assistantId}.
slots:
assistantId: path.assistantId
method: generated
generated: '2026-09-26'
- target: $.paths['/assistants/{assistantId}/files'].get
update:
x-apievangelist-phrasing:
intent: List files attached to an assistant
effect: read
questions:
- Which files can a given assistant's retrieval tools read right now?
- Is there a way to page through the files linked to one assistant?
instructions:
- text: List the files attached to assistant {assistantId}.
slots:
assistantId: path.assistantId
- text: Show the first {limit} files linked to assistant {assistantId}.
slots:
limit: query.limit
assistantId: path.assistantId
method: generated
generated: '2026-09-26'
- target: $.paths['/assistants/{assistantId}/files'].post
update:
x-apievangelist-phrasing:
intent: Attach an uploaded file to an assistant
effect: write
questions:
- How do I give an assistant access to a file I already uploaded?
- Can I link one more document to an assistant's file-reading tools?
instructions:
- text: Attach uploaded file {file_id} to assistant {assistantId}.
slots:
file_id: requestBody.file_id
assistantId: path.assistantId
- text: Let assistant {assistantId} read file {file_id} with its tools.
slots:
assistantId: path.assistantId
file_id: requestBody.file_id
method: generated
generated: '2026-09-26'
- target: $.paths['/assistants/{assistantId}/files/{fileId}'].get
update:
x-apievangelist-phrasing:
intent: Look up a file attached to an assistant
effect: read
questions:
- Can I confirm a specific file is still attached to an assistant?
- When was a particular file linked to my assistant?
instructions:
- text: Show attached file {fileId} on assistant {assistantId}.
slots:
fileId: path.fileId
assistantId: path.assistantId
- text: Check the attachment record for file {fileId} on assistant {assistantId}.
slots:
fileId: path.fileId
assistantId: path.assistantId
method: generated
generated: '2026-09-26'
- target: $.paths['/assistants/{assistantId}/files/{fileId}'].delete
update:
x-apievangelist-phrasing:
intent: Unlink a file from an assistant
effect: destructive
questions:
- How do I stop an assistant's tools from reading a file I attached?
- Does unlinking a file from an assistant make it unavailable to that assistant?
instructions:
- text: Unlink file {fileId} from assistant {assistantId}.
slots:
fileId: path.fileId
assistantId: path.assistantId
- text: Detach file {fileId} so assistant {assistantId} can no longer read it.
slots:
fileId: path.fileId
assistantId: path.assistantId
method: generated
generated: '2026-09-26'
- target: $.paths['/assistants/{assistant_id}'].get
update:
x-apievangelist-phrasing:
intent: Retrieve an assistant at a set API version
effect: read
questions:
- Can I fetch an assistant while pinning a specific api-version?
- Which version-pinned call returns one assistant's details?
instructions:
- text: Retrieve assistant {assistant_id} using api-version {api_version}.
slots:
assistant_id: path.assistant_id
api_version: query.api-version
- text: Pull assistant {assistant_id} from the versioned assistants endpoint.
slots:
assistant_id: path.assistant_id
method: generated
generated: '2026-09-26'
- target: $.paths['/assistants/{assistant_id}'].delete
update:
x-apievangelist-phrasing:
intent: Delete an assistant at a set API version
effect: destructive
questions:
- Can I delete an assistant through the call that requires an api-version?
- Is removing an assistant on a pinned API version permanent?
instructions:
- text: Delete assistant {assistant_id} with api-version {api_version}.
slots:
assistant_id: path.assistant_id
api_version: query.api-version
- text: Remove assistant {assistant_id} via the versioned delete endpoint.
slots:
assistant_id: path.assistant_id
method: generated
generated: '2026-09-26'
- target: $.paths['/threads'].post
update:
x-apievangelist-phrasing:
intent: Start a new conversation thread
effect: write
questions:
- How do I open a new conversation thread for an assistant to work in?
- Can I seed a new thread with starting messages when I create it?
instructions:
- text: Start a new empty conversation thread.
- text: 'Create a thread pre-loaded with these messages: {messages}.'
slots:
messages: requestBody.messages
- text: Open a new thread tagged with metadata {metadata}.
slots:
metadata: requestBody.metadata
method: generated
generated: '2026-09-26'
- target: $.paths['/threads/{thread_id}'].get
update:
x-apievangelist-phrasing:
intent: Retrieve a conversation thread
effect: read
questions:
- Can I look up a conversation thread and its metadata by id?
- When was a given thread created?
instructions:
- text: Show me thread {thread_id}.
slots:
thread_id: path.thread_id
- text: Fetch the details and metadata of conversation thread {thread_id}.
slots:
thread_id: path.thread_id
method: generated
generated: '2026-09-26'
- target: $.paths['/threads/{thread_id}'].post
update:
x-apievangelist-phrasing:
intent: Update a thread's metadata
effect: write
questions:
- Can I tag an existing conversation thread with my own metadata?
- What on a thread can be changed after it's created?
instructions:
- text: Set the metadata on thread {thread_id} to {metadata}.
slots:
thread_id: path.thread_id
metadata: requestBody.metadata
- text: Label conversation thread {thread_id} with {metadata}.
slots:
thread_id: path.thread_id
metadata: requestBody.metadata
method: generated
generated: '2026-09-26'
- target: $.paths['/threads/{thread_id}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a conversation thread
effect: destructive
questions:
- How do I delete a conversation thread when the chat is finished?
- Can a deleted thread be recovered afterwards?
instructions:
- text: Delete thread {thread_id}.
slots:
thread_id: path.thread_id
- text: Throw away the whole conversation thread {thread_id}.
slots:
thread_id: path.thread_id
method: generated
generated: '2026-09-26'
- target: $.paths['/threads/{thread_id}/messages'].get
update:
x-apievangelist-phrasing:
intent: List the messages in a thread
effect: read
questions:
- How do I read back every message in a conversation thread?
- Can I get a thread's messages oldest first instead of newest first?
instructions:
- text: List the messages in thread {thread_id}.
slots:
thread_id: path.thread_id
- text: Show the last {limit} messages of thread {thread_id} in {order} order.
slots:
limit: query.limit
thread_id: path.thread_id
order: query.order
method: generated
generated: '2026-09-26'
- target: $.paths['/threads/{thread_id}/messages'].post
update:
x-apievangelist-phrasing:
intent: Add a message to a thread
effect: write
questions:
- How do I post a user message into an existing thread?
- Can a message I add to a thread carry file attachments?
instructions:
- text: Add a {role} message saying {content} to thread {thread_id}.
slots:
role: requestBody.role
content: requestBody.content
thread_id: path.thread_id
- text: Post {content} into thread {thread_id} with files {file_ids} attached.
slots:
content: requestBody.content
thread_id: path.thread_id
file_ids: requestBody.file_ids
method: generated
generated: '2026-09-26'
- target: $.paths['/threads/{thread_id}/messages/{message_id}'].get
update:
x-apievangelist-phrasing:
intent: Retrieve one message from a thread
effect: read
questions:
- Can I fetch a single message out of a thread by its id?
- Who wrote a particular message in a conversation thread?
instructions:
- text: Show message {message_id} from thread {thread_id}.
slots:
message_id: path.message_id
thread_id: path.thread_id
- text: Get the content of message {message_id} in thread {thread_id}.
slots:
message_id: path.message_id
thread_id: path.thread_id
method: generated
generated: '2026-09-26'
- target: $.paths['/threads/{thread_id}/messages/{message_id}'].post
update:
x-apievangelist-phrasing:
intent: Update a message's metadata
effect: write
questions:
- Can I attach my own metadata to a message already in a thread?
- Is the text of a posted message editable, or only its metadata?
instructions:
- text: Set metadata {metadata} on message {message_id} in thread {thread_id}.
slots:
metadata: requestBody.metadata
message_id: path.message_id
thread_id: path.thread_id
- text: Tag message {message_id} of thread {thread_id} as reviewed.
slots:
message_id: path.message_id
thread_id: path.thread_id
method: generated
generated: '2026-09-26'
- target: $.paths['/threads/runs'].post
update:
x-apievangelist-phrasing:
intent: Create a thread and run it in one step
effect: write
questions:
- Can I start a new thread and have an assistant answer it in a single call?
- What's the quickest way to get an assistant response without creating the thread first?
instructions:
- text: Create a new thread and run assistant {assistant_id} on it right away.
slots:
assistant_id: requestBody.assistant_id
- text: Start thread {thread} and immediately run assistant {assistant_id} on it.
slots:
thread: requestBody.thread
assistant_id: requestBody.assistant_id
- text: Spin up a fresh thread with assistant {assistant_id} using model {model} for this run.
slots:
assistant_id: requestBody.assistant_id
model: requestBody.model
method: generated
generated: '2026-09-26'
- target: $.paths['/threads/{thread_id}/runs'].get
update:
x-apievangelist-phrasing:
intent: List the runs on a thread
effect: read
questions:
- Which assistant runs have been executed on a thread?
- Can I page through a thread's run history?
instructions:
- text: List the runs on thread {thread_id}.
slots:
thread_id: path.thread_id
- text: Show the {limit} most recent runs of thread {thread_id}.
slots:
limit: query.limit
thread_id: path.thread_id
method: generated
generated: '2026-09-26'
- target: $.paths['/threads/{thread_id}/runs'].post
update:
x-apievangelist-phrasing:
intent: Run an assistant on an existing thread
effect: write
questions:
- How do I have an assistant respond to a thread I already have?
- Can I override the assistant's instructions for just one run?
instructions:
- text: Run assistant {assistant_id} on thread {thread_id}.
slots:
assistant_id: requestBody.assistant_id
thread_id: path.thread_id
- text: 'Run assistant {assistant_id} on thread {thread_id} with these one-off instructions: {instructions}.'
slots:
assistant_id: requestBody.assistant_id
thread_id: path.thread_id
instructions: requestBody.instructions
method: generated
generated: '2026-09-26'
- target: $.paths['/threads/{thread_id}/runs/{run_id}'].get
update:
x-apievangelist-phrasing:
intent: Check the status of a run
effect: read
questions:
- Has my assistant run finished, or is it still in progress?
- Is a run waiting on me to submit tool outputs?
instructions:
- text: Check the status of run {run_id} on thread {thread_id}.
slots:
run_id: path.run_id
thread_id: path.thread_id
- text: Fetch run {run_id} in thread {thread_id} and tell me if it needs action.
slots:
run_id: path.run_id
thread_id: path.thread_id
method: generated
generated: '2026-09-26'
- target: $.paths['/threads/{thread_id}/runs/{run_id}'].post
update:
x-apievangelist-phrasing:
intent: Update a run's metadata
effect: write
questions:
- Can I add my own tracking metadata to a run after it starts?
- What part of an existing run am I allowed to modify?
instructions:
- text: Set metadata {metadata} on run {run_id} of thread {thread_id}.
slots:
metadata: requestBody.metadata
run_id: path.run_id
thread_id: path.thread_id
- text: Tag run {run_id} in thread {thread_id} with my ticket reference {metadata}.
slots:
run_id: path.run_id
thread_id: path.thread_id
metadata: requestBody.metadata
method: generated
generated: '2026-09-26'
- target: $.paths['/threads/{thread_id}/runs/{run_id}/submit_tool_outputs'].post
update:
x-apievangelist-phrasing:
intent: Submit tool call results to a waiting run
effect: write
questions:
- How do I hand my function call results back to a run that requires action?
- What does a run need from me when its status is requires_action?
instructions:
- text: Submit tool outputs {tool_outputs} to run {run_id} on thread {thread_id}.
slots:
tool_outputs: requestBody.tool_outputs
run_id: path.run_id
thread_id: path.thread_id
- text: Send my function results back so run {run_id} in thread {thread_id} can continue.
slots:
run_id: path.run_id
thread_id: path.thread_id
method: generated
generated: '2026-09-26'
- target: $.paths['/threads/{thread_id}/runs/{run_id}/cancel'].post
update:
x-apievangelist-phrasing:
intent: Cancel an in-progress run
effect: destructive
questions:
- Can I stop an assistant run that's still in progress?
- What happens if I cancel a run midway through?
instructions:
- text: Cancel run {run_id} on thread {thread_id}.
slots:
run_id: path.run_id
thread_id: path.thread_id
- text: Stop the in-progress run {run_id} in thread {thread_id} now.
slots:
run_id: path.run_id
thread_id: path.thread_id
method: generated
generated: '2026-09-26'
- target: $.paths['/threads/{thread_id}/runs/{run_id}/steps'].get
update:
x-apievangelist-phrasing:
intent: List the steps a run took
effect: read
questions:
- What steps did the assistant go through during a run?
- Can I see which tool calls a run made, step by step?
instructions:
- text: List the steps of run {run_id} on thread {thread_id}.
slots:
run_id: path.run_id
thread_id: path.thread_id
- text: Show the first {limit} steps run {run_id} took in thread {thread_id}.
slots:
limit: query.limit
run_id: path.run_id
thread_id: path.thread_id
method: generated
generated: '2026-09-26'
- target: $.paths['/threads/{thread_id}/runs/{run_id}/steps/{step_id}'].get
update:
x-apievangelist-phrasing:
intent: Retrieve a single run step
effect: read
questions:
- Can I inspect one specific step of a run in detail?
- Which tool call happened in a particular run step?
instructions:
- text: Show step {step_id} of run {run_id} in thread {thread_id}.
slots:
step_id: path.step_id
run_id: path.run_id
thread_id: path.thread_id
- text: Get the details of run step {step_id} from run {run_id} on thread {thread_id}.
slots:
step_id: path.step_id
run_id: path.run_id
thread_id: path.thread_id
method: generated
generated: '2026-09-26'
- target: $.paths['/assistants/{assistant_id}/files'].get
update:
x-apievangelist-phrasing:
intent: List an assistant's files at a set API version
effect: read
questions:
- Can I list an assistant's attached files while pinning an api-version?
- Which versioned call pages through the assistant files of one assistant?
instructions:
- text: List assistant files for {assistant_id} on api-version {api_version}.
slots:
assistant_id: path.assistant_id
api_version: query.api-version
- text: Page through the assistant files of {assistant_id} after file {after} via the versioned endpoint.
slots:
assistant_id: path.assistant_id
after: query.after
method: generated
generated: '2026-09-26'
- target: $.paths['/assistants/{assistant_id}/files'].post
update:
x-apievangelist-phrasing:
intent: Attach a file to an assistant at a set API version
effect: write
questions:
- Can I create an assistant file through the call that takes an api-version?
- Is there a version-pinned way to link an uploaded file to an assistant?
instructions:
- text: Create an assistant file linking {file_id} to {assistant_id} on api-version {api_version}.
slots:
file_id: requestBody.file_id
assistant_id: path.assistant_id
api_version: query.api-version
- text: Use the versioned endpoint to attach file {file_id} to assistant {assistant_id}.
slots:
file_id: requestBody.file_id
assistant_id: path.assistant_id
method: generated
generated: '2026-09-26'
- target: $.paths['/assistants/{assistant_id}/files/{file_id}'].get
update:
x-apievangelist-phrasing:
intent: Retrieve an assistant file at a set API version
effect: read
questions:
- Can I retrieve one assistant file record while pinning an api-version?
- Which versioned call returns a single AssistantFile?
instructions:
- text: Retrieve AssistantFile {file_id} of {assistant_id} on api-version {api_version}.
slots:
file_id: path.file_id
assistant_id: path.assistant_id
api_version: query.api-version
- text: Look up AssistantFile {file_id} for assistant {assistant_id} via the versioned endpoint.
slots:
file_id: path.file_id
assistant_id: path.assistant_id
method: generated
generated: '2026-09-26'
- target: $.paths['/assistants/{assistant_id}/files/{file_id}'].delete
update:
x-apievangelist-phrasing:
intent: Delete an assistant file at a set API version
effect: destructive
questions:
- Can I delete an AssistantFile through the versioned endpoint?
- Is removing an assistant file on a pinned api-version reversible?
instructions:
- text: Delete AssistantFile {file_id} from {assistant_id} on api-version {api_version}.
slots:
file_id: path.file_id
assistant_id: path.assistant_id
api_version: query.api-version
- text: Remove the assistant file record {file_id} of {assistant_id} through the versioned delete.
slots:
file_id: path.file_id
assistant_id: path.assistant_id
method: generated
generated: '2026-09-26'
- target: $.paths['/threads/{thread_id}/messages/{message_id}/files'].get
update:
x-apievangelist-phrasing:
intent: List the files attached to a message
effect: read
questions:
- Which files were attached to a particular message in a thread?
- Can I page through a message's file attachments?
instructions:
- text: List the files on message {message_id} in thread {thread_id}.
slots:
message_id: path.message_id
thread_id: path.thread_id
- text: Show up to {limit} attachments of message {message_id} in thread {thread_id}.
slots:
limit: query.limit
message_id: path.message_id
thread_id: path.thread_id
method: generated
generated: '2026-09-26'
- target: $.paths['/threads/{thread_id}/messages/{message_id}/files/{file_id}'].get
update:
x-apievangelist-phrasing:
intent: Retrieve one file attached to a message
effect: read
questions:
- Can I look up a single file attachment on a thread message?
- Is a particular file still attached to that message?
instructions:
- text: Show file {file_id} attached to message {message_id} in thread {thread_id}.
slots:
file_id: path.file_id
message_id: path.message_id
thread_id: path.thread_id
- text: Get the message file record {file_id} on message {message_id} of thread {thread_id}.
slots:
file_id: path.file_id
message_id: path.message_id
thread_id: path.thread_id
method: generated
generated: '2026-09-26'
Work with this as data
Every overlay here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for openapi overlays
4 MCP tools reach this
find_overlaysBrowse and filter every overlay in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This overlay
curl "https://apis.io/api/v1/overlays/microsoft-azure-assistants-api-phrasing-overlay"
All openapi overlays
curl "https://apis.io/api/v1/overlays?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.