Skip to content

OpenAI ​

OpenAI API

This node signs in with a credential: OpenAI API Key. See Connect a credential.

Actions ​

Steps this node can perform. Add one from Add a step, then pick the action.

Text Message ​

Chat with AI

Settings

FieldTypeRequiredDescription
ModelChoiceYesThe model to use
Options: GPT-5.2, GPT-5.1, GPT-5, GPT-5 Mini, GPT-5 Nano, GPT-4.1, GPT-4.1 Mini, GPT-4.1 Nano, GPT-5.5
Default: gpt-5.5
MessagesListYesThe messages to send to the model
TemperatureNumberThe temperature to use
Default: 0.5
Top PNumberThe top P to use
Default: 0.5
Frequency PenaltyNumberThe frequency penalty to use
Default: 0
Presence PenaltyNumberThe presence penalty to use
Default: 0
Max TokensNumberThe maximum number of tokens to generate
Default: 256
StopTextThe stop sequence to use
Reasoning EffortChoiceThe reasoning effort to use
Options: Low, Medium, High
Default: low
VerbosityChoiceThe verbosity to use
Options: Low, Medium, High
Default: low

Output

Later steps use this data by picking this step in the $ picker. For example, model_used is $.<step ID>.output.model_used.

json
{
  "model_used": "string",
  "response": {
    "choices": [
      {
        "finish_reason": "string",
        "index": 0,
        "message": {}
      }
    ],
    "created": 0,
    "id": "string",
    "model": "string",
    "object": "chat.completion",
    "usage": {
      "completion_tokens": 0,
      "prompt_tokens": 0,
      "total_tokens": 0
    }
  },
  "success": false,
  "tokens_used": 0
}

Example values show the shape of the data, not real values. See Using data from earlier steps.

Field descriptions
FieldTypeDescription
model_usedTextThe model that produced the chat completion
responseObjectThe full chat completion response returned by OpenAI
response.choices[]ListA list of chat completion choices
response.choices[].finish_reasonTextThe reason the model stopped generating tokens
response.choices[].indexNumberThe index of the choice in the list
response.choices[].messageObjectThe message generated by the model
response.choices[].message.contentTextThe contents of the message
response.choices[].message.roleTextThe role of the message author
response.createdNumberThe Unix timestamp (in seconds) of when the chat completion was created
response.idTextA unique identifier for the chat completion
response.modelTextThe model used for the chat completion
response.objectTextThe object type, which is always 'chat.completion'
response.usageObjectUsage statistics for the completion request
response.usage.completion_tokensNumberNumber of tokens in the generated completion
response.usage.prompt_tokensNumberNumber of tokens in the prompt
response.usage.total_tokensNumberTotal number of tokens used in the request
successYes / NoWhether the chat completion request succeeded
tokens_usedNumberTotal number of tokens used in the request

Deep Research ​

Create a new response using OpenAI's Deep Research API for stateful conversations

Settings

FieldTypeRequiredDescription
ModelChoiceYesThe model to use for the response
Options: GPT-5.6 Sol
Default: gpt-5.6-sol
InputTextYesInput text or messages for the response
ToolsListYesBuilt-in tools to use (web_search)
Store ResponseYes / NoWhether to store the response in the database
Default: false
Max Tool CallsNumberMaximum number of tool calls
Default: 10
Previous Response IDTextID of the previous response to use as context
MetadataObjectMetadata for the response
Reasoning EffortChoiceReasoning effort to use
Options: Medium, High
Default: medium
Execution ModeChoiceHow the action handles the deep research job. 'Background Request' submits the job and returns immediately with a response ID — the flow continues without waiting for results. 'Wait Until Finish' submits the job and polls until it reaches a terminal state (completed, failed, or cancelled) before passing control to the next node.
Options: Background Request, Wait Until Finish
Default: background_request
Polling Interval (seconds)NumberTime in seconds between status checks when Execution Mode is 'Wait Until Finish'. Default is 60 seconds. OpenAI recommends at least 2 seconds between polls.
Default: 60

