Run and Run Step API

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:

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

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

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

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

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

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

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

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

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

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

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)

Last updated