Developer Docs

API Referenz – ClipKraft

RESTful API für Suchanfragen, Download-Links und Nutzer-Management. Basis-URL: https://api.clipkraft.io/v1

Integriere ClipKrafts Bibliothek von über 480.000 lizenzfreien Stock-Videos direkt in deine Plattform. Die API unterstützt OAuth 2.0, paginierte JSON-Antworten und CORS. Rate-Limit: 120 Anfragen pro Minute pro API-Key.

Authentifizierung erfolgt über den Header Authorization: Bearer <token>. Erstelle deinen API-Key im ClipKraft Developer Dashboard unter developer.clipkraft.io/settings/keys. Alle Endpunkte erwarten und liefern JSON (Content-Type: application/json).

Endpunkte

endpoint-list

GET

/search/clips

Durchsucht die ClipKraft-Bibliothek nach Videos. Unterstützt Volltextsuche, Facetten-Filter und Sortierung.

Query-Parameter:
q – Suchbegriff (z. B. timelapse+tokyo+night)
duration_max – Maximale Länge in Sekunden (1–300)
orientationlandscape | portrait | square
fps – 24 | 30 | 60 | 120
page – Seitenzahl (Standard: 1)
per_page – Ergebnisse pro Seite (10–50, Standard: 20)

GET

/clips/{clip_id}

Ruft detaillierte Metadaten eines einzelnen Clips ab, inkl. Thumbnail-URLs, Farbpalette, Tags und Lizenzinformationen.

Pfad-Parameter:
clip_id – UUID des Clips (z. B. a3f8c1d0-7b2e-4e91-9c5a-00d4f6e81b22)

Antwortfelder: id, title, description, duration, resolution, format, fps, file_size_bytes, tags[], color_palette[], license_type, contributor, created_at

POST

/downloads/request

Generiert einen zeitlich begrenzten Download-Link für einen gelizenzten Clip. Links sind 15 Minuten gültig und auf 3 Downloads beschränkt.

Body:
clip_id – UUID des Clips
formatmp4 | mov | webm
qualityoriginal | 1080p | 720p

Antwort: download_url, expires_at, remaining_downloads

GET

/users/me

Ruft das Profil des authentifizierten Nutzers ab, inkl. Abonnement-Tier, verbleibende Downloads und Nutzungsstatistiken.

Antwortfelder: id, email, name, plan (free | pro | enterprise), downloads_remaining, downloads_total, api_calls_today

PUT

/users/me/preferences

Aktualisiert Nutzerpräferenzen wie Standard-Download-Format, Benachrichtigungseinstellungen und Sprache.

Body:
default_formatmp4 | mov
default_qualityoriginal | 1080p | 720p
languageen | de | fr | ja
email_notifications – true | false

GET

/collections/{collection_id}/clips

Listet alle Clips einer kuratierten Sammlung auf. Nützlich für thematische Batches wie "Cinematic Transitions" oder "Nature Macro Shots".

Pfad-Parameter:
collection_id – UUID der Sammlung (z. B. c7e2a9f1-4d83-41b0-aa6c-11e7f9d30c44)

Query-Parameter: page, per_page (gleiche Semantik wie /search/clips)

Beispiele

code-examples

Suche – cURL

Finde 4K-Timelapses von Städten bei Nacht, maximal 15 Sekunden, sortiert nach Relevanz:

curl -X GET "https://api.clipkraft.io/v1/search/clips?q=timelapse+city+night&duration_max=15&resolution=4k&per_page=10" \
  -H "Authorization: Bearer sk_live_4eC39HqLyjWDarjtT1zdp7dc" \
  -H "Accept: application/json"

{
  "data": [
    {
      "id": "a3f8c1d0-7b2e-4e91-9c5a-00d4f6e81b22",
      "title": "Tokyo Shibuya Crossing Night Timelapse",
      "duration": 12,
      "resolution": "3840x2160",
      "format": "mp4",
      "fps": 30,
      "contributor": "Yuki Tanaka",
      "license_type": "standard",
      "thumbnail_url": "https://cdn.clipkraft.io/thumbs/a3f8c1d0.jpg"
    }
  ],
  "pagination": {
    "page": 1,
    "per_page": 10,
    "total_results": 847,
    "total_pages": 85
  }
}

Download-Link – JavaScript (fetch)

Beantrage einen temporären Download-Link für einen Clip in 1080p MP4:

const response = await fetch('https://api.clipkraft.io/v1/downloads/request', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer sk_live_4eC39HqLyjWDarjtT1zdp7dc',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    clip_id: 'a3f8c1d0-7b2e-4e91-9c5a-00d4f6e81b22',
    format: 'mp4',
    quality: '1080p'
  })
});

const data = await response.json();
// data.download_url → "https://cdn.clipkraft.io/dl/signed/..."
// data.expires_at → "2025-07-15T14:32:00Z"
// data.remaining_downloads → 3

Nutzerprofil – Python (requests)

Prüfe verbleibende Downloads und aktuelles Abonnement:

import requests

headers = {
    'Authorization': 'Bearer sk_live_4eC39HqLyjWDarjtT1zdp7dc'
}

response = requests.get(
    'https://api.clipkraft.io/v1/users/me',
    headers=headers
)

user = response.json()
print(f"Plan: {user['plan']}")
print(f"Downloads übrig: {user['downloads_remaining']}")
print(f"API-Aufrufe heute: {user['api_calls_today']}")

# Ausgabe:
# Plan: pro
# Downloads übrig: 487
# API-Aufrufe heute: 23

Fehlerbehandlung

Die API verwendet standardisierte HTTP-Statuscodes. Fehlerantworten enthalten einen error-Block:

{
  "error": {
    "code": "rate_limit_exceeded",
    "message": "You have exceeded 120 requests per minute. Retry after 42 seconds.",
    "retry_after": 42
  }
}

Häufige Codes:
401 – Ungültiger oder abgelaufener Bearer-Token
403 – Clip nicht im aktuellen Abonnement enthalten
404 – Clip-ID oder Collection-ID nicht gefunden
429 – Rate limit überschritten (Retry-After-Header enthält Wartezeit)
500 – Interner Serversfehler (wende dich an api-support@clipkraft.io)

Nächste Schritte

API-Key anfordern

Erstelle ein kostenloses Entwickler-Konto und erhalte sofort einen Test-Key mit 50 Anfragen pro Tag. Für Produktionsnutzung und höhere Limits wende dich an unser Developer-Relay-Team.

Developer Dashboard öffnen Postman Collection herunterladen
```html ```

Developer Docs

API Referenz – ClipKraft

RESTful API für Suchanfragen, Download-Links und Nutzer-Management. Basis-URL: https://api.clipkraft.io/v1

Integriere ClipKrafts Bibliothek von über 480.000 lizenzfreien Stock-Videos direkt in deine Plattform. Die API unterstützt OAuth 2.0, paginierte JSON-Antworten und CORS. Rate-Limit: 120 Anfragen pro Minute pro API-Key.

Authentifizierung erfolgt über den Header Authorization: Bearer <token>. Erstelle deinen API-Key im ClipKraft Developer Dashboard unter developer.clipkraft.io/settings/keys. Alle Endpunkte erwarten und liefern JSON (Content-Type: application/json).

Endpunkte

endpoint-list

GET

/search/clips

Durchsucht die ClipKraft-Bibliothek nach Videos. Unterstützt Volltextsuche, Facetten-Filter und Sortierung.

Query-Parameter:
q – Suchbegriff (z. B. timelapse+tokyo+night)
duration_max – Maximale Länge in Sekunden (1–300)
orientationlandscape | portrait | square
fps – 24 | 30 | 60 | 120
page – Seitenzahl (Standard: 1)
per_page – Ergebnisse pro Seite (10–50, Standard: 20)

GET

/clips/{clip_id}

Ruft detaillierte Metadaten eines einzelnen Clips ab, inkl. Thumbnail-URLs, Farbpalette, Tags und Lizenzinformationen.

Pfad-Parameter:
clip_id – UUID des Clips (z. B. a3f8c1d0-7b2e-4e91-9c5a-00d4f6e81b22)

Antwortfelder: id, title, description, duration, resolution, format, fps, file_size_bytes, tags[], color_palette[], license_type, contributor, created_at

POST

/downloads/request

Generiert einen zeitlich begrenzten Download-Link für einen gelizenzten Clip. Links sind 15 Minuten gültig und auf 3 Downloads beschränkt.

Body:
clip_id – UUID des Clips
formatmp4 | mov | webm
qualityoriginal | 1080p | 720p

Antwort: download_url, expires_at, remaining_downloads

GET

/users/me