Output

Later steps use this data by picking this step in the $ picker. For example, conversation_id is $.<step ID>.output.conversation_id.

json
{
  "conversation_id": "string",
  "created_at": 0,
  "error": {
    "message": "string",
    "type": "string"
  },
  "id": "string",
  "metadata": {},
  "model": "string",
  "object": "response",
  "output": [
    {
      "content": "string",
      "role": "string"
    }
  ],
  "status": "in_progress",
  "usage": {
    "completion_tokens": 0,
    "prompt_tokens": 0,
    "total_tokens": 0
  }
}

Example values show the shape of the data, not real values. See Using data from earlier steps.

Field descriptions
FieldTypeDescription
conversation_idTextID of the conversation this response belongs to
created_atNumberThe Unix timestamp (in seconds) of when the response was created
errorObjectError information if the response failed
error.messageTextError message
error.typeTextError type
idTextA unique identifier for the response
metadataObjectAdditional metadata for the response
modelTextThe model used for the response
objectTextThe object type, which is always 'response'
output[]ListArray of output messages or content
output[].contentTextThe content of the message
output[].roleTextThe role of the message author
statusTextThe current status of the response
usageObjectUsage statistics for the response
usage.completion_tokensNumberNumber of tokens in the generated completion
usage.prompt_tokensNumberNumber of tokens in the prompt
usage.total_tokensNumberTotal number of tokens used

Create Response ​

Create a new response using OpenAI's Responses API for stateful conversations

Settings

FieldTypeRequiredDescription
ModelChoiceYesThe model to use for the response
Options: GPT-5.2, GPT-5.1, GPT-5, GPT-5 Mini, GPT-5 Nano, GPT-4.1, GPT-4.1 Mini, GPT-4.1 Nano, GPT-5.5, GPT-5.5 Pro
Default: gpt-5.5
InputTextYesInput text or messages for the response
ToolsListBuilt-in tools to use (web_search)
Stream ResponseYes / NoEnable streaming responses
Default: false
TemperatureNumberControls randomness (0.0 to 2.0)
Default: 1
Max Output TokensNumberMaximum tokens to generate
Default: 1000
InstructionsTextInstructions for the response
Store ResponseYes / NoWhether to store the response in the database
Default: false
Max Tool CallsNumberMaximum number of tool calls
Default: 10
Previous Response IDTextID of the previous response to use as context
MetadataObjectMetadata for the response
Reasoning EffortChoiceReasoning effort to use
Options: Low, Medium, High
Default: low
Background ProcessingYes / NoWhether to process the response in the background. When true, the API returns immediately with a response ID that can be used to retrieve the result later.
Default: false
Response FormatObjectSpecifies the format of the model's output. Use for structured outputs with JSON Schema.

Output

Later steps use this data by picking this step in the $ picker. For example, conversation_id is $.<step ID>.output.conversation_id.

json
{
  "conversation_id": "string",
  "created_at": 0,
  "error": {
    "message": "string",
    "type": "string"
  },
  "id": "string",
  "metadata": {},
  "model": "string",
  "object": "response",
  "output": [
    {
      "content": "string",
      "role": "string"
    }
  ],
  "status": "in_progress",
  "usage": {
    "completion_tokens": 0,
    "prompt_tokens": 0,
    "total_tokens": 0
  }
}

Example values show the shape of the data, not real values. See Using data from earlier steps.

Field descriptions
FieldTypeDescription
conversation_idTextID of the conversation this response belongs to
created_atNumberThe Unix timestamp (in seconds) of when the response was created
errorObjectError information if the response failed
error.messageTextError message
error.typeTextError type
idTextA unique identifier for the response
metadataObjectAdditional metadata for the response
modelTextThe model used for the response
objectTextThe object type, which is always 'response'
output[]ListArray of output messages or content
output[].contentTextThe content of the message
output[].roleTextThe role of the message author
statusTextThe current status of the response
usageObjectUsage statistics for the response
usage.completion_tokensNumberNumber of tokens in the generated completion
usage.prompt_tokensNumberNumber of tokens in the prompt
usage.total_tokensNumberTotal number of tokens used

