Skip to main content

This browser is no longer supported.

Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.

Download Microsoft Edge More info about Internet Explorer and Microsoft Edge
microsoft-foundry.rest.security.o-auth2-auth

Realtime

Create a Realtime client secret

POST /openai/v1/realtime/client_secrets

Creates a short-lived Realtime client secret that can include session configuration and be used by client applications without exposing the main API key.

Request Body

Create a client secret with the given session configuration.

Content-Type: application/json
expires_after OpenAI.RealtimeCreateClientSecretRequestExpiresAfter
anchor enum
created_at
seconds integer
session transcription | realtime
One of the following:
transcription OpenAI.RealtimeTranscriptionSessionCreateRequestGA

Realtime transcription session object configuration.

type enum required

The type of session to create. Always transcription for transcription sessions.

transcription
audio OpenAI.RealtimeTranscriptionSessionCreateRequestGAAudio
input OpenAI.RealtimeTranscriptionSessionCreateRequestGAAudioInput
format audio/pcm | audio/pcmu | audio/pcma
One of the following:
audio/pcm OpenAI.RealtimeAudioFormatsAudioPcm
type enum required
audio/pcm
rate enum
24000
audio/pcmu OpenAI.RealtimeAudioFormatsAudioPcmu
type enum required
audio/pcmu
audio/pcma OpenAI.RealtimeAudioFormatsAudioPcma
type enum required
audio/pcma
transcription OpenAI.AudioTranscription
model string | enum

The model to use for transcription. Current options are whisper-1, gpt-transcribe, gpt-live-transcribe, gpt-4o-mini-transcribe, gpt-4o-mini-transcribe-2025-12-15, gpt-4o-transcribe, gpt-4o-transcribe-diarize, and gpt-realtime-whisper. Use gpt-4o-transcribe-diarize when you need diarization with speaker labels.

Any of the following:
string
enum
whisper-1gpt-transcribegpt-live-transcribegpt-4o-mini-transcribegpt-4o-mini-transcribe-2025-12-15gpt-4o-transcribegpt-4o-transcribe-diarizegpt-realtime-whisper
language string

The language of the input audio. Supplying the input language in ISO-639-1 (e.g. en) format will improve accuracy and latency.

languages string[]

Possible languages of the input audio, in ISO-639-1 format. Supported by gpt-transcribe and gpt-live-transcribe.

keywords string[]

Words or phrases to guide transcription of the input audio. Supported by gpt-transcribe and gpt-live-transcribe.

prompt string

An optional text to guide the model's style or continue a previous audio segment. For whisper-1, the prompt is a list of keywords. For gpt-4o-transcribe models (excluding gpt-4o-transcribe-diarize), the prompt is a free text string, for example "expect words related to technology". Prompt is not supported with gpt-realtime-whisper in GA Realtime sessions.

delay enum

Controls how long the model waits before emitting transcription text. Higher values can improve transcription accuracy at the cost of latency. Only supported with gpt-realtime-whisper in GA Realtime sessions.

minimallowmediumhighxhigh
noise_reduction OpenAI.RealtimeTranscriptionSessionCreateRequestGAAudioInputNoiseReduction
type enum

Type of noise reduction. near_field is for close-talking microphones such as headphones, far_field is for far-field microphones such as laptop or conference room microphones.

near_fieldfar_field
turn_detection server_vad | semantic_vad

Configuration for turn detection, ether Server VAD or Semantic VAD. This can be set to null to turn off, in which case the client must manually trigger model response. Server VAD means that the model will detect the start and end of speech based on audio volume and respond at the end of user speech. Semantic VAD is more advanced and uses a turn detection model (in conjunction with VAD) to semantically estimate whether the user has finished speaking, then dynamically sets a timeout based on this probability. For example, if user audio trails off with "uhhm", the model will score a low probability of turn end and wait longer for the user to continue speaking. This can be useful for more natural conversations, but may have a higher latency. For gpt-realtime-whisper transcription sessions, turn detection must be set to null; VAD is not supported.

