AI/ML API Documentation
API KeyModelsPlaygroundGitHubGet Support
  • 📞Contact Sales
  • 🗯️Send Feedback
  • Quickstart
    • 🧭Documentation Map
    • Setting Up
    • Supported SDKs
  • API REFERENCES
    • 📒All Model IDs
    • Text Models (LLM)
      • AI21 Labs
        • jamba-1-5-mini
      • Alibaba Cloud
        • qwen-max
        • qwen-plus
        • qwen-turbo
        • Qwen2-72B-Instruct
        • Qwen2.5-7B-Instruct-Turbo
        • Qwen2.5-72B-Instruct-Turbo
        • Qwen2.5-Coder-32B-Instruct
        • Qwen-QwQ-32B
        • Qwen3-235B-A22B
      • Anthracite
        • magnum-v4
      • Anthropic
        • Claude 3 Haiku
        • Claude 3.5 Haiku
        • Claude 3 Opus
        • Claude 3 Sonnet
        • Claude 3.5 Sonnet
        • Claude 3.7 Sonnet
      • Cohere
        • command-r-plus
      • DeepSeek
        • DeepSeek V3
        • DeepSeek R1
      • Google
        • gemini-1.5-flash
        • gemini-1.5-pro
        • gemini-2.0-flash-exp
        • gemini-2.0-flash-thinking-exp-01-21
        • gemini-2.0-flash
        • gemini-2.5-flash-preview
        • gemini-2.5-pro-exp
        • gemini-2.5-pro-preview
        • gemma-2
        • gemma-3
      • Gryphe
        • MythoMax-L2-13b-Lite
      • Meta
        • Llama-3-chat-hf
        • Llama-3-8B-Instruct-Lite
        • Llama-3.1-8B-Instruct-Turbo
        • Llama-3.1-70B-Instruct-Turbo
        • Llama-3.1-405B-Instruct-Turbo
        • Llama-3.2-11B-Vision-Instruct-Turbo
        • Llama-3.2-90B-Vision-Instruct-Turbo
        • Llama-Vision-Free
        • Llama-3.2-3B-Instruct-Turbo
        • Llama-3.3-70B-Instruct-Turbo
        • Llama-4-scout
        • Llama-4-maverick
      • MiniMax
        • text-01
        • abab6.5s-chat
      • Mistral AI
        • codestral-2501
        • mistral-nemo
        • mistral-tiny
        • Mistral-7B-Instruct
        • Mixtral-8x22B-Instruct
        • Mixtral-8x7B-Instruct
      • NVIDIA
        • Llama-3.1-Nemotron-70B-Instruct-HF
        • llama-3.1-nemotron-70b
      • NeverSleep
        • llama-3.1-lumimaid
      • NousResearch
        • Nous-Hermes-2-Mixtral-8x7B-DPO
      • OpenAI
        • gpt-3.5-turbo
        • gpt-4
        • gpt-4-preview
        • gpt-4-turbo
        • gpt-4o
        • gpt-4o-mini
        • gpt-4o-audio-preview
        • gpt-4o-mini-audio-preview
        • gpt-4o-search-preview
        • gpt-4o-mini-search-preview
        • o1
        • o1-mini
        • o1-preview
        • o3-mini
        • gpt-4.5-preview
        • gpt-4.1
        • gpt-4.1-mini
        • gpt-4.1-nano
        • o4-mini
      • xAI
        • grok-beta
        • grok-3-beta
        • grok-3-mini-beta
    • Image Models
      • Flux
        • flux-pro
        • flux-pro/v1.1
        • flux-pro/v1.1-ultra
        • flux-realism
        • flux/dev
        • flux/dev/image-to-image
        • flux/schnell
      • Google
        • Imagen 3.0
      • OpenAI
        • DALL·E 2
        • DALL·E 3
      • RecraftAI
        • Recraft v3
      • Stability AI
        • Stable Diffusion v3 Medium
        • Stable Diffusion v3.5 Large
    • Video Models
      • Alibaba Cloud
        • Wan 2.1 (Text-to-Video)
      • Google
        • Veo2 (Image-to-Video)
        • Veo2 (Text-to-Video)
      • Kling AI
        • v1-standard/image-to-video
        • v1-standard/text-to-video
        • v1-pro/image-to-video
        • v1-pro/text-to-video
        • v1.6-standard/text-to-video
        • v1.6-standard/image-to-video
        • v1.6-pro/image-to-video
        • v1.6-pro/text-to-video
        • v1.6-standard/effects
        • v1.6-pro/effects
        • v2-master/image-to-video
        • v2-master/text-to-video
      • Luma AI
        • Text-to-Video v2
        • Text-to-Video v1 (legacy)
      • MiniMax
        • video-01
        • video-01-live2d
      • Runway
        • gen3a_turbo
        • gen4_turbo
    • Music Models
      • MiniMax
        • minimax-music [legacy]
        • music-01
      • Stability AI
        • stable-audio
    • Voice/Speech Models
      • Speech-to-Text
        • stt [legacy]
        • Deepgram
          • nova-2
        • OpenAI
          • whisper-base
          • whisper-large
          • whisper-medium
          • whisper-small
          • whisper-tiny
      • Text-to-Speech
        • Deepgram
          • aura
    • Content Moderation Models
      • Meta
        • Llama-Guard-3-11B-Vision-Turbo
        • LlamaGuard-2-8b
        • Meta-Llama-Guard-3-8B
    • 3D-Generating Models
      • Stability AI
        • triposr
    • Vision Models
      • Image Analysis
      • OCR: Optical Character Recognition
        • Google
          • Google OCR
        • Mistral AI
          • mistral-ocr-latest
      • OFR: Optical Feature Recognition
    • Embedding Models
      • Anthropic
        • voyage-2
        • voyage-code-2
        • voyage-finance-2
        • voyage-large-2
        • voyage-large-2-instruct
        • voyage-law-2
        • voyage-multilingual-2
      • BAAI
        • bge-base-en
        • bge-large-en
      • Google
        • textembedding-gecko
        • text-multilingual-embedding-002
      • OpenAI
        • text-embedding-3-large
        • text-embedding-3-small
        • text-embedding-ada-002
      • Together AI
        • m2-bert-80M-retrieval
  • Solutions
    • Bagoodex
      • AI Search Engine
        • Find Links
        • Find Images
        • Find Videos
        • Find the Weather
        • Find a Local Map
        • Get a Knowledge Structure
    • OpenAI
      • Assistants
        • Assistant API
        • Thread API
        • Message API
        • Run and Run Step API
        • Events
  • Use Cases
    • Create Images: Illustrate an Article
    • Animate Images: A Children’s Encyclopedia
    • Create an Assistant to Discuss a Specific Document
    • Create a 3D Model from an Image
    • Create a Looped GIF for a Web Banner
    • Read Text Aloud and Describe Images: Support People with Visual Impairments
    • Summarize Websites with AI-Powered Chrome Extension
  • Capabilities
    • Completion and Chat Completion
    • Streaming Mode
    • Code Generation
    • Thinking / Reasoning
    • Function Calling
    • Vision in Text Models (Image-To-Text)
    • Web Search
    • Features of Anthropic Models
    • Model comparison
  • FAQ
    • Can I use API in Python?
    • Can I use API in NodeJS?
    • What are the Pro Models?
    • How to use the Free Tier?
    • Are my requests cropped?
    • Can I call API in the asynchronous mode?
    • OpenAI SDK doesn't work?
  • Errors and Messages
    • General Info
    • Errors with status code 4xx
    • Errors with status code 5xx
  • Glossary
    • Concepts
  • Integrations
    • 🧩Our Integration List
    • Langflow
    • LiteLLM