Retrieve Response ​

Retrieve the status and results of a response from OpenAI's Responses API

Settings

FieldTypeRequiredDescription
Response IDTextYesID of the response to retrieve

Output

Later steps use this data by picking this step in the $ picker. For example, conversation_id is $.<step ID>.output.conversation_id.

json
{
  "conversation_id": "string",
  "created_at": 0,
  "error": {
    "message": "string",
    "type": "string"
  },
  "id": "string",
  "metadata": {},
  "model": "string",
  "object": "response",
  "output": [
    {
      "content": "string",
      "role": "string"
    }
  ],
  "status": "in_progress",
  "usage": {
    "completion_tokens": 0,
    "prompt_tokens": 0,
    "total_tokens": 0
  }
}

Example values show the shape of the data, not real values. See Using data from earlier steps.

Field descriptions
FieldTypeDescription
conversation_idTextID of the conversation this response belongs to
created_atNumberThe Unix timestamp (in seconds) of when the response was created
errorObjectError information if the response failed
error.messageTextError message
error.typeTextError type
idTextA unique identifier for the response
metadataObjectAdditional metadata for the response
modelTextThe model used for the response
objectTextThe object type, which is always 'response'
output[]ListArray of output messages or content
output[].contentTextThe content of the message
output[].roleTextThe role of the message author
statusTextThe current status of the response
usageObjectUsage statistics for the response
usage.completion_tokensNumberNumber of tokens in the generated completion
usage.prompt_tokensNumberNumber of tokens in the prompt
usage.total_tokensNumberTotal number of tokens used

Generate Image ​

Generate an image from a text prompt using OpenAI's GPT-image models

Settings

FieldTypeRequiredDescription
PromptTextYesText description of the desired image(s). Max 32000 characters for GPT-image models.
ModelChoiceYesThe model to use for image generation. DALL-E models are deprecated and will stop being supported on 05/12/2026.
Options: GPT Image 1.5 (Recommended), GPT Image 1, GPT Image 1 Mini
Default: gpt-image-1.5
QualityChoiceImage quality level. Lower quality images generate faster. Only supported for GPT-image models.
Options: High, Medium, Low
Default: medium
ResolutionChoiceResolution of the generated image. Square images are faster to generate.
Options: 1024x1024 (Square), 1024x1536 (Portrait), 1536x1024 (Landscape)
Default: 1024x1024
BackgroundChoiceBackground transparency. Only supported for GPT-image models. Requires png or webp output format for transparency.
Options: Auto, Opaque, Transparent
Default: auto
Number of ImagesNumberNumber of images to generate (1-10). DALL-E 3 only supports n=1.
Default: 1
ModerationChoiceContent moderation sensitivity level. Only supported for GPT-image models.
Options: Auto (Standard filtering), Low (Less restrictive)
Default: auto
Output FileFileYesThe configuration for the output file. The file extension will be determined by the output_type field
Output TypeChoiceThe image file format for the output
Options: PNG, WebP, JPEG
Default: png

Output

Later steps use this data by picking this step in the $ picker. For example, created is $.<step ID>.output.created.

json
{
  "created": 0,
  "data": [
    {
      "fileId": "string",
      "fileName": "string",
      "fileSize": 0
    }
  ],
  "model": "string",
  "prompt": "string"
}

Example values show the shape of the data, not real values. See Using data from earlier steps.

Field descriptions
FieldTypeDescription
createdNumberWhen OpenAI generated the images, in Unix seconds
data[]ListGenerated images, saved to file storage
data[].fileIdTextID of the saved image file
data[].fileNameTextName of the saved image file
data[].fileSizeNumberImage size in bytes
modelTextImage model used
promptTextPrompt used to generate the images

Classify Text for Violations ​

Identify and flag content that might be harmful using OpenAI's moderation API

Settings