One of the following:
server_vad OpenAI.RealtimeTurnDetectionServerVad
type enum required
server_vad
threshold number
prefix_padding_ms integer
silence_duration_ms integer
create_response boolean
interrupt_response boolean
idle_timeout_ms integer | null
semantic_vad OpenAI.RealtimeTurnDetectionSemanticVad
type enum required
semantic_vad
eagerness enum
lowmediumhighauto
create_response boolean
interrupt_response boolean
include enum[]

Additional fields to include in server outputs. item.input_audio_transcription.logprobs: Include logprobs for input audio transcription.

realtime OpenAI.RealtimeSessionCreateRequestGA

Realtime session object configuration.

type enum required

The type of session to create. Always realtime for the Realtime API.

realtime
output_modalities enum[]

The set of modalities the model can respond with. It defaults to ["audio"], indicating that the model will respond with audio plus a transcript. ["text"] can be used to make the model respond with text only. It is not possible to request both text and audio at the same time.

model string | enum

The Realtime model used for this session.

Any of the following:
string
enum
gpt-realtimegpt-realtime-1.5gpt-realtime-2gpt-realtime-2.1gpt-realtime-2.1-minigpt-realtime-2025-08-28gpt-realtime-minigpt-realtime-mini-2025-10-06gpt-realtime-mini-2025-12-15gpt-audio-1.5gpt-audio-minigpt-audio-mini-2025-10-06gpt-audio-mini-2025-12-15
instructions string

The default system instructions (i.e. system message) prepended to model calls. This field allows the client to guide the model on desired responses. The model can be instructed on response content and format, (e.g. "be extremely succinct", "act friendly", "here are examples of good responses") and on audio behavior (e.g. "talk quickly", "inject emotion into your voice", "laugh frequently"). The instructions are not guaranteed to be followed by the model, but they provide guidance to the model on the desired behavior. Note that the server sets default instructions which will be used if this field is not set and are visible in the session.created event at the start of the session.

audio OpenAI.RealtimeSessionCreateRequestGAAudio
input OpenAI.RealtimeSessionCreateRequestGAAudioInput
format audio/pcm | audio/pcmu | audio/pcma
One of the following:
audio/pcm OpenAI.RealtimeAudioFormatsAudioPcm
type enum required
audio/pcm
rate enum
24000
audio/pcmu OpenAI.RealtimeAudioFormatsAudioPcmu
type enum required
audio/pcmu
audio/pcma OpenAI.RealtimeAudioFormatsAudioPcma
type enum required
audio/pcma
transcription OpenAI.AudioTranscription
model string | enum

The model to use for transcription. Current options are whisper-1, gpt-transcribe, gpt-live-transcribe, gpt-4o-mini-transcribe, gpt-4o-mini-transcribe-2025-12-15, gpt-4o-transcribe, gpt-4o-transcribe-diarize, and gpt-realtime-whisper. Use gpt-4o-transcribe-diarize when you need diarization with speaker labels.

Any of the following:
string
enum
whisper-1gpt-transcribegpt-live-transcribegpt-4o-mini-transcribegpt-4o-mini-transcribe-2025-12-15gpt-4o-transcribegpt-4o-transcribe-diarizegpt-realtime-whisper
language string

The language of the input audio. Supplying the input language in ISO-639-1 (e.g. en) format will improve accuracy and latency.

languages string[]

Possible languages of the input audio, in ISO-639-1 format. Supported by gpt-transcribe and gpt-live-transcribe.

keywords string[]

Words or phrases to guide transcription of the input audio. Supported by gpt-transcribe and gpt-live-transcribe.

prompt string

An optional text to guide the model's style or continue a previous audio segment. For whisper-1, the prompt is a list of keywords. For gpt-4o-transcribe models (excluding gpt-4o-transcribe-diarize), the prompt is a free text string, for example "expect words related to technology". Prompt is not supported with gpt-realtime-whisper in GA Realtime sessions.

delay enum

Controls how long the model waits before emitting transcription text. Higher values can improve transcription accuracy at the cost of latency. Only supported with gpt-realtime-whisper in GA Realtime sessions.

minimallowmediumhighxhigh
noise_reduction OpenAI.RealtimeSessionCreateRequestGAAudioInputNoiseReduction
type enum

Type of noise reduction. near_field is for close-talking microphones such as headphones, far_field is for far-field microphones such as laptop or conference room microphones.

