p-video-2defaultP-Video-2 API — how to connect and pay
P-Video-2 (Pruna AI) — fast, low-cost video from text or a first frame (a last frame can be set too), with sound. 720p or 1080p, 2 to 20 seconds, 7 aspect ratios. Draft mode is half the price, for quick tries. You can send a ready audio track (audio_url): the video is built to follow it, the clip is as long as the track and priced per second of it. Priced per clip by resolution, mode and length.
Channel comparison
last 7 days
| Channel | Price |
|---|---|
Canvas p-video-2default | from $0.04 per clip |
Build the result you need
p-video-2What is P-Video-2
P-Video-2 (Pruna AI) — fast, low-cost video from text or a first frame (a last frame can be set too), with sound. 720p or 1080p, 2 to 20 seconds, 7 aspect ratios. Draft mode is half the price, for quick tries. You can send a ready audio track (audio_url): the video is built to follow it, the clip is as long as the track and priced per second of it. Priced per clip by resolution, mode and length.
Contract at a glance
- Input
- text, image, audio
- Output
- video
- Mode
- async (job + polling)
- Status polling
- every 3 s · up to 600 s
Strengths
- Pricing: per clip
- Inputs: text, image, audio
- 7 configurable options
- One API key for media generation
Where it is used
- Social media clips
- Promos and title sequences
- Still-image animation
- Storyboards and animatics
API contract
Generation runs asynchronously: create a job, then poll its status until completion.
- Create job
- POST /api/media/generate
- Check status
- GET /api/media/jobs/{jobId}
- Input
- text, image, audio
- Output
- video
- Polling
- every 3 s · up to 600 s
- Authentication
- Authorization: Bearer sk-pv-…
Example request
Pass your key in the Bearer header. The API returns jobId for polling the status.
curl -sS https://getvibeapi.com/api/media/generate \
-H "Authorization: Bearer $GETVIBE_API_KEY" \
-H "Content-Type: application/json" \
--data-binary '{"model":"p-video-2","prompt":"a beautiful landscape","opts":{"duration":"5","resolution":"720p","draft":false,"aspect_ratio":"16:9","save_audio":true}}'JavaScript
const response = await fetch('https://getvibeapi.com/api/media/generate', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.GETVIBE_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
"model": "p-video-2",
"prompt": "a beautiful landscape",
"opts": {
"duration": "5",
"resolution": "720p",
"draft": false,
"aspect_ratio": "16:9",
"save_audio": true
}
}),
});
if (!response.ok) throw new Error(`GetVibe API: ${response.status}`);
const { jobId } = await response.json();
console.log(jobId);API request parameters
Parameters for requests to P-Video-2 via the GetVibe API.
promptreq.image_urlaudio_urldurationresolutiondraftaspect_ratiolast_frame_urlsave_audioseedimage_file_idimage_base64last_frame_file_idaudio_file_idaudio_base64| Parameter | Type | Values | Default | Price |
|---|---|---|---|---|
promptreq. | text | text description | required | — |
image_url | URL | Public image URL | — | — |
audio_url | URL | Public audio URL | — | — |
duration | option selection | 2 · 3 · 5 (default) · 8 · 10 · 15 · 20 | 5 | 2: $0.08, 3: $0.12, 5: $0.20, 8: $0.32, 10: $0.40, 15: $0.60, 20: $0.80 |
resolution | option selection | 720p (default) · 1080p | 720p | 720p: $0.20, 1080p: $0.40 |
draft | yes/no | Yes · No (default) | No | Yes: $0.10, No: $0.20 |
aspect_ratio | option selection | 16:9 (default) · 9:16 · 4:3 · 3:4 · 3:2 · 2:3 · 1:1 | 16:9 | Included in the base price |
last_frame_url | text / number | any value | — | Included in the base price |
save_audio | yes/no | Yes (default) · No | Yes | Included in the base price |
seed | text / number | any value | — | Included in the base price |
image_file_id | text | Alternative to image_url: the id of your own file from POST /v1/files (file-pv-…) | — | Included in the base price |
image_base64 | text | Alternative to image_url: the file inline, as base64 or a data: URI | — | Included in the base price |
last_frame_file_id | text | Alternative to last_frame_url: the id of your own file from POST /v1/files (file-pv-…) | — | Included in the base price |
audio_file_id | text | Alternative to audio_url: the id of your own file from POST /v1/files (file-pv-…) | — | Included in the base price |
audio_base64 | text | Alternative to audio_url: the file inline, as base64 or a data: URI | — | Included in the base price |
Request: POST https://getvibeapi.com/api/media/generate. Prices in USD.
Price of P-Video-2
The cost of P-Video-2: from $0.04 per clip. The price is calculated dynamically at the current exchange rate, and the final charge is shown in the API response (priceRub). Payment in USD, no subscriptions.
What a default request costs
With no parameters sent, the request uses these values: Duration — 5, Resolution — 720p, Draft mode (cheaper, lower quality) — No, Frame format — 16:9. That request costs $0.20.
“from $0.04” is the cheapest parameter set, not the price of a default request.
Channels and prices for every parameter combination
For every channel, the price of every parameter combination. It is exactly the amount a successful generation is charged, and the same figure as in the machine-readable table linked below.
Canvasp-video-2from $0.04exact prices
| Resolution · Draft mode (cheaper, lower quality) \ Duration, sec | 2 s | 3 s | 5 s | 8 s | 10 s | 15 s | 20 s |
|---|---|---|---|---|---|---|---|
| 720p · No | $0.08 | $0.12 | $0.20 | $0.32 | $0.40 | $0.60 | $0.80 |
| 720p · Yes | $0.04 | $0.06 | $0.10 | $0.16 | $0.20 | $0.30 | $0.40 |
| 1080p · No | $0.16 | $0.24 | $0.40 | $0.64 | $0.80 | $1.20 | $1.60 |
| 1080p · Yes | $0.08 | $0.12 | $0.20 | $0.32 | $0.40 | $0.60 | $0.80 |
Every combination as JSON: /api/media/price-table?model=p-video-2
README
The machine-readable contract for P-Video-2 contains the request schema, operations, limits, polling and response examples.
# P-Video-2
Public model: p-video-2
Create job: POST /api/media/generate
Check status: GET /api/media/jobs/{jobId}
## Input parameters
- `prompt` (text): text description; default: required
- `image_url` (URL): Public image URL; default: —
- `audio_url` (URL): Public audio URL; default: —
- `duration` (option selection): 2 · 3 · 5 (default) · 8 · 10 · 15 · 20; default: 5
- `resolution` (option selection): 720p (default) · 1080p; default: 720p
- `draft` (yes/no): Yes · No (default); default: No
- `aspect_ratio` (option selection): 16:9 (default) · 9:16 · 4:3 · 3:4 · 3:2 · 2:3 · 1:1; default: 16:9
- `last_frame_url` (text / number): any value; default: —
- `save_audio` (yes/no): Yes (default) · No; default: Yes
- `seed` (text / number): any value; default: —
- `image_file_id` (text): Alternative to image_url: the id of your own file from POST /v1/files (file-pv-…); default: —
- `image_base64` (text): Alternative to image_url: the file inline, as base64 or a data: URI; default: —
- `last_frame_file_id` (text): Alternative to last_frame_url: the id of your own file from POST /v1/files (file-pv-…); default: —
- `audio_file_id` (text): Alternative to audio_url: the id of your own file from POST /v1/files (file-pv-…); default: —
- `audio_base64` (text): Alternative to audio_url: the file inline, as base64 or a data: URI; default: —
## Public variants
- `p-video-2`: CanvasFAQ about the P-Video-2 API
How much does P-Video-2 cost?
The price of P-Video-2: from $0.04 per clip. The price is calculated dynamically at the current exchange rate.
Is it compatible with the OpenAI SDK?
Yes, the API is fully OpenAI-compatible. Just change base_url to https://getvibeapi.com/v1 and set your key — the rest of the code stays the same.