FieldTypeRequiredDescription
Text InputTextYesEnter text to classify if it violates the moderation policy
OptionsObjectAdditional options for text moderation

Output

Later steps use this data by picking this step in the $ picker. For example, flagged is $.<step ID>.output.flagged.

json
{
  "flagged": false,
  "model_used": "string",
  "response": {
    "id": "string",
    "model": "string",
    "results": [
      {
        "categories": "hate",
        "category_scores": {},
        "flagged": false
      }
    ]
  },
  "success": false
}

Example values show the shape of the data, not real values. See Using data from earlier steps.

Field descriptions
FieldTypeDescription
flaggedYes / NoWhether the first input was flagged; absent when OpenAI returned no results
model_usedTextModeration model OpenAI used
responseObjectThe full OpenAI moderation response
response.idTextModeration request ID
response.modelTextModeration model
response.results[]ListOne result per input
response.results[].categoriesObjectPer-category verdicts, e.g. hate, harassment, violence
response.results[].category_scoresObjectPer-category scores from 0 to 1
response.results[].flaggedYes / NoWhether the input violates the usage policies
successYes / NoTrue when the moderation request succeeded

Upload File ​

Upload files to OpenAI for use with Assistants, Batch processing, Fine-tuning, and Vision models

Settings

FieldTypeRequiredDescription
PurposeChoiceYesPurpose of the file upload
Options: Assistants (512 MB max), Vision (20 MB max), Batch (100 MB max), Fine-tune (1 GB max)
Default: batch
File Content TypeChoiceYesType of file content - 'reference' for FSS storage key or 'raw' for base64 data
Options: Raw Content. With big data please consider using reference, Reference to a file in Storage
Default: raw
File ContentTextYesBase64-encoded file content (if file_content_type is 'raw') or Storage Key (if file_content_type is 'reference')
FilenameTextYesOriginal filename with extension (e.g., document.pdf, image.png)
Content TypeTextMIME type of the file (optional, auto-detected if not provided)

Output

Later steps use this data by picking this step in the $ picker. For example, bytes is $.<step ID>.output.bytes.

json
{
  "bytes": 0,
  "file_id": "string",
  "filename": "string",
  "purpose": "assistants"
}

Example values show the shape of the data, not real values. See Using data from earlier steps.

Field descriptions
FieldTypeDescription
bytesNumberSize of the uploaded file in bytes
file_idTextUnique identifier for the uploaded file
filenameTextName of the uploaded file
purposeTextPurpose of the uploaded file

Transcribe Audio ​

Transcribe an attached or same-run reference audio file using the direct OpenAI API

Settings

FieldTypeRequiredDescription
ModelChoiceYesOpenAI transcription model
Options: GPT Transcribe, GPT-4o Transcribe, GPT-4o Mini Transcribe, Whisper 1, GPT-4o Transcribe Diarize
Default: whisper-1
Audio FileFileYesAudio file to transcribe (FLAC, MP3, MP4, MPEG, MPGA, M4A, OGG, WAV, or WEBM; max 25 MiB)
Options: Reference, Attach new
Response FormatChoiceFormat of the transcription response. Use 'diarized_json' for speaker separation with gpt-4o-transcribe-diarize.
Options: JSON, Diarized JSON
Default: json
PromptTextOptional text to guide the model's style or vocabulary (e.g. proper nouns). Note: not supported for diarization models.
Chunking StrategyChoiceChunking strategy for audio. Set to 'auto' for inputs longer than 30 seconds with gpt-4o-transcribe-diarize.
Options: Auto

Output

Later steps use this data by picking this step in the $ picker. For example, model_used is $.<step ID>.output.model_used.

json
{
  "model_used": "string",
  "segments": [
    {
      "end": 0,
      "id": "string",
      "speaker": "Speaker 1",
      "start": 0,
      "text": "string"
    }
  ],
  "text": "string"
}

Example values show the shape of the data, not real values. See Using data from earlier steps.