Powered by GitBook
On this page

Was this helpful?

  1. Solutions
  2. OpenAI
  3. Assistants

Run and Run Step API

PreviousMessage APINextEvents

Last updated 1 month ago

Was this helpful?

Runs are processes that execute the assistant’s logic within a thread, allowing it to process messages, generate responses, and call external tools if needed. Runs go through different statuses, such as queued, in_progress, and completed, and trigger events based on their progress, including tool calls and message updates.

This page provides API schemas for the following methods:

After each schema, you'll find a short example demonstrating how to correctly call the described method in code using the OpenAI SDK.

Note that the method names in the API schema and the SDK often differ. Accordingly, when calling these methods via the REST API, you should use the names from the API schema, while for calls through the OpenAI SDK, use the names from the examples.

API Schemas

Create a run

Python + OpenAI SDK Example:

from openai import OpenAI
client = OpenAI()

run = client.beta.threads.runs.create(
  thread_id="thread_abc123",
  assistant_id="asst_abc123"
)

print(run)


Create a Thread and run it in one request

Python + OpenAI SDK Example:

from openai import OpenAI
client = OpenAI()

run = client.beta.threads.create_and_run(
  assistant_id="asst_abc123",
  thread={
    "messages": [
      {"role": "user", "content": "Explain deep learning to a 5 year old."}
    ]
  }
)

