# Toolkit - Video Convert Video toolkit – convert, make GIFs, extract audio ## API Information - **Model Slug:** toolkit - **Branded URL:** https://www.eachlabs.ai/eachlabs/eachlabs/toolkit - **Provider:** each::labs - **Category:** Utilities - **Output Type:** video - **Status:** active - **Version:** 0.0.1 - **Base Cost:** $0.00011 per processing second - **Estimated Processing Time:** 1 seconds - **Last Updated:** 2026-07-13 - **Interactive Demo:** https://www.eachlabs.ai/ai-models/toolkit ## Pricing - **Charge Type:** dynamic - **Estimate:** $0.00011 per processing second - **Pricing Details:** default: $0.00011 ## Input Schema | Parameter | Type | Required | Default | Constraints | Description | |-----------|------|----------|---------|-------------|-------------| | task | string | Yes | - | convert_input_to_mp4,convert_input_to_gif,extract_video_audio_as_mp3,zipped_frames_to_mp4,zipped_frames_to_gif,extract_frames_from_input,reverse_video,bounce_video | An enumeration. | | input_file | string | Yes | - | video/mp4, video/gif | File – zip, image or video to process | | fps | integer | No | 1 | 1–0 | frames per second, if relevant. Use 0 to keep original fps (or use default). Converting to GIF defaults to 12fps | ## Example Request ```bash curl -X POST https://api.eachlabs.ai/v1/prediction/ \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "toolkit", "input": { "task": "convert_input_to_gif", "input_file": "https://cdn-us.eachlabs.ai/defaults/175fca0cfaf39fea236228e4897ee65657362ca6c00e89d730831fbb5e0cb37d.mp4" } }' ``` ## Output Schema Response returned by `GET /v1/prediction/{id}` when the job completes: ```json { "status": "success", "predictionID": "string", "output": "string (URL of generated video)", "metrics": { "predict_time": "number (seconds)" } } ``` ## Polling ```bash curl https://api.eachlabs.ai/v1/prediction/{PREDICTION_ID} \ -H "Authorization: Bearer YOUR_API_KEY" ``` | Status | Meaning | |--------|---------| | `processing` | Still running — poll again | | `success` | Done — read `output` | | `error` | Failed — read `message` / `details` | ## Webhook (alternative to polling) Pass `"webhook_url": "https://your.host/path"` in the create request. Eachlabs POSTs this payload when the job ends: ```json { "exec_id": "prediction-uuid", "status": "succeeded", "output": "https://...", "error": "" } ``` `status` is `"succeeded"` or `"failed"`. `exec_id` equals the `predictionID` from create. Return 2xx within 30 seconds. ## Errors Error body: `{ "status": "error", "message": "...", "details": "..." }` | Code | Meaning | |------|---------| | `400` | Invalid input | | `401` | Missing / invalid `Authorization` bearer token | | `404` | Unknown model or prediction id | | `429` | Rate limit — 100 creates / min, 10 concurrent per key | | `5xx` | Retry with backoff | ## Overview **toolkit — Utilities AI Model** toolkit from Eachlabs revolutionizes video workflows by providing a comprehensive **video toolkit** for converting formats, creating GIFs, and extracting audio with seamless efficiency. Developed by Eachlabs as part of the eachlabs family, this **utilities AI model** tackles common pain points in media processing, enabling creators and developers to handle video tasks without complex software setups. Whether you're optimizing clips for social media or pulling clean audio tracks, toolkit delivers fast, reliable results ideal for **AI video converter** and **GIF maker AI** needs. ## Usage Notes - API Base URL: `https://api.eachlabs.ai/v1` - Authentication: send `Authorization: Bearer YOUR_API_KEY`. Generate a key from the Eachlabs dashboard at https://www.eachlabs.ai/dashboard/api-keys. - File-typed parameters (`*_url`, `image_url`, `video_url`, `audio_url`, etc.) accept publicly-reachable HTTPS URLs only. Upload your asset first (GCS / S3 / your CDN) and pass the resulting URL. Data-URIs and localhost URLs are rejected. - For structured parameters (arrays / objects) send real JSON values, not stringified payloads. - Monetary values are reported in USD; per-token / per-megapixel rates may be billed in micro-cents internally. - Prefer `webhook_url` over polling for long-running predictions — see the Webhook Callback section.