Field descriptions
FieldTypeDescription
model_usedTextOpenAI transcription model used
segments[]ListSegments with timestamps and speaker labels when using diarized_json or verbose_json
segments[].endNumberEnd timestamp in seconds
segments[].idAnySegment ID
segments[].speakerTextSpeaker label (e.g. Speaker 1, Speaker 2)
segments[].startNumberStart timestamp in seconds
segments[].textTextTranscribed segment text
textTextTranscribed audio text

Create Batch Job ​

Create batch jobs for asynchronous processing of large volumes of requests at 50% reduced cost. Requires a file uploaded with purpose 'batch'. Completion window is automatically set to 24h. Automatically polls batch status every 1 minute until it reaches 'in_progress' or 'failed' state.

Settings

FieldTypeRequiredDescription
Input File IDTextYesThe ID of an uploaded file that contains requests for the new batch. File must be in JSONL format, uploaded with purpose 'batch', contain up to 50,000 requests, and be up to 200 MB in size.
EndpointChoiceYesOpenAI API endpoint for the batch requests
Options: Chat Completions, Embeddings, Completions
Default: /v1/chat/completions
MetadataObjectCustom metadata for tracking the batch job (up to 16 key-value pairs)

Output

Later steps use this data by picking this step in the $ picker. For example, batch_id is $.<step ID>.output.batch_id.

json
{
  "batch_id": "string",
  "input_file_id": "string",
  "status": "validating"
}

Example values show the shape of the data, not real values. See Using data from earlier steps.

Field descriptions
FieldTypeDescription
batch_idTextUnique identifier for the batch job
input_file_idTextThe ID of the input file used for the batch
statusTextCurrent status of the batch job

Retrieve Batch Job ​

Retrieve the status and details of a batch job by batch ID

Settings

FieldTypeRequiredDescription
Batch IDTextYesThe ID of the batch job to retrieve

Output

Later steps use this data by picking this step in the $ picker. For example, completion_window is $.<step ID>.output.completion_window.

json
{
  "completion_window": "24h",
  "created_at": 0,
  "endpoint": "string",
  "error_file_id": "string",
  "errors": {
    "data": [
      {
        "code": "string",
        "line": 0,
        "message": "string",
        "param": "string"
      }
    ],
    "object": "string"
  },
  "expires_at": 0,
  "id": "string",
  "input_file_id": "string",
  "metadata": {},
  "object": "batch",
  "output_file_id": "string",
  "request_counts": {
    "completed": 0,
    "failed": 0,
    "total": 0
  },
  "status": "validating"
}

Example values show the shape of the data, not real values. See Using data from earlier steps.

Field descriptions
FieldTypeDescription
completion_windowTextThe time window for batch completion (e.g., '24h')
created_atNumberUnix timestamp (in seconds) of when the batch was created
endpointTextThe API endpoint that the batch is targeting
error_file_idTextThe ID of the error file containing processing errors (null if no errors)
errorsObjectError information if the batch failed
errors.data[]ListArray of error details
errors.data[].codeTextError code
errors.data[].lineNumberLine number where the error occurred
errors.data[].messageTextError message
errors.data[].paramTextParameter related to the error
errors.objectTextThe object type
expires_atNumberUnix timestamp (in seconds) when the batch will expire
idTextThe unique identifier for the batch
input_file_idTextThe ID of the input file used for the batch
metadataObjectCustom metadata for tracking the batch job
objectTextThe object type, which is always 'batch'
output_file_idTextThe ID of the output file containing batch results (null if not completed)
request_countsObjectCounts of requests by status
request_counts.completedNumberNumber of completed requests
request_counts.failedNumberNumber of failed requests
request_counts.totalNumberTotal number of requests in the batch
statusTextThe current status of the batch

Cancel Batch Job ​

Cancel a batch job that is in progress. The batch will be in status 'cancelling' for up to 10 minutes and then change to 'cancelled' status.

Settings

FieldTypeRequiredDescription
Batch IDTextYesThe ID of the batch job to cancel

Output

Later steps use this data by picking this step in the $ picker. For example, completion_window is $.<step ID>.output.completion_window.