print(run)


Retrieve a list of Runs belonging to a specific Thread

Python + OpenAI SDK Example:

from openai import OpenAI
client = OpenAI()

runs = client.beta.threads.runs.list(
  "thread_abc123"
)

print(runs)


Retrieve information about a specific Run by its ID

Python + OpenAI SDK Example:

from openai import OpenAI
client = OpenAI()

run = client.beta.threads.runs.retrieve(
  thread_id="thread_abc123",
  run_id="run_abc123"
)

print(run)


Modify a specific run by its ID

Python + OpenAI SDK Example:

from openai import OpenAI
client = OpenAI()

run = client.beta.threads.runs.update(
  thread_id="thread_abc123",
  run_id="run_abc123",
  metadata={"user_id": "user_abc123"},
)

print(run)


Submit Tool outputs to a specific Run

Python + OpenAI SDK Example:

from openai import OpenAI
client = OpenAI()

run = client.beta.threads.runs.submit_tool_outputs(
  thread_id="thread_123",
  run_id="run_123",
  tool_outputs=[
    {
      "tool_call_id": "call_001",
      "output": "70 degrees and sunny."
    }
  ]
)

print(run)


Cancel a specific Run by its ID

Python + OpenAI SDK Example:

from openai import OpenAI
client = OpenAI()

run = client.beta.threads.runs.cancel(
  thread_id="thread_abc123",
  run_id="run_abc123"
)

print(run)


Retrieve a list of Run Steps belonging to a specific Run

Python + OpenAI SDK Example:

from openai import OpenAI
client = OpenAI()

run_steps = client.beta.threads.runs.steps.list(
    thread_id="thread_abc123",
    run_id="run_abc123"
)

print(run_steps)


Retrieve information about a specific Run Step by its ID

Python + OpenAI SDK Example:

from openai import OpenAI
client = OpenAI()

run_step = client.beta.threads.runs.steps.retrieve(
    thread_id="thread_abc123",
    run_id="run_abc123",
    step_id="step_abc123"
)

print(run_step)

https://api.aimlapi.com/threads/{threadId}/runs

https://api.aimlapi.com/threads/runs

https://api.aimlapi.com/threads/{threadId}/runs

https://api.aimlapi.com/threads/{threadId}/runs/{runId}

https://api.aimlapi.com/threads/{threadId}/runs/{runId}

https://api.aimlapi.com/threads/{threadId}/runs/{runId}/submit_tool_outputs

https://api.aimlapi.com/threads/{threadId}/runs/{runId}/cancel

https://api.aimlapi.com/threads/{threadId}/runs/{runId}/steps

https://api.aimlapi.com/threads/{threadId}/runs/{runId}/steps/{stepId}

Create a Run
Create a Thread and run it in one request
Retrieve a list of Runs belonging to a specific Thread
Retrieve information about a specific Run by its ID
Modify a specific Run by its ID
Submit Tool outputs to a specific Run
Cancel a specific Run by its ID
Retrieve a list of Run Steps belonging to a specific Run
Retrieve information about a specific Run Step by its ID
get
Authorizations
Path parameters
threadIdstringRequired
Query parameters
limitintegerOptional

A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20.

orderstringOptional

Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order.

beforestringOptional

A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list.

afterstringOptional

A cursor for use in pagination. after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list.

