Rivya AI -dokumentaatio

Files API

Lataa kuva-, video- tai audioreferenssitiedostoja Rivya API -generointipyyntöihin MIME-tarkistuksilla, kokorajoilla ja duration tokeneilla.

Viimeksi tarkistettu 2026/05/11

Käytä POST /api/v1/files -endpointtia referenssimedian lataamiseen malleille, jotka tarvitsevat kuva-, video- tai audiosyötteitä.

Files API on tarkoitettu vain referenssisyötteille. Se ei luo generointitehtäviä yksinään. Latauksen jälkeen anna palautettu url ja metadata mallin params-kenttiin, yleensä params.referenceMediaItems-rakenteen kautta.

Endpoint

POST https://rivya.ai/api/v1/files
GET https://rivya.ai/api/v1/files/{fileId}

Vaaditut headerit:

Authorization: Bearer rvya_sk_...
Content-Type: multipart/form-data

API-avaimessa täytyy olla files:create-scope lataamista varten ja files:read metadatan hakemista varten. Uudet Rivya API -avaimet sisältävät molemmat scope-oikeudet oletuksena.

Multipart-kentät

FieldTypePakollinenHuomiot
filebinarykylläLadattava kuva-, video- tai audiotiedosto.
kindstringkylläYksi arvoista image, video tai audio.
modelstringeiJulkinen mallitunnus. Kun tämä on mukana, Rivya tarkistaa, hyväksyykö malli tämän tiedostotyypin.
client_request_idstringeiOma trace ID:si, enintään 128 merkkiä.

Käytä model-kenttää, kun tiedosto on tarkoitettu tietylle mallille. Näin saat mallikohtaisen MIME- ja kokotarkistuksen ennen tiedoston hyväksymistä.

Latausrajat

Files API käyttää samaa latauskäytäntöä kuin Rivyan referenssilataukset.

Oletusrajat:

KindOletusmaksimikokoYleiset MIME-tyypit
image10 MBimage/jpeg, image/png, image/webp
video50 MBvideo/mp4, video/quicktime, video/webm
audio10 MBaudio/mpeg, audio/mp4, audio/wav, audio/x-wav, audio/aac, audio/ogg

Joillakin malleilla on eri rajat. Esimerkiksi tietyt referenssikuvamallit sallivat suuremmat kuvat, ja tietyt videoreferenssimallit sallivat tiedostoja tuotteen edge-safe-latauskattoon asti. Anna aina model, kun tiedät kohdemallin, ja lue mallien API-viite ennen käyttäjälatausten hyväksymistä.

Rivya tarkistaa havaitun tiedostosignatuurin, ei pelkästään tiedostonimen päätettä.

curl-esimerkki

curl https://rivya.ai/api/v1/files \
  -H "Authorization: Bearer rvya_sk_..." \
  -F "file=@./reference.png" \
  -F "kind=image" \
  -F "model=nano-banana-2" \
  -F "client_request_id=asset-123"

JavaScript-esimerkki

import { readFile } from "node:fs/promises";

const form = new FormData();
const file = new Blob([await readFile("./reference.png")], {
  type: "image/png"
});

form.set("file", file, "reference.png");
form.set("kind", "image");
form.set("model", "nano-banana-2");
form.set("client_request_id", "asset-123");

const response = await fetch("https://rivya.ai/api/v1/files", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.RIVYA_API_KEY}`
  },
  body: form
});

const uploadedFile = await response.json();
console.log(uploadedFile.id, uploadedFile.url);

Python-esimerkki

import os
import requests

with open("./reference.png", "rb") as file_handle:
    response = requests.post(
        "https://rivya.ai/api/v1/files",
        headers={
            "Authorization": f"Bearer {os.environ['RIVYA_API_KEY']}",
        },
        files={"file": ("reference.png", file_handle, "image/png")},
        data={
            "kind": "image",
            "model": "nano-banana-2",
            "client_request_id": "asset-123",
        },
        timeout=60,
    )

uploaded_file = response.json()
print(uploaded_file["id"], uploaded_file["url"])

Vastaus

{
  "id": "file_...",
  "object": "file",
  "kind": "image",
  "file_name": "reference.png",
  "mime_type": "image/png",
  "size_bytes": 482314,
  "url": "https://...",
  "duration_seconds": null,
  "duration_token": null,
  "created_at": "2026-05-11T00:00:00.000Z",
  "expires_at": null
}

Video- ja audiolatauksissa duration_seconds voi täyttyä. Kun malli vaatii keston tarkistusta, kopioi duration_token liittyvään generointiparametriin nimellä durationToken.

Hae tiedoston metadata

Käytä GET /api/v1/files/{fileId} -endpointtia samalle Rivya-tilille kuuluvan tiedoston metadatan lukemiseen:

curl https://rivya.ai/api/v1/files/file_... \
  -H "Authorization: Bearer rvya_sk_..."

Vastaus käyttää samaa PublicApiFile-muotoa kuin lataus. Jos tiedosto kuuluu toiselle tilille tai ei ole enää saatavilla, API palauttaa virheen not_found.

Käytä latausta generointiparametreissa

Älä lähetä ylätason files-kenttää endpointille POST /api/v1/generations.

Uusissa integraatioissa anna lataustulos params.referenceMediaItems-rakenteen kautta:

{
  "model": "nano-banana-2",
  "prompt": "Restyle this product photo for a clean editorial catalog page",
  "params": {
    "referenceMediaItems": [
      {
        "url": "https://...",
        "kind": "image",
        "name": "reference.png",
        "mimeType": "image/png"
      }
    ]
  },
  "client_request_id": "order-123-preview"
}

Videolle tai audiolle:

{
  "url": "https://...",
  "kind": "video",
  "name": "source.mov",
  "mimeType": "video/quicktime",
  "durationSeconds": 12.4,
  "durationToken": "duration_token_from_files_api"
}

Jotkin vanhemmat malliparametrit käyttävät edelleen mallikohtaisia URL-kenttiä. Jos mallien API-viite dokumentoi tietyn parametrin, noudata kyseistä mallisivua uuden kentän keksimisen sijaan.

Virheet

Files API käyttää samaa julkista virhekuorta kuin muu Rivya API:

{
  "error": {
    "code": "validation_failed",
    "message": "The request is invalid.",
    "requestId": "req_..."
  }
}

Yleiset tapaukset:

HTTPCodeSyy
400validation_failedfile puuttuu, kind ei ole tuettu, MIME-tyyppiä ei tueta, tiedosto on liian suuri tai malli ei hyväksy valittua tyyppiä.
401api_key_missing / api_key_invalidBearer API -avain puuttuu tai on virheellinen.
403api_scope_deniedAvain ei sisällä pyydettyyn toimintoon tarvittavaa files:create- tai files:read-scopea.
429rate_limitedNykyisessä minuutissa on liian monta tiedostolatausta.
503public_api_disabledPublic API on poissa käytöstä nykyisessä ympäristössä.

Turvallisuushuomiot

Älä tallenna kokonaisia API-avaimia selaimiin, mobiiliasiakkaisiin, lokeihin, analytiikkatapahtumiin tai kuvakaappauksiin.

Käsittele ladattujen tiedostojen URL-osoitteita ja duration_token-arvoja väliaikaisena integraatiomateriaalina. Käytä niitä vain jatkogenerointipyynnön rakentamiseen äläkä paljasta niitä julkisilla sivuilla.

Liittyvät sivut

Sisällysluettelo