near_fieldfar_field
turn_detection server_vad | semantic_vad

Configuration for turn detection, ether Server VAD or Semantic VAD. This can be set to null to turn off, in which case the client must manually trigger model response. Server VAD means that the model will detect the start and end of speech based on audio volume and respond at the end of user speech. Semantic VAD is more advanced and uses a turn detection model (in conjunction with VAD) to semantically estimate whether the user has finished speaking, then dynamically sets a timeout based on this probability. For example, if user audio trails off with "uhhm", the model will score a low probability of turn end and wait longer for the user to continue speaking. This can be useful for more natural conversations, but may have a higher latency. For gpt-realtime-whisper transcription sessions, turn detection must be set to null; VAD is not supported.

One of the following:
server_vad OpenAI.RealtimeTurnDetectionServerVad
type enum required
server_vad
threshold number
prefix_padding_ms integer
silence_duration_ms integer
create_response boolean
interrupt_response boolean
idle_timeout_ms integer | null
semantic_vad OpenAI.RealtimeTurnDetectionSemanticVad
type enum required
semantic_vad
eagerness enum
lowmediumhighauto
create_response boolean
interrupt_response boolean
output OpenAI.RealtimeSessionCreateRequestGAAudioOutput
format audio/pcm | audio/pcmu | audio/pcma
One of the following:
audio/pcm OpenAI.RealtimeAudioFormatsAudioPcm
type enum required
audio/pcm
rate enum
24000
audio/pcmu OpenAI.RealtimeAudioFormatsAudioPcmu
type enum required
audio/pcmu
audio/pcma OpenAI.RealtimeAudioFormatsAudioPcma
type enum required
audio/pcma
voice OpenAI.VoiceIdsShared | object

A built-in voice name or a custom voice reference.

Any of the following:
Any of the following:
string
enum
alloyashballadcoralechosageshimmerversemarincedar
id string required
speed number
include enum[]

Additional fields to include in server outputs. item.input_audio_transcription.logprobs: Include logprobs for input audio transcription.

tracing enum | OpenAI.RealtimeSessionCreateRequestGATracing | null

Realtime API can write session traces to the Traces Dashboard. Set to null to disable tracing. Once tracing is enabled for a session, the configuration cannot be modified. auto will create a trace for the session with default values for the workflow name, group id, and metadata.

One of the following:
enum
auto
workflow_name string
group_id string
metadata object
tools (OpenAI.RealtimeFunctionTool | OpenAI.MCPTool)[]

Tools available to the model.

tool_choice enum | OpenAI.ToolChoiceFunction | OpenAI.ToolChoiceMCP

How the model chooses tools. Provide one of the string modes or force a specific function/MCP tool.

One of the following:
enum

Controls which (if any) tool is called by the model. none means the model will not call any tool and instead generates a message. auto 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.

noneautorequired
type enum required

For function calling, the type is always function.

function
name string required

The name of the function to call.

type enum required

For MCP tools, the type is always mcp.

mcp
server_label string required

The label of the MCP server to use.

name string | null
parallel_tool_calls boolean

Whether the model may call multiple tools in parallel. Only supported by reasoning Realtime models such as gpt-realtime-2.

reasoning OpenAI.RealtimeReasoning

Configuration for reasoning-capable Realtime models such as gpt-realtime-2.

effort enum

Constrains effort on reasoning for reasoning-capable Realtime models such as gpt-realtime-2.

minimallowmediumhighxhigh
max_output_tokens OpenAI.integer | enum

Maximum number of output tokens for a single assistant response, inclusive of tool calls. Provide an integer between 1 and 4096 to limit output tokens, or inf for the maximum available tokens for a given model. Defaults to inf.

One of the following:
integer
enum
inf
truncation enum | object

When the number of tokens in a conversation exceeds the model's input token limit, the conversation be truncated, meaning messages (starting from the oldest) will not be included in the model's context. A 32k context model with 4,096 max output tokens can only include 28,224 tokens in the context before truncation occurs. Clients can configure truncation behavior to truncate with a lower max token limit, which is an effective way to control token usage and cost. Truncation will reduce the number of cached tokens on the next turn (busting the cache), since messages are dropped from the beginning of the context. However, clients can also configure truncation to retain messages up to a fraction of the maximum context size, which will reduce the need for future truncations and thus improve the cache rate. Truncation can be disabled entirely, which means the server will never truncate but would instead return an error if the conversation exceeds the model's input token limit.

