Picsart API Platform
← All models

Gemini 3 Pro

Premium

Google · Text · Video → Text

Google’s top Gemini model — text, image, and video reasoning.

Model ID: gemini-3-proWorkflow: gemini
VisionVideo InputThinking
Try on Playground ↗

Overview

Alongside the unified model APIs, we expose compatibility APIs that take each vendor's original parameters exactly as the vendor defines them — nothing renamed, nothing reshaped on the way through.

That makes them the shortest path onto Picsart if you already work with the vendor directly: the request bodies you've already written keep working as they are. You keep their parameter names and defaults, and you get the vendor's full parameter set rather than the subset that is shared across every model.

The cost is that a request is written for one vendor — switching models later means rewriting it, and results come back in the vendor's own shape. When you'd rather write once and change models freely, use the unified API.

Make a request

Call the workflow with ai.apis.run() in TypeScript, or hit /workflows/{workflow}/execute directly — params is passed through untouched either way.

These endpoints are addressed by workflow name rather than model id: the one in this model's header, since one model runs as one workflow. Authentication is unchanged — your Picsart API key as a bearer token (see Authentication).

ts
import { createClient, ApiRunMode } from '@picsart/ai-sdk';

const ai = createClient({
  apiKey: process.env.PICSART_API_KEY,
  apiUrl: 'https://api.picsart.com',
});

// Calls the 'gemini' workflow directly — params are sent as-is.
const { result, usage } = await ai.apis.run('gemini', {
  contents: [
    {
      parts: []
    }
  ]
}, {
  mode: ApiRunMode.SYNC,
});

console.log(result); // workflow-specific output
console.log(usage?.credits); // credits charged

Parameters

4 parameters, sent inside params. These are the vendor's own names, so they line up one-for-one with the vendor's documentation. Required ones must be supplied; the rest fall back to their defaults.

ParameterTypeRequiredDefaultDetails
contents
Contents array with parts
Content[]yes
parts
Array of parts containing text and/or image data
GeminiPart[]yes
text
Text input
stringno
e.g. Hi, This is a picture of me. Can you add a llama next to me
imageUrl
stringno
audioUrl
URL pointing to the generated audio file
stringno
typedeprecated
Only used for custom imageUrl data
stringno
fileData
File data
objectno
inlineData
Inline data
objectno
functionCall
A predicted FunctionCall returned from the model that contains a string representing the FunctionDeclaration.name with the arguments and their values.
objectno
functionResponse
The result output of a FunctionCall that contains a string representing the FunctionDeclaration.name and a structured JSON object containing any output from the function is used as context to the model.
objectno
thought
booleanno
thoughtSignature
Optional. An opaque signature for the thought so it can be reused in subsequent requests. A base64-encoded string
stringno
partMetadata
Custom metadata associated with the Part
objectno
videoMetadata
Optional. Video metadata
objectno
role
stringno
generationConfig
objectno
temperature
Temperature value for controlling randomness
numberno
e.g. 1.2
topK
Top-K sampling value
numberno
e.g. 40
topP
Top-P (nucleus) sampling value
numberno1
e.g. 0.95
maxOutputTokens
Maximum number of output tokens
numberno
e.g. 8192
candidateCount
Number of response variations to return.
numberno
e.g. 2
responseMimeType
Response MIME type
stringno
e.g. text/plain
imageConfig
Image config
objectno
aspectRatio
Image aspect ratio. Support is model-dependent: the extreme ratios 1:4, 4:1, 1:8, 8:1 are only supported by Gemini 3 image models. gemini-2.5-flash-image supports only 1:1, 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, 21:9 and returns 400 unsupported_aspect_ratio for any other value.
stringno
1:12:33:23:44:34:55:49:1616:921:91:44:11:88:1
imageSize
Image resolution. Support is model-dependent: gemini-2.5-flash-image and gemini-3.1-flash-lite-image support 1K only; gemini-3-pro-image supports 1K, 2K, 4K; gemini-3.1-flash-image supports 0.5K, 1K, 2K, 4K.
stringno
0.5K1K2K4K
responseModalities
Response modalities
string[]no
e.g. ["Text","Image","Audio"]
thinkingConfig
Configuration for the model's thinking/reasoning capabilities. Supported by gemini-2.5-pro, gemini-2.5-flash, gemini-3-pro, gemini-3.1-pro, gemini-3-pro-image.
objectno
thinkingBudget
Number of thinking tokens the model should use. Range: 0-24576. Set to 0 to disable thinking. Not supported by gemini-2.5-flash-image or gemini-3.1-flash-lite-image.
numberno
0–24576
e.g. 1024
includeThoughts
Whether to include thought summaries in the response. When true, the response will contain thought parts.
booleannofalse
e.g. true
thinkingLevel
Controls the depth of the model's internal reasoning process. Only LOW and HIGH are supported. Not supported by gemini-2.5-flash-image or gemini-3-pro-image.
stringno
MINIMALLOWMEDIUMHIGH
speechConfig
Speech configuration for TTS. Use voiceConfig for single-speaker or multiSpeakerVoiceConfig for multi-speaker.
objectno
voiceConfig
Single-speaker voice config
objectno
multiSpeakerVoiceConfig
Multi-speaker voice config
objectno
model
Model for image generation
stringnogemini-2.0-flash-preview-image-generation
gemini-2.5-progemini-2.5-flashgemini-2.5-flash-image-previewgemini-2.5-flash-imagegemini-2.5-flash-lite-preview-06-17gemini-2.0-flashgemini-2.0-flash-preview-image-generationgemini-2.0-flash-litegemini-1.5-flashgemini-1.5-flash-8bgemini-1.5-progemini-embedding-expgemini-3-progemini-3-pro-previewgemini-3.1-pro-previewgemini-3.1-flash-litegemini-3.1-flash-lite-previewgemini-3-pro-imagegemini-3-pro-image-previewgemini-3.1-flash-image-previewgemini-3.1-flash-imagegemini-3.1-flash-lite-imagegemini-2.5-flash-ttsgemini-2.5-pro-ttsinstant-ramen
tools
Optional tools with function declarations
object[]no

Response

Over HTTP the output arrives inside a status envelope, at response.result. ai.apis.run() unwraps that envelope for you and resolves to { result, usage } instead. Either way the resultitself is the vendor's own shape.

json
{
  "result": {
    "candidates": [
      {
        "content": {
          "parts": []
        },
        "finishReason": "…",
        "index": 0
      }
    ]
  },
  "usage": {
    "credits": 360
  }
}