LLM
Large Language Model API via AIG Gateway
Actions
Steps this node can perform. Add one from Add a step, then pick the action.
Text Chat
Generate text responses using language models
Settings
| Field | Type | Required | Description |
|---|---|---|---|
| Model | Choice (loaded from your account) | Yes | Model identifier in provider/model format (e.g., 'openai/gpt-5.1'). Dynamically populated from AI Gateway. Default: openai/gpt-5.2 |
| Messages | List | Yes | Array of conversation messages |
| Response Format | Choice | Controls the output format. 'text' for free-form, 'json_object' for valid JSON, 'json_schema' for schema-constrained JSON. Options: Text, JSON Object, JSON SchemaDefault: text | |
| Schema Definition | Text | Yes | A JSON Schema definition that constrains the LLM output structure. The root must be {"type": "object"} - paste a schema, not an example of the output. Example: {"type":"object","properties":{"title":{"type":"string"}},"required":["title"]} |
| Temperature | Number | Controls randomness (0.0-2.0) Default: 0.7 | |
| Max Tokens | Number | Maximum tokens to generate Default: 1000 | |
| Frequency Penalty | Number | Penalize frequent tokens Default: 0 | |
| Presence Penalty | Number | Penalize presence of new tokens Default: 0 | |
| Stop Sequence | Text | Stop generation when sequence is encountered | |
| Reasoning Effort | Choice | Hint for supported reasoning models Options: Low, Medium, High | |
| Verbosity | Choice | Desired verbosity of text response Options: Concise, Balanced, Detailed | |
| Retry Configuration | Object | Configure retry behavior for failed requests | |
| Custom Tags | List | Optional custom tags for cost tracking (e.g., 'team:api', 'feat:summarize', 'env:prod') |
Output
Later steps use this data by picking this step in the $ picker. For example, model_used is $.<step ID>.output.model_used.
{
"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
| Field | Type | Description |
|---|---|---|
model_used | Text | The model that was actually used for the request |
response | Object | Raw unified LLM response payload |
response.choices[] | List | A list of chat completion choices |
response.choices[].finish_reason | Text | The reason the model stopped generating tokens |
response.choices[].index | Number | The index of the choice in the list |
response.choices[].message | Object | The message generated by the model |
response.choices[].message.content | Text | The contents of the message (raw string, including JSON string when using structured output) |
response.choices[].message.parsed_content | Any | Parsed JSON object when response_format is json_object or json_schema. Allows downstream nodes to access fields directly (e.g., parsed_content.name) without manual JSON parsing. Omitted when response_format is text or when JSON parsing fails. |
response.choices[].message.role | Text | The role of the message author (always 'assistant' for responses) |
response.choices[].message.schema_validation_errors[] | List | List of schema validation errors when the LLM output does not conform to the provided JSON Schema. Only present in json_schema mode when validation fails. The parsed_content field is still populated even when validation errors exist. |
response.created | Number | The Unix timestamp (in seconds) of when the response was created |
response.id | Text | A unique identifier for the response |
response.model | Text | The model used for the response |
response.object | Text | The object type, which is always 'chat.completion' |
response.usage | Object | Usage statistics for the completion request |
response.usage.completion_tokens | Number | Number of tokens in the generated completion |
response.usage.prompt_tokens | Number | Number of tokens in the prompt |
response.usage.total_tokens | Number | Total number of tokens used in the request |
success | Yes / No | Whether the request was successful |
tokens_used | Number | Total tokens consumed by the request |
Generate Image
Generate images from text descriptions
Settings
| Field | Type | Required | Description |
|---|---|---|---|
| Model | Choice (loaded from your account) | Yes | Provider-prefixed model id from AI Gateway Default: openai/gpt-image-1.5 |
| Prompt | Text | Yes | A text description of the desired image(s) |
| Number of Images | Number | The number of images to generate Default: 1 | |
| Size | Choice | The size of the generated images Options: Auto, 1024x1024, 1024x1536, 1536x1024Default: auto | |
| Quality | Choice | The quality of the image Options: Low, Medium, HighDefault: medium | |
| Output Format | Choice | The format in which the generated images are returned Options: Base64 JSON, FileDefault: file | |
| File Name | File | Yes | The configuration for the output file. The file extension will be determined by the output_type field |
| Output Type | Choice | The image file format for the output Options: PNG, JPEGDefault: png | |
| Retry Configuration | Object | Configure retry behavior for failed requests | |
| Custom Tags | List | Optional custom tags for cost tracking (e.g., 'team:api', 'feat:summarize', 'env:prod') |
Output
Later steps use this data by picking this step in the $ picker. For example, created is $.<step ID>.output.created.
{
"created": 0,
"data": [
"string"
]
}Example values show the shape of the data, not real values. See Using data from earlier steps.
Field descriptions
| Field | Type | Description |
|---|---|---|
created | Number | Unix timestamp (seconds) when images were generated |
data[] | List | List of generated images |
Edit Image
Edit or transform existing images using AI (1-10 reference images, max 4MB each)
Settings
| Field | Type | Required | Description |
|---|---|---|---|
| Model | Choice (loaded from your account) | Yes | Provider-prefixed model id from AI Gateway Default: openai/gpt-image-1.5 |
| Reference Images | List | Yes | Reference images to edit (1-10 images, max 4MB each) |
| Prompt | Text | Yes | Text description of the desired edit or transformation |
| Number of Images | Number | The number of images to generate Default: 1 | |
| Size | Choice | The size of the generated images Options: Auto, 1024x1024, 1024x1536, 1536x1024Default: auto | |
| Quality | Choice | The quality of the image Options: Low, Medium, HighDefault: medium | |
| Output Format | Choice | The format in which the generated images are returned Options: Base64 JSON, FileDefault: file | |
| File Name | File | Yes | The configuration for the output file. The file extension will be determined by the output_type field |
| Output Type | Choice | The image file format for the output Options: PNG, JPEGDefault: png | |
| Retry Configuration | Object | Configure retry behavior for failed requests | |
| Custom Tags | List | Optional custom tags for cost tracking (e.g., 'team:api', 'feat:summarize', 'env:prod') |
Output
Later steps use this data by picking this step in the $ picker. For example, created is $.<step ID>.output.created.
{
"created": 0,
"data": [
"string"
]
}Example values show the shape of the data, not real values. See Using data from earlier steps.
Field descriptions
| Field | Type | Description |
|---|---|---|
created | Number | Unix timestamp (seconds) when images were generated |
data[] | List | List of generated images |
Analyze Image
Analyze an image (URL or base64) and return a text explanation
Settings
| Field | Type | Required | Description |
|---|---|---|---|
| Model | Choice (loaded from your account) | Yes | Provider-prefixed model id from AI Gateway Default: openai/gpt-image-1.5 |
| Image Source | Choice | Yes | The source of the image Options: URL, File |
| Image File | File | Yes | Image file to analyze (PNG, JPEG, WEBP, non-animated GIF) |
| Image URL | Text | HTTP/HTTPS URL for the image (PNG, JPEG, WEBP, non-animated GIF) | |
| Prompt | Code | Yes | Instruction for how to analyze/describe the image |
| Retry Configuration | Object | Configure retry behavior for failed requests | |
| Custom Tags | List | Optional custom tags for cost tracking (e.g., 'team:api', 'feat:summarize', 'env:prod') |
Output
Later steps use this data by picking this step in the $ picker. For example, model_used is $.<step ID>.output.model_used.
{
"model_used": "string",
"raw_response": "string",
"response": {
"text": "string"
},
"success": false,
"tokens_used": 0
}Example values show the shape of the data, not real values. See Using data from earlier steps.
Field descriptions
| Field | Type | Description |
|---|---|---|
model_used | Text | Model used to perform image analysis |
raw_response | Object | Response from the AI Gateway API |
raw_response.created_at | Number | Unix timestamp when the response was created |
raw_response.error | Text | Error message if the request failed |
raw_response.id | Text | Response identifier |
raw_response.incomplete_details | Object | Incomplete details if the response is incomplete |
raw_response.instructions | Text | Instructions provided with the request |
raw_response.max_output_tokens | Number | Maximum output tokens |
raw_response.metadata | Object | Metadata object containing additional information |
raw_response.model | Text | Model identifier used for the request |
raw_response.object | Text | Object type (e.g., 'chat.completion') |
raw_response.output[] | List | Output array containing the response items |
raw_response.output[].content[] | List | Content array containing the response content |
raw_response.output[].content[].annotations[] | List | Annotations array (can be empty). Elements are free-form annotation objects |
raw_response.output[].content[].text | Text | Text content of the response |
raw_response.output[].content[].type | Text | Content type (e.g., 'output_text') |
raw_response.output[].id | Text | ID of the output item |
raw_response.output[].role | Text | Role of the message (e.g., 'assistant') |
raw_response.output[].status | Text | Status of the output item (e.g., 'completed') |
raw_response.output[].type | Text | Type of output item (e.g., 'message') |
raw_response.parallel_tool_calls | Yes / No | Whether parallel tool calls are enabled |
raw_response.previous_response_id | Text | Previous response ID for continuation |
raw_response.reasoning | Object | Reasoning object containing reasoning details |
raw_response.status | Text | Status of the response (e.g., 'completed') |
raw_response.store | Any | Store identifier (can be bool or string) |
raw_response.temperature | Number | Temperature setting used for the request |
raw_response.text | Object | Text object containing text-related information |
raw_response.tool_choice | Text | Tool choice setting |
raw_response.tools[] | List | Array of tools available for the request. Elements are free-form tool definitions |
raw_response.top_p | Number | Top-p sampling parameter |
raw_response.truncation | Text | Truncation information |
raw_response.usage | Object | Usage statistics for the API request |
raw_response.usage.cost | Any | Cost of the request |
raw_response.usage.input_tokens | Number | Number of input tokens used |
raw_response.usage.input_tokens_details | Any | Input tokens details |
raw_response.usage.output_tokens | Number | Number of output tokens generated |
raw_response.usage.output_tokens_details | Any | Output tokens details |
raw_response.usage.total_tokens | Number | Total number of tokens used |
raw_response.user | Text | User identifier |
response | Object | Structured analysis response |
response.text | Text | Textual explanation of the image |
success | Yes / No | Whether the analyze_image request succeeded |
tokens_used | Number | Tokens consumed when available |
Transcribe Audio
Transcribe an attached or same-run reference audio file through AI Gateway
Settings
| Field | Type | Required | Description |
|---|---|---|---|
| Model | Choice (loaded from your account) | Yes | Transcription model dynamically populated from AI Gateway Default: openai/whisper-1 |
| Audio File | File | Yes | Audio file to transcribe (FLAC, MP3, MP4, MPEG, MPGA, M4A, OGG, WAV, or WEBM; max 25 MiB) Options: Reference, Attach new |
| Response Format | Choice | Format of the transcription response. Use 'diarized_json' for speaker separation with gpt-4o-transcribe-diarize. Options: JSON, Diarized JSONDefault: json | |
| Language | Text | Input audio language as ISO-639-1 code (e.g. en). ElevenLabs Scribe models. | |
| Prompt | Text | Optional text to guide the model's style or vocabulary (e.g. proper nouns). Note: not supported for diarization models. | |
| Temperature | Number | Sampling temperature between 0 and 1. ElevenLabs Scribe models. | |
| Chunking Strategy | Choice | Chunking strategy for audio. Set to 'auto' for inputs longer than 30 seconds with gpt-4o-transcribe-diarize. Options: Auto | |
| Custom Tags | List | Optional custom tags for AI Gateway cost tracking |
Output
Later steps use this data by picking this step in the $ picker. For example, model_used is $.<step ID>.output.model_used.
{
"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
| Field | Type | Description |
|---|---|---|
model_used | Text | AI Gateway model used for transcription |
segments[] | List | Segments with timestamps and speaker labels when using diarized_json or verbose_json |
segments[].end | Number | End timestamp in seconds |
segments[].id | Any | Segment ID |
segments[].speaker | Text | Speaker label (e.g. Speaker 1, Speaker 2) |
segments[].start | Number | Start timestamp in seconds |
segments[].text | Text | Transcribed segment text |
text | Text | Transcribed text |