One of the following:
enum
autodisabled
type enum required
retention_ratio
retention_ratio number required
token_limits OpenAI.TokenLimits
post_instructions integer
prompt OpenAI.Prompt

Reference to a prompt template and its variables. Learn more.

id string required

The unique identifier of the prompt template to use.

version string | null
variables OpenAI.ResponsePromptVariables | null

Optional map of values to substitute in for variables in your prompt. The substitution values can either be strings, or other Response input types like images or files.

[key: string] string | OpenAI.InputTextContent | OpenAI.InputImageContent | OpenAI.InputFileContent
Any of the following:
string
type enum required

The type of the input item. Always input_text.

input_text
text string required

The text input to the model.

prompt_cache_breakpoint OpenAI.PromptCacheBreakpointConfig

Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL from the request's prompt_cache_options.ttl; the boundary is not rounded to a token block.

mode enum required

The breakpoint mode. Always explicit.

explicit
type enum required

The type of the input item. Always input_image.

input_image
image_url string | null
file_id string | null
detail enum required
lowhighautooriginal
prompt_cache_breakpoint OpenAI.PromptCacheBreakpointConfig

Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL from the request's prompt_cache_options.ttl; the boundary is not rounded to a token block.

mode enum required

The breakpoint mode. Always explicit.

explicit
type enum required

The type of the input item. Always input_file.

input_file
file_id string | null
filename string

The name of the file to be sent to the model.

file_data string

The content of the file to be sent to the model.

prompt_cache_breakpoint OpenAI.PromptCacheBreakpointConfig

Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL from the request's prompt_cache_options.ttl; the boundary is not rounded to a token block.

mode enum required

The breakpoint mode. Always explicit.

explicit
file_url string

The URL of the file to be sent to the model.

detail enum
autolowhigh

Responses

The request has succeeded.

Body

Content-Type: application/json
value string required

The generated client secret value.

expires_at integer required

Expiration timestamp for the client secret, in seconds since epoch.

session transcription | realtime required
One of the following:
transcription OpenAI.RealtimeTranscriptionSessionCreateResponse

A new Realtime transcription session configuration. When a session is created on the server via REST API, the session object also contains an ephemeral key. Default TTL for keys is 10 minutes. This property is not present when a session is updated via the WebSocket API.

client_secret OpenAI.RealtimeTranscriptionSessionCreateResponseClientSecret required
value string required
expires_at integer required
modalities enum[]

The set of modalities the model can respond with. To disable audio, set this to ["text"].

input_audio_format string

The format of input audio. Options are pcm16, g711_ulaw, or g711_alaw.

input_audio_transcription OpenAI.AudioTranscriptionResponse
model string | enum

The model used for transcription. Current options are whisper-1, gpt-transcribe, gpt-live-transcribe, gpt-4o-mini-transcribe, gpt-4o-mini-transcribe-2025-12-15, gpt-4o-transcribe, gpt-4o-transcribe-diarize, and gpt-realtime-whisper.

Any of the following:
string
enum
whisper-1gpt-transcribegpt-live-transcribegpt-4o-mini-transcribegpt-4o-mini-transcribe-2025-12-15gpt-4o-transcribegpt-4o-transcribe-diarizegpt-realtime-whisper
language string | null

The language of the input audio.

languages string[]

The possible input audio languages configured for transcription, in ISO-639-1 format.

prompt string

The prompt configured for input audio transcription, when present.

turn_detection OpenAI.RealtimeTranscriptionSessionCreateResponseTurnDetection
type string
threshold number
prefix_padding_ms integer
silence_duration_ms integer
type enum required
transcription
realtime OpenAI.RealtimeSessionCreateResponse

A Realtime session configuration object.

id string

Unique identifier for the session that looks like sess_1234567890abcdef.

object string

The object type. Always realtime.session.

expires_at integer

Expiration timestamp for the session, in seconds since epoch.

include enum[]

Additional fields to include in server outputs. - item.input_audio_transcription.logprobs: Include logprobs for input audio transcription.