Ruft das Profil des authentifizierten Nutzers ab, inkl. Abonnement-Tier, verbleibende Downloads und Nutzungsstatistiken.

Antwortfelder: id, email, name, plan (free | pro | enterprise), downloads_remaining, downloads_total, api_calls_today

PUT

/users/me/preferences

Aktualisiert Nutzerpräferenzen wie Standard-Download-Format, Benachrichtigungseinstellungen und Sprache.

Body:
default_formatmp4 | mov
default_qualityoriginal | 1080p | 720p
languageen | de | fr | ja
email_notifications – true | false

GET

/collections/{collection_id}/clips

Listet alle Clips einer kuratierten Sammlung auf. Nützlich für thematische Batches wie "Cinematic Transitions" oder "Nature Macro Shots".

Pfad-Parameter:
collection_id – UUID der Sammlung (z. B. c7e2a9f1-4d83-41b0-aa6c-11e7f9d30c44)

Query-Parameter: page, per_page (gleiche Semantik wie /search/clips)

Beispiele

code-examples

Suche – cURL

Finde 4K-Timelapses von Städten bei Nacht, maximal 15 Sekunden, sortiert nach Relevanz:

curl -X GET "https://api.clipkraft.io/v1/search/clips?q=timelapse+city+night&duration_max=15&resolution=4k&per_page=10" \
  -H "Authorization: Bearer sk_live_4eC39HqLyjWDarjtT1zdp7dc" \
  -H "Accept: application/json"

{
  "data": [
    {
      "id": "a3f8c1d0-7b2e-4e91-9c5a-00d4f6e81b22",
      "title": "Tokyo Shibuya Crossing Night Timelapse",
      "duration": 12,
      "resolution": "3840x2160",
      "format": "mp4",
      "fps": 30,
      "contributor": "Yuki Tanaka",
      "license_type": "standard",
      "thumbnail_url": "https://cdn.clipkraft.io/thumbs/a3f8c1d0.jpg"
    }
  ],
  "pagination": {
    "page": 1,
    "per_page": 10,
    "total_results": 847,
    "total_pages": 85
  }
}

Download-Link – JavaScript (fetch)

Beantrage einen temporären Download-Link für einen Clip in 1080p MP4:

const response = await fetch('https://api.clipkraft.io/v1/downloads/request', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer sk_live_4eC39HqLyjWDarjtT1zdp7dc',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    clip_id: 'a3f8c1d0-7b2e-4e91-9c5a-00d4f6e81b22',
    format: 'mp4',
    quality: '1080p'
  })
});

const data = await response.json();
// data.download_url → "https://cdn.clipkraft.io/dl/signed/..."
// data.expires_at → "2025-07-15T14:32:00Z"
// data.remaining_downloads → 3

Nutzerprofil – Python (requests)

Prüfe verbleibende Downloads und aktuelles Abonnement:

import requests

headers = {
    'Authorization': 'Bearer sk_live_4eC39HqLyjWDarjtT1zdp7dc'
}

response = requests.get(
    'https://api.clipkraft.io/v1/users/me',
    headers=headers
)

user = response.json()
print(f"Plan: {user['plan']}")
print(f"Downloads übrig: {user['downloads_remaining']}")
print(f"API-Aufrufe heute: {user['api_calls_today']}")

# Ausgabe:
# Plan: pro
# Downloads übrig: 487
# API-Aufrufe heute: 23

Fehlerbehandlung

Die API verwendet standardisierte HTTP-Statuscodes. Fehlerantworten enthalten einen error-Block:

{
  "error": {
    "code": "rate_limit_exceeded",
    "message": "You have exceeded 120 requests per minute. Retry after 42 seconds.",
    "retry_after": 42
  }
}

Häufige Codes:
401 – Ungültiger oder abgelaufener Bearer-Token
403 – Clip nicht im aktuellen Abonnement enthalten
404 – Clip-ID oder Collection-ID nicht gefunden
429 – Rate limit überschritten (Retry-After-Header enthält Wartezeit)
500 – Interner Serversfehler (wende dich an api-support@clipkraft.io)

Nächste Schritte

API-Key anfordern

Erstelle ein kostenloses Entwickler-Konto und erhalte sofort einen Test-Key mit 50 Anfragen pro Tag. Für Produktionsnutzung und höhere Limits wende dich an unser Developer-Relay-Team.

Developer Dashboard öffnen Postman Collection herunterladen