Responses
default
application/json
get
GET /threads/{threadId}/runs HTTP/1.1
Host: api.aimlapi.com
Authorization: Bearer <YOUR_AIMLAPI_KEY>
Accept: */*
default
{
  "object": "list",
  "data": [
    {
      "assistant_id": "text",
      "cancelled_at": 1,
      "completed_at": 1,
      "created_at": 1,
      "expires_at": 1,
      "failed_at": 1,
      "id": "text",
      "incomplete_details": {
        "reason": "text"
      },
      "instructions": "text",
      "last_error": {
        "code": "server_error",
        "message": "text"
      },
      "max_completion_tokens": 1,
      "max_prompt_tokens": 1,
      "metadata": null,
      "model": "text",
      "object": "thread.run",
      "parallel_tool_calls": true,
      "required_action": {
        "submit_tool_outputs": {
          "tool_calls": [
            {
              "function": {
                "arguments": "text",
                "name": "text"
              },
              "id": "text",
              "type": "function"
            }
          ]
        },
        "type": "submit_tool_outputs"
      },
      "response_format": "auto",
      "started_at": 1,
      "status": "queued",
      "temperature": 1,
      "thread_id": "text",
      "tool_choice": "none",
      "tools": [
        {
          "type": "code_interpreter"
        }
      ],
      "top_p": 1,
      "truncation_strategy": {
        "type": "text",
        "last_messages": 1
      },
      "usage": {
        "completion_tokens": 1,
        "prompt_tokens": 1,
        "total_tokens": 1
      }
    }
  ],
  "first_id": "text",
  "last_id": "text",
  "has_more": true
}
get
Authorizations
Path parameters
threadIdstringRequired
runIdstringRequired
Responses
default
application/json
get
GET /threads/{threadId}/runs/{runId} HTTP/1.1
Host: api.aimlapi.com
Authorization: Bearer <YOUR_AIMLAPI_KEY>
Accept: */*
default
{
  "assistant_id": "text",
  "cancelled_at": 1,
  "completed_at": 1,
  "created_at": 1,
  "expires_at": 1,
  "failed_at": 1,
  "id": "text",
  "incomplete_details": {
    "reason": "text"
  },
  "instructions": "text",
  "last_error": {
    "code": "server_error",
    "message": "text"
  },
  "max_completion_tokens": 1,
  "max_prompt_tokens": 1,
  "metadata": null,
  "model": "text",
  "object": "thread.run",
  "parallel_tool_calls": true,
  "required_action": {
    "submit_tool_outputs": {
      "tool_calls": [
        {
          "function": {
            "arguments": "text",
            "name": "text"
          },
          "id": "text",
          "type": "function"
        }
      ]
    },
    "type": "submit_tool_outputs"
  },
  "response_format": "auto",
  "started_at": 1,
  "status": "queued",
  "temperature": 1,
  "thread_id": "text",
  "tool_choice": "none",
  "tools": [
    {
      "type": "code_interpreter"
    }
  ],
  "top_p": 1,
  "truncation_strategy": {
    "type": "text",
    "last_messages": 1
  },
  "usage": {
    "completion_tokens": 1,
    "prompt_tokens": 1,
    "total_tokens": 1
  }
}
post
Authorizations
Path parameters
threadIdstringRequired
runIdstringRequired
Responses
default
application/json
post
POST /threads/{threadId}/runs/{runId}/cancel HTTP/1.1
Host: api.aimlapi.com
Authorization: Bearer <YOUR_AIMLAPI_KEY>
Accept: */*
default
{
  "assistant_id": "text",
  "cancelled_at": 1,
  "completed_at": 1,
  "created_at": 1,
  "expires_at": 1,
  "failed_at": 1,
  "id": "text",
  "incomplete_details": {
    "reason": "text"
  },
  "instructions": "text",
  "last_error": {
    "code": "server_error",
    "message": "text"
  },
  "max_completion_tokens": 1,
  "max_prompt_tokens": 1,
  "metadata": null,
  "model": "text",
  "object": "thread.run",
  "parallel_tool_calls": true,
  "required_action": {
    "submit_tool_outputs": {
      "tool_calls": [
        {
          "function": {
            "arguments": "text",
            "name": "text"
          },
          "id": "text",
          "type": "function"
        }
      ]
    },
    "type": "submit_tool_outputs"
  },
  "response_format": "auto",
  "started_at": 1,
  "status": "queued",
  "temperature": 1,
  "thread_id": "text",
  "tool_choice": "none",
  "tools": [
    {
      "type": "code_interpreter"
    }
  ],
  "top_p": 1,
  "truncation_strategy": {
    "type": "text",
    "last_messages": 1
  },
  "usage": {
    "completion_tokens": 1,
    "prompt_tokens": 1,
    "total_tokens": 1
  }
}
get
Authorizations
Path parameters
threadIdstringRequired
runIdstringRequired
Query parameters
limitintegerOptional

A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20.

orderstringOptional

Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order.

beforestringOptional

A cursor for use in pagination. before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list.

afterstringOptional

A cursor for use in pagination. after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list.

run_idstringOptional

Filter Messages by the Run ID that generated them.

Responses
default
application/json
get
GET /threads/{threadId}/runs/{runId}/steps HTTP/1.1
Host: api.aimlapi.com
Authorization: Bearer <YOUR_AIMLAPI_KEY>
Accept: */*
default
{
  "object": "list",
  "data": [
    {
      "assistant_id": "text",
      "cancelled_at": 1,
      "completed_at": 1,
      "created_at": 1,
      "expired_at": 1,
      "failed_at": 1,
      "id": "text",
      "last_error": {
        "code": "server_error",
        "message": "text"
      },
      "metadata": null,
      "object": "thread.run.step",
      "run_id": "text",
      "status": "in_progress",
      "step_details": {
        "message_creation": {
          "message_id": "text"
        },
        "type": "message_creation"
      },
      "thread_id": "text",
      "type": "message_creation",
      "usage": {
        "completion_tokens": 1,
        "prompt_tokens": 1,
        "total_tokens": 1
      }
    }
  ],
  "first_id": "text",
  "last_id": "text",
  "has_more": true
}
get
Authorizations
Path parameters
threadIdstringRequired
runIdstringRequired
stepIdstringRequired
Responses
default
application/json
get
GET /threads/{threadId}/runs/{runId}/steps/{stepId} HTTP/1.1
Host: api.aimlapi.com
Authorization: Bearer <YOUR_AIMLAPI_KEY>
Accept: */*
default
{
  "assistant_id": "text",
  "cancelled_at": 1,
  "completed_at": 1,
  "created_at": 1,
  "expired_at": 1,
  "failed_at": 1,
  "id": "text",
  "last_error": {
    "code": "server_error",
    "message": "text"
  },
  "metadata": null,
  "object": "thread.run.step",
  "run_id": "text",
  "status": "in_progress",
  "step_details": {
    "message_creation": {
      "message_id": "text"
    },
    "type": "message_creation"
  },
  "thread_id": "text",
  "type": "message_creation",
  "usage": {
    "completion_tokens": 1,
    "prompt_tokens": 1,
    "total_tokens": 1
  }
}
  • API Schemas
  • Create a run
  • POST/threads/{threadId}/runs
  • Create a Thread and run it in one request
  • POST/threads/runs
  • Retrieve a list of Runs belonging to a specific Thread
  • GET/threads/{threadId}/runs
  • Retrieve information about a specific Run by its ID
  • GET/threads/{threadId}/runs/{runId}
  • Modify a specific run by its ID
  • POST/threads/{threadId}/runs/{runId}
  • Submit Tool outputs to a specific Run
  • POST/threads/{threadId}/runs/{runId}/submit_tool_outputs
  • Cancel a specific Run by its ID
  • POST/threads/{threadId}/runs/{runId}/cancel
  • Retrieve a list of Run Steps belonging to a specific Run
  • GET/threads/{threadId}/runs/{runId}/steps
  • Retrieve information about a specific Run Step by its ID
  • GET/threads/{threadId}/runs/{runId}/steps/{stepId}
post
Authorizations
Path parameters
threadIdstringRequired
Body
assistant_idstringRequired

The ID of the Assistant to use to execute this Run.

additional_instructionsstring | nullableOptional

Appends additional instructions at the end of the instructions for the Run. This is useful for modifying the behavior on a per-Run basis without overriding other instructions.

instructionsstring | nullableOptional

Overrides the instructions of the Assistant. This is useful for modifying the behavior on a per-Run basis.

max_completion_tokensinteger | nullableOptional

The maximum number of completion tokens that may be used over the course of the Run. The Run will make a best effort to use only the number of completion tokens specified, across multiple turns of the Run. If the Run exceeds the number of completion tokens specified, the Run will end with status incomplete

max_prompt_tokensinteger | nullableOptional

The maximum number of prompt tokens that may be used over the course of the Run. The Run will make a best effort to use only the number of prompt tokens specified, across multiple turns of the Run. If the Run exceeds the number of prompt tokens specified, the Run will end with status incomplete.

modelstring · enumOptional

The ID of the model to be used to execute this Run. If a value is provided here, it will override the model associated with the Assistant. If not, the model associated with the Assistant will be used.

Possible values:
parallel_tool_callsbooleanOptional

Whether to enable parallel function calling during tool use.

reasoning_effortstring · enumOptional

Constrains effort on reasoning for reasoning models.

Possible values:
response_formatany ofOptional

Specifies the format that the model must output.

string · enumOptionalPossible values:
or
one ofOptional
or
or
or
any | nullableOptional
streamboolean | nullableOptional

If True, returns a stream of events that happen during the Run as server-sent events.

temperaturenumber · max: 2Optional

What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.

tool_choiceany ofOptional

Controls which (if any) tool is called by the model.

  • none means the model will not call any tools and instead generates a message.
  • auto is the default value and means the model can pick between generating a message or calling one or more tools.
  • required means the model must call one or more tools before responding to the user. Specifying a particular tool via {"type": "function", "function": {"name": "my_function"}} forces the model to call that tool.
string · enumOptionalPossible values:
or
or
any | nullableOptional
top_pnumber | nullableOptional

An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered.

Responses
default
application/json
post
POST /threads/{threadId}/runs HTTP/1.1
Host: api.aimlapi.com
Authorization: Bearer <YOUR_AIMLAPI_KEY>
Content-Type: application/json
Accept: */*
Content-Length: 604