json
{
  "completion_window": "24h",
  "created_at": 0,
  "endpoint": "string",
  "error_file_id": "string",
  "errors": {
    "data": [
      {
        "code": "string",
        "line": 0,
        "message": "string",
        "param": "string"
      }
    ],
    "object": "string"
  },
  "expires_at": 0,
  "id": "string",
  "input_file_id": "string",
  "metadata": {},
  "object": "batch",
  "output_file_id": "string",
  "request_counts": {
    "completed": 0,
    "failed": 0,
    "total": 0
  },
  "status": "validating"
}

Example values show the shape of the data, not real values. See Using data from earlier steps.

Field descriptions
FieldTypeDescription
completion_windowTextThe time window for batch completion (e.g., '24h')
created_atNumberUnix timestamp (in seconds) of when the batch was created
endpointTextThe API endpoint that the batch is targeting
error_file_idTextThe ID of the error file containing processing errors (null if no errors)
errorsObjectError information if the batch failed
errors.data[]ListArray of error details
errors.data[].codeTextError code
errors.data[].lineNumberLine number where the error occurred
errors.data[].messageTextError message
errors.data[].paramTextParameter related to the error
errors.objectTextThe object type
expires_atNumberUnix timestamp (in seconds) when the batch will expire
idTextThe unique identifier for the batch
input_file_idTextThe ID of the input file used for the batch
metadataObjectCustom metadata for tracking the batch job
objectTextThe object type, which is always 'batch'
output_file_idTextThe ID of the output file containing batch results (null if not completed)
request_countsObjectCounts of requests by status
request_counts.completedNumberNumber of completed requests
request_counts.failedNumberNumber of failed requests
request_counts.totalNumberTotal number of requests in the batch
statusTextThe current status of the batch

Retrieve File ​

Retrieve metadata and information about a previously uploaded file by its ID

Settings

FieldTypeRequiredDescription
File IDTextYesThe ID of the file to retrieve

Output

Later steps use this data by picking this step in the $ picker. For example, bytes is $.<step ID>.output.bytes.

json
{
  "bytes": 0,
  "created_at": 0,
  "expires_at": 0,
  "filename": "string",
  "id": "string",
  "object": "file",
  "purpose": "assistants",
  "status": "uploaded",
  "status_details": "string"
}

Example values show the shape of the data, not real values. See Using data from earlier steps.

Field descriptions
FieldTypeDescription
bytesNumberSize of the file in bytes
created_atNumberUnix timestamp (in seconds) of when the file was created
expires_atNumberUnix timestamp (in seconds) when the file will expire
filenameTextName of the uploaded file
idTextUnique identifier for the file
objectTextThe object type, which is always 'file'
purposeTextIntended purpose of the file
statusTextCurrent processing status of the file
status_detailsTextAdditional details about the file status (deprecated)

Delete File ​

Delete a file from OpenAI storage. Returns a deletion status object.

Settings

FieldTypeRequiredDescription
File IDTextYesThe ID of the file to delete

Output

Later steps use this data by picking this step in the $ picker. For example, deleted is $.<step ID>.output.deleted.

json
{
  "deleted": false,
  "file_id": "string",
  "object": "string"
}

Example values show the shape of the data, not real values. See Using data from earlier steps.

Field descriptions
FieldTypeDescription
deletedYes / NoWhether OpenAI deleted the file
file_idTextID of the deleted file
objectTextObject type returned by OpenAI, usually file

Retrieve File Content ​

Retrieve the actual contents of a file. Returns the file content as a string.

Settings

FieldTypeRequiredDescription
File IDTextYesThe ID of the file whose content to retrieve

Output

Later steps use this data by picking this step in the $ picker. For example, content is $.<step ID>.output.content.

json
{
  "content": "string",
  "file_id": "string",
  "size": 0
}

Example values show the shape of the data, not real values. See Using data from earlier steps.

Field descriptions
FieldTypeDescription
contentTextFile content as text
file_idTextID of the file
sizeNumberContent size in bytes