model string

The Realtime model used for this session.

output_modalities enum[]

The set of modalities the model can respond with. To disable audio, set this to ["text"].

instructions string

The default system instructions (i.e. system message) prepended to model calls. This field allows the client to guide the model on desired responses. The model can be instructed on response content and format, (e.g. "be extremely succinct", "act friendly", "here are examples of good responses") and on audio behavior (e.g. "talk quickly", "inject emotion into your voice", "laugh frequently"). The instructions are not guaranteed to be followed by the model, but they provide guidance to the model on the desired behavior. Note that the server sets default instructions which will be used if this field is not set and are visible in the session.created event at the start of the session.

audio OpenAI.RealtimeSessionCreateResponseAudio
input OpenAI.RealtimeSessionCreateResponseAudioInput
format audio/pcm | audio/pcmu | audio/pcma
One of the following:
audio/pcm OpenAI.RealtimeAudioFormatsAudioPcm
type enum required
audio/pcm
rate enum
24000
audio/pcmu OpenAI.RealtimeAudioFormatsAudioPcmu
type enum required
audio/pcmu
audio/pcma OpenAI.RealtimeAudioFormatsAudioPcma
type enum required
audio/pcma
transcription OpenAI.AudioTranscriptionResponse
model string | enum

The model used for transcription. Current options are whisper-1, gpt-transcribe, gpt-live-transcribe, gpt-4o-mini-transcribe, gpt-4o-mini-transcribe-2025-12-15, gpt-4o-transcribe, gpt-4o-transcribe-diarize, and gpt-realtime-whisper.

Any of the following:
string
enum
whisper-1gpt-transcribegpt-live-transcribegpt-4o-mini-transcribegpt-4o-mini-transcribe-2025-12-15gpt-4o-transcribegpt-4o-transcribe-diarizegpt-realtime-whisper
language string | null

The language of the input audio.

languages string[]

The possible input audio languages configured for transcription, in ISO-639-1 format.

prompt string

The prompt configured for input audio transcription, when present.

noise_reduction OpenAI.RealtimeSessionCreateResponseAudioInputNoiseReduction | null
type enum

Type of noise reduction. near_field is for close-talking microphones such as headphones, far_field is for far-field microphones such as laptop or conference room microphones.

near_fieldfar_field
turn_detection OpenAI.RealtimeSessionCreateResponseAudioInputTurnDetection | null
type string
threshold number
prefix_padding_ms integer
silence_duration_ms integer
output OpenAI.RealtimeSessionCreateResponseAudioOutput
format audio/pcm | audio/pcmu | audio/pcma
One of the following:
audio/pcm OpenAI.RealtimeAudioFormatsAudioPcm
type enum required
audio/pcm
rate enum
24000
audio/pcmu OpenAI.RealtimeAudioFormatsAudioPcmu
type enum required
audio/pcmu
audio/pcma OpenAI.RealtimeAudioFormatsAudioPcma
type enum required
audio/pcma
voice string | enum
Any of the following:
string
enum
alloyashballadcoralechosageshimmerversemarincedar
speed number
tracing enum | object

Configuration options for tracing. Set to null to disable tracing. Once tracing is enabled for a session, the configuration cannot be modified. auto will create a trace for the session with default values for the workflow name, group id, and metadata.

One of the following:
enum
auto
workflow_name string
group_id string
metadata object
turn_detection OpenAI.RealtimeSessionCreateResponseTurnDetection | null

Configuration for turn detection. Can be set to null to turn off. Server VAD means that the model will detect the start and end of speech based on audio volume and respond at the end of user speech.

type string
threshold number
prefix_padding_ms integer
silence_duration_ms integer
tools OpenAI.RealtimeFunctionTool[]

Tools (functions) available to the model.

tool_choice string

How the model chooses tools. Options are auto, none, required, or specify a function.

max_output_tokens OpenAI.integer | enum

Maximum number of output tokens for a single assistant response, inclusive of tool calls. Provide an integer between 1 and 4096 to limit output tokens, or inf for the maximum available tokens for a given model. Defaults to inf.

One of the following:
integer
enum
inf
type enum required
realtime

Client error

Body