{
  "assistant_id": "text",
  "additional_instructions": "text",
  "additional_messages": [
    {
      "role": "user",
      "content": "text",
      "attachments": [
        {
          "file_id": "text",
          "tools": [
            {
              "type": "code_interpreter"
            }
          ]
        }
      ],
      "metadata": {
        "ANY_ADDITIONAL_PROPERTY": "text"
      }
    }
  ],
  "instructions": "text",
  "max_completion_tokens": 1,
  "max_prompt_tokens": 1,
  "metadata": {
    "ANY_ADDITIONAL_PROPERTY": "text"
  },
  "model": "openai/gpt-4o",
  "parallel_tool_calls": true,
  "reasoning_effort": "low",
  "response_format": "auto",
  "stream": true,
  "temperature": 1,
  "tool_choice": "none",
  "tools": [
    {
      "type": "code_interpreter"
    }
  ],
  "top_p": 1,
  "truncation_strategy": {
    "type": "auto",
    "last_messages": 1
  }
}
default
{
  "assistant_id": "text",
  "cancelled_at": 1,
  "completed_at": 1,
  "created_at": 1,
  "expires_at": 1,
  "failed_at": 1,
  "id": "text",
  "incomplete_details": {
    "reason": "text"
  },
  "instructions": "text",
  "last_error": {
    "code": "server_error",
    "message": "text"
  },
  "max_completion_tokens": 1,
  "max_prompt_tokens": 1,
  "metadata": null,
  "model": "text",
  "object": "thread.run",
  "parallel_tool_calls": true,
  "required_action": {
    "submit_tool_outputs": {
      "tool_calls": [
        {
          "function": {
            "arguments": "text",
            "name": "text"
          },
          "id": "text",
          "type": "function"
        }
      ]
    },
    "type": "submit_tool_outputs"
  },
  "response_format": "auto",
  "started_at": 1,
  "status": "queued",
  "temperature": 1,
  "thread_id": "text",
  "tool_choice": "none",
  "tools": [
    {
      "type": "code_interpreter"
    }
  ],
  "top_p": 1,
  "truncation_strategy": {
    "type": "text",
    "last_messages": 1
  },
  "usage": {
    "completion_tokens": 1,
    "prompt_tokens": 1,
    "total_tokens": 1
  }
}
post
Authorizations
Body
assistant_idstringRequired

