LogoreAPI Docs
LogoreAPI Docs
HomepageWelcome

Image

gpt-image-2gpt-image-2-officialgemini-2.5-flash-image-previewgemini-3-pro-image-previewgemini-3.1-flash-image-previewdoubao-seedream-5-0-lite

Video

doubao-seedance-2.0seedance-2.0-betaseedance-2.0-fast-betahappyhorse-1.0happyhorse-1.0-officialviduq3grok-imagine-1.0-videoVeo 3.1

Tools

enhance-video-1.0
X (Twitter)

enhance-video-1.0

Async video quality enhancement — upscale, denoise, deblock, smart frame interpolation, and color refinement up to 4K with two quality tiers and five scene presets.

enhance-video-1.0 is a single async endpoint that takes a source video URL and returns a higher-quality MP4 — upscaled, denoised, smart-interpolated, with optional scene-aware restoration. Two quality tiers (standard / professional) and five scene presets cover everything from AI-generated footage to old-film restoration. See current pricing on the model page.

Quick example

curl https://reapi.ai/api/v1/videos/generations \
  -H "Authorization: Bearer rk_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "enhance-video-1.0",
    "video_url": "https://cdn.example.com/source_720p.mp4",
    "tool_version": "standard",
    "scene": "aigc",
    "resolution": "1080p"
  }'
import requests

resp = requests.post(
    "https://reapi.ai/api/v1/videos/generations",
    headers={
        "Authorization": "Bearer rk_live_xxx",
        "Content-Type": "application/json",
    },
    json={
        "model": "enhance-video-1.0",
        "video_url": "https://cdn.example.com/source_720p.mp4",
        "tool_version": "standard",
        "scene": "aigc",
        "resolution": "1080p",
    },
    timeout=30,
)
print(resp.json())
const r = await fetch("https://reapi.ai/api/v1/videos/generations", {
  method: "POST",
  headers: {
    Authorization: "Bearer rk_live_xxx",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    model: "enhance-video-1.0",
    video_url: "https://cdn.example.com/source_720p.mp4",
    tool_version: "standard",
    scene: "aigc",
    resolution: "1080p",
  }),
});
console.log(await r.json());
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "io"
    "net/http"
)

func main() {
    body, _ := json.Marshal(map[string]any{
        "model":        "enhance-video-1.0",
        "video_url":    "https://cdn.example.com/source_720p.mp4",
        "tool_version": "standard",
        "scene":        "aigc",
        "resolution":   "1080p",
    })
    req, _ := http.NewRequest("POST",
        "https://reapi.ai/api/v1/videos/generations", bytes.NewReader(body))
    req.Header.Set("Authorization", "Bearer rk_live_xxx")
    req.Header.Set("Content-Type", "application/json")

    resp, _ := http.DefaultClient.Do(req)
    defer resp.Body.Close()
    out, _ := io.ReadAll(resp.Body)
    fmt.Println(string(out))
}

Submit response

{
  "id": "task_018f5a3a1b6e7d9f8c2b4d6e8f0a2c4e",
  "model": "enhance-video-1.0",
  "status": "processing",
  "created_at": 1735000000
}

Poll GET /api/v1/tasks/{id} until status === "completed". The completed payload's output.video_urls holds the enhanced MP4 URL.


Authentication

Every call needs a Bearer token. Generate keys at reapi.ai/settings/apikeys.

Authorization: Bearer YOUR_API_KEY

Endpoint

POST /api/v1/videos/generations
GET  /api/v1/tasks/{id}

Submission is async. The POST returns immediately with a task_id; polling the task endpoint returns the same envelope until completion. Polling does not consume credits.


Request body

model — required

Always "enhance-video-1.0".

video_url — required (string)

Public HTTP/HTTPS URL of the source video.

  • Allowed schemes: http://, https:// only. Base64 / data: URIs are rejected.
  • Formats: mp4, flv, ts, avi, mov, wmv, mkv (and most other mainstream containers).
  • Size: up to 10 GB per file.
  • Duration: up to 2 hours.
  • Input resolution: up to 2K (short side ≤ 1440 px). Use resolution: "4k" to upscale beyond the source.