Content-Type: application/json
error OpenAI.Error required
code string | null required
message string required
param string | null
type string
misalignment OpenAI.MisalignmentErrorDetailsResource
review_target string | null
error_type string | enum
Any of the following:
string
enum
potentially_unintended_data_transferpotentially_unintended_data_accesspotentially_unintended_destructive_activityother
detailed_explanation string

The public explanation for this block.

steer OpenAI._MisalignmentSteer
message string required

The public continuation instruction.

details OpenAI.Error[]
additionalInfo object
debugInfo object

Server error

Body

Content-Type: application/json
error OpenAI.Error required
code string | null required
message string required
param string | null
type string
misalignment OpenAI.MisalignmentErrorDetailsResource
review_target string | null
error_type string | enum
Any of the following:
string
enum
potentially_unintended_data_transferpotentially_unintended_data_accesspotentially_unintended_destructive_activityother
detailed_explanation string

The public explanation for this block.

steer OpenAI._MisalignmentSteer
message string required

The public continuation instruction.

details OpenAI.Error[]
additionalInfo object
debugInfo object

Request

curl -X POST https://api.openai.com/v1/realtime/client_secrets \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "expires_after": {
      "anchor": "created_at",
      "seconds": 600
    },
    "session": {
      "type": "realtime",
      "model": "gpt-realtime",
      "instructions": "You are a friendly assistant."
    }
  }'
import OpenAI from 'openai';

const client = new OpenAI({
  apiKey: process.env['OPENAI_API_KEY'], // This is the default and can be omitted
});

const clientSecret = await client.realtime.clientSecrets.create();

console.log(clientSecret.expires_at);
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ.get("OPENAI_API_KEY"),  # This is the default and can be omitted
)
client_secret = client.realtime.client_secrets.create()
print(client_secret.expires_at)
package main

import (
    "context"
    "fmt"

    "github.com/openai/openai-go"
    "github.com/openai/openai-go/option"
    "github.com/openai/openai-go/realtime"
)

func main() {
    client := openai.NewClient(
        option.WithAPIKey("My API Key"),
    )
    clientSecret, err := client.Realtime.ClientSecrets.New(context.TODO(), realtime.ClientSecretNewParams{})
    if err != nil {
        panic(err.Error())
    }
    fmt.Printf("%+v
", clientSecret.ExpiresAt)
}
package com.openai.example;

import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.OpenAIOkHttpClient;
import com.openai.models.realtime.clientsecrets.ClientSecretCreateParams;
import com.openai.models.realtime.clientsecrets.ClientSecretCreateResponse;

public final class Main {
    private Main() {}

    public static void main(String[] args) {
        OpenAIClient client = OpenAIOkHttpClient.fromEnv();

        ClientSecretCreateResponse clientSecret = client.realtime().clientSecrets().create();
    }
}
require "openai"

openai = OpenAI::Client.new(api_key: "My API Key")

client_secret = openai.realtime.client_secrets.create

puts(client_secret)

Response

{
  "value": "ek_68af296e8e408191a1120ab6383263c2",
  "expires_at": 1756310470,
  "session": {
    "type": "realtime",
    "object": "realtime.session",
    "id": "sess_C9CiUVUzUzYIssh3ELY1d",
    "model": "gpt-realtime",
    "output_modalities": [
      "audio"
    ],
    "instructions": "You are a friendly assistant.",
    "tools": [],
    "tool_choice": "auto",
    "max_output_tokens": "inf",
    "tracing": null,
    "truncation": "auto",
    "prompt": null,
    "expires_at": 0,
    "audio": {
      "input": {
        "format": {
          "type": "audio/pcm",
          "rate": 24000
        },
        "transcription": null,
        "noise_reduction": null,
        "turn_detection": {
          "type": "server_vad",
        }
      },
      "output": {
        "format": {
          "type": "audio/pcm",
          "rate": 24000
        },
        "voice": "alloy",
        "speed": 1.0
      }
    },
    "include": null
  }
}
en-us
Your Privacy Choices
  • AI Disclaimer
  • Previous Versions
  • Blog
  • Contribute
  • Privacy
  • Consumer Health Privacy
  • Terms of Use
  • Trademarks
  • © Microsoft 2026