The ID of the Assistant to use to execute this Run.

instructionsstring | nullableOptional

Overrides the instructions of the Assistant. This is useful for modifying the behavior on a per-Run basis.

max_completion_tokensinteger | nullableOptional

The maximum number of completion tokens that may be used over the course of the Run. The Run will make a best effort to use only the number of completion tokens specified, across multiple turns of the Run. If the Run exceeds the number of completion tokens specified, the Run will end with status incomplete

max_prompt_tokensinteger | nullableOptional

The maximum number of prompt tokens that may be used over the course of the Run. The Run will make a best effort to use only the number of prompt tokens specified, across multiple turns of the Run. If the Run exceeds the number of prompt tokens specified, the Run will end with status incomplete.

modelstring · enum | nullableOptional

The ID of the model to be used to execute this Run. If a value is provided here, it will override the model associated with the Assistant. If not, the model associated with the Assistant will be used.

Possible values:
parallel_tool_callsbooleanOptional

Whether to enable parallel function calling during tool use.

response_formatany ofOptional

Specifies the format that the model must output.

string · enumOptionalPossible values:
or
one ofOptional
or
or
or
any | nullableOptional
streamboolean | nullableOptional

If True, returns a stream of events that happen during the Run as server-sent events.

temperaturenumber | nullableOptional