tool_version — optional ("standard" | "professional")

Default: "standard".

  • standard — balanced quality / speed. Internally runs ~10 frequently used algorithms; covers what most distribution platforms expect. Roughly 6 – 10× the source duration to process.
  • professional — maximum quality. Runs 30+ deep AI algorithms for shot-level enhancement. Roughly 30+× the source duration to process and ~10× the credits of standard.

scene — optional (string)

Selects a scene-tuned preset. Default: "common".

ValueRecommended for
commonGeneral-purpose enhancement (no scene-specific tuning).
ugcCompressed UGC clips — fixes blocking, color banding, blur.
short_seriesShort-drama footage — face / detail enhancement, stylized contrast.
aigcLow-res AI-generated video — super-resolution + detail repaint.
old_filmAged film — temporal denoise, scratch removal, deflicker, color cast correction.

resolution — optional (string)

Target output resolution. Mutually exclusive with resolution_limit.

Allowed values: 240p, 360p, 480p, 540p, 720p, 1080p, 2k, 4k.

If unset, the output keeps the source resolution.

resolution_limit — optional (integer)

Lock the output short-side to this exact pixel count, then scale the long side to preserve the source ratio. Range [64, 2160]. Mutually exclusive with resolution.

Use this when you need precise output dimensions (e.g. resolution_limit: 720 with a 640×480 source produces 960×720).

fps — optional (number)

Target output frame rate, max 120. If unset, the output matches the source frame rate. Setting a value higher than the source triggers AI frame interpolation; staying within 4× the source is recommended for natural-looking motion.

client_token — optional (string)

Client-supplied idempotency token. Up to 64 ASCII printable characters. The same token within a short window returns the same task_id.

callback_args — optional (string)

Opaque blob (≤ 512 bytes) you supply at submit time and receive back when the task completes (via the standard task envelope). Useful for stitching results back to your business records without storing the task_id.


Output

{
  "id": "task_018f5a3a1b6e7d9f8c2b4d6e8f0a2c4e",
  "model": "enhance-video-1.0",
  "status": "completed",
  "created_at": 1735000000,
  "output": {
    "video_urls": [
      "https://cdn.reapi.ai/media/tasks/018f5a3a1b6e7d9f8c2b4d6e8f0a2c4e/0.mp4"
    ]
  },
  "error": null
}

The MP4 lives on our CDN — copy it to your own storage if you need long-term retention.


Pricing

Billed by output duration × tier × resolution × fps tier. The output duration always matches the source video duration (enhance-video-1.0 does not change clip length).

When you submit, the gateway probes your video_url server-side to determine the exact billable seconds and resolution bucket. If the URL is unreachable or returns no metadata, you receive a 400 Could not determine source video metadata for billing and no credits are charged.

The bill scales with three knobs:

  • tool_version — professional is roughly 10× the cost of standard.
  • Output resolution bucket — 720p < 1080p < 2k < 4k. Each step doubles the cost.
  • Output fps tier — > 30 fps doubles the cost vs ≤ 30 fps. If you don't pass fps, the output keeps the source frame rate; billing assumes the ≤ 30 fps tier, which matches the vast majority of user-uploaded video. To opt into the > 30 fps tier, set fps explicitly.

See the live banner on the model page for the current rate range in credits.


Errors

Standard envelope:

{
  "error": {
    "code": 20003,
    "message": "resolution and resolution_limit are mutually exclusive",
    "request_id": "req_..."
  }
}

Common cases:

CodeWhen
20002video_url missing.
20003Invalid enum (tool_version, scene, resolution), resolution + resolution_limit both set, resolution_limit outside [64, 2160], or video_url not a public http(s) URL.
30002Source video metadata couldn't be probed (used for billing).
30001Insufficient credits for the probed source duration.
80003Provider rejected or failed the task (e.g. unsupported codec).

Table of Contents

Quick example
Submit response
Authentication
Endpoint
Request body
model — required
video_url — required (string)
tool_version — optional ("standard" | "professional")
scene — optional (string)
resolution — optional (string)
resolution_limit — optional (integer)
fps — optional (number)
client_token — optional (string)
callback_args — optional (string)
Output
Pricing
Errors