What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.

tool_choiceany ofOptional

Controls which (if any) tool is called by the model.

  • none means the model will not call any tools and instead generates a message.
  • auto is the default value and means the model can pick between generating a message or calling one or more tools.
  • required means the model must call one or more tools before responding to the user. Specifying a particular tool via {"type": "function", "function": {"name": "my_function"}} forces the model to call that tool.
string · enumOptionalPossible values:
or
top_pnumber | nullableOptional

An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered.

Responses
default
application/json
post
POST /threads/runs HTTP/1.1
Host: api.aimlapi.com
Authorization: Bearer <YOUR_AIMLAPI_KEY>
Content-Type: application/json
Accept: */*
Content-Length: 1032

{
  "assistant_id": "text",
  "instructions": "text",
  "max_completion_tokens": 1,
  "max_prompt_tokens": 1,
  "metadata": {
    "ANY_ADDITIONAL_PROPERTY": "text"
  },
  "model": "openai/gpt-4o",
  "parallel_tool_calls": true,
  "response_format": "auto",
  "stream": true,
  "temperature": 1,
  "thread": {
    "messages": [
      {
        "role": "user",
        "content": "text",
        "attachments": [
          {
            "file_id": "text",
            "tools": [
              {
                "type": "code_interpreter"
              }
            ]
          }
        ],
        "metadata": {
          "ANY_ADDITIONAL_PROPERTY": "text"
        }
      }
    ],
    "metadata": {
      "ANY_ADDITIONAL_PROPERTY": "text"
    },
    "tool_resources": {
      "code_interpreter": {
        "file_ids": []
      },
      "file_search": {
        "vector_store_ids": [
          "text"
        ],
        "vector_stores": [
          {
            "chunking_strategy": {
              "type": "auto"
            },
            "file_ids": [
              "text"
            ],
            "metadata": {
              "ANY_ADDITIONAL_PROPERTY": "text"
            }
          }
        ]
      }
    }
  },
  "tool_choice": "none",
  "tool_resources": {
    "code_interpreter": {
      "file_ids": []
    },
    "file_search": {
      "vector_store_ids": [
        "text"
      ],
      "vector_stores": [
        {
          "chunking_strategy": {
            "type": "auto"
          },
          "file_ids": [
            "text"
          ],
          "metadata": {
            "ANY_ADDITIONAL_PROPERTY": "text"
          }
        }
      ]
    }
  },
  "tools": [
    {
      "type": "code_interpreter"
    }
  ],
  "top_p": 1,
  "truncation_strategy": {
    "type": "auto",
    "last_messages": 1
  }
}
default
{
  "assistant_id": "text",
  "cancelled_at": 1,
  "completed_at": 1,
  "created_at": 1,
  "expires_at": 1,
  "failed_at": 1,
  "id": "text",
  "incomplete_details": {
    "reason": "text"
  },
  "instructions": "text",
  "last_error": {
    "code": "server_error",
    "message": "text"
  },
  "max_completion_tokens": 1,
  "max_prompt_tokens": 1,
  "metadata": null,
  "model": "text",
  "object": "thread.run",
  "parallel_tool_calls": true,
  "required_action": {
    "submit_tool_outputs": {
      "tool_calls": [
        {
          "function": {
            "arguments": "text",
            "name": "text"
          },
          "id": "text",
          "type": "function"
        }
      ]
    },
    "type": "submit_tool_outputs"
  },
  "response_format": "auto",
  "started_at": 1,
  "status": "queued",
  "temperature": 1,
  "thread_id": "text",
  "tool_choice": "none",
  "tools": [
    {
      "type": "code_interpreter"
    }
  ],
  "top_p": 1,
  "truncation_strategy": {
    "type": "text",
    "last_messages": 1
  },
  "usage": {
    "completion_tokens": 1,
    "prompt_tokens": 1,
    "total_tokens": 1
  }
}
post
Authorizations
Path parameters
threadIdstringRequired
runIdstringRequired
Body
Responses
default
application/json
post
POST /threads/{threadId}/runs/{runId} HTTP/1.1
Host: api.aimlapi.com
Authorization: Bearer <YOUR_AIMLAPI_KEY>
Content-Type: application/json
Accept: */*
Content-Length: 47

{
  "metadata": {
    "ANY_ADDITIONAL_PROPERTY": "text"
  }
}
default
{
  "assistant_id": "text",
  "cancelled_at": 1,
  "completed_at": 1,
  "created_at": 1,
  "expires_at": 1,
  "failed_at": 1,
  "id": "text",
  "incomplete_details": {
    "reason": "text"
  },
  "instructions": "text",
  "last_error": {
    "code": "server_error",
    "message": "text"
  },
  "max_completion_tokens": 1,
  "max_prompt_tokens": 1,
  "metadata": null,
  "model": "text",
  "object": "thread.run",
  "parallel_tool_calls": true,
  "required_action": {
    "submit_tool_outputs": {
      "tool_calls": [
        {
          "function": {
            "arguments": "text",
            "name": "text"
          },
          "id": "text",
          "type": "function"
        }
      ]
    },
    "type": "submit_tool_outputs"
  },
  "response_format": "auto",
  "started_at": 1,
  "status": "queued",
  "temperature": 1,
  "thread_id": "text",
  "tool_choice": "none",
  "tools": [
    {
      "type": "code_interpreter"
    }
  ],
  "top_p": 1,
  "truncation_strategy": {
    "type": "text",
    "last_messages": 1
  },
  "usage": {
    "completion_tokens": 1,
    "prompt_tokens": 1,
    "total_tokens": 1
  }
}
post
Authorizations
Path parameters
threadIdstringRequired
runIdstringRequired
Body
streamboolean | nullableOptional

If True, returns a stream of events that happen during the Run as server-sent events.

Responses
default
application/json
post
POST /threads/{threadId}/runs/{runId}/submit_tool_outputs HTTP/1.1
Host: api.aimlapi.com
Authorization: Bearer <YOUR_AIMLAPI_KEY>
Content-Type: application/json
Accept: */*
Content-Length: 72

{
  "tool_outputs": [
    {
      "output": "text",
      "tool_call_id": "text"
    }
  ],
  "stream": true
}
default
{
  "assistant_id": "text",
  "cancelled_at": 1,
  "completed_at": 1,
  "created_at": 1,
  "expires_at": 1,
  "failed_at": 1,
  "id": "text",
  "incomplete_details": {
    "reason": "text"
  },
  "instructions": "text",
  "last_error": {
    "code": "server_error",
    "message": "text"
  },
  "max_completion_tokens": 1,
  "max_prompt_tokens": 1,
  "metadata": null,
  "model": "text",
  "object": "thread.run",
  "parallel_tool_calls": true,
  "required_action": {
    "submit_tool_outputs": {
      "tool_calls": [
        {
          "function": {
            "arguments": "text",
            "name": "text"
          },
          "id": "text",
          "type": "function"
        }
      ]
    },
    "type": "submit_tool_outputs"
  },
  "response_format": "auto",
  "started_at": 1,
  "status": "queued",
  "temperature": 1,
  "thread_id": "text",
  "tool_choice": "none",
  "tools": [
    {
      "type": "code_interpreter"
    }
  ],
  "top_p": 1,
  "truncation_strategy": {
    "type": "text",
    "last_messages": 1
  },
  "usage": {
    "completion_tokens": 1,
    "prompt_tokens": 1,
    "total_tokens": 1
  }
}