Skip to main content
POST
/
libraries
/
{libraryId}
/
migration-jobs
Create Migrations
curl --request POST \
  --url https://api.tenbyte.io/v1/vidinfra/libraries/{libraryId}/migration-jobs \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "provider": "vimeo",
  "credentials": {
    "access_token": "your_vimeo_access_token"
  }
}
'
import requests

url = "https://api.tenbyte.io/v1/vidinfra/libraries/{libraryId}/migration-jobs"

payload = {
"provider": "vimeo",
"credentials": { "access_token": "your_vimeo_access_token" }
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({provider: 'vimeo', credentials: {access_token: 'your_vimeo_access_token'}})
};

fetch('https://api.tenbyte.io/v1/vidinfra/libraries/{libraryId}/migration-jobs', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
package main

import (
"fmt"
"strings"
"net/http"
"io"
)

func main() {

url := "https://api.tenbyte.io/v1/vidinfra/libraries/{libraryId}/migration-jobs"

payload := strings.NewReader("{\n \"provider\": \"vimeo\",\n \"credentials\": {\n \"access_token\": \"your_vimeo_access_token\"\n }\n}")

req, _ := http.NewRequest("POST", url, payload)

req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
require 'uri'
require 'net/http'

url = URI("https://api.tenbyte.io/v1/vidinfra/libraries/{libraryId}/migration-jobs")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"provider\": \"vimeo\",\n \"credentials\": {\n \"access_token\": \"your_vimeo_access_token\"\n }\n}"

response = http.request(request)
puts response.read_body
HttpResponse<String> response = Unirest.post("https://api.tenbyte.io/v1/vidinfra/libraries/{libraryId}/migration-jobs")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"provider\": \"vimeo\",\n \"credentials\": {\n \"access_token\": \"your_vimeo_access_token\"\n }\n}")
.asString();
using RestSharp;


var options = new RestClientOptions("https://api.tenbyte.io/v1/vidinfra/libraries/{libraryId}/migration-jobs");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "Bearer <token>");
request.AddJsonBody("{\n \"provider\": \"vimeo\",\n \"credentials\": {\n \"access_token\": \"your_vimeo_access_token\"\n }\n}", false);
var response = await client.PostAsync(request);

Console.WriteLine("{0}", response.Content);
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "https://api.tenbyte.io/v1/vidinfra/libraries/{libraryId}/migration-jobs",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'provider' => 'vimeo',
'credentials' => [
'access_token' => 'your_vimeo_access_token'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
{
  "message": "Migration job created successfully",
  "success": true
}
{
"message": "Invalid Request",
"success": false
}
{
"code": "auth_type_not_found",
"message": "Could not determine authentication type from request. Please provide a valid Authorization header or X-API-Key header.",
"success": false
}
{
"message": "Resource not found",
"success": false
}
{
"message": "Invalid Request",
"errors": [
{
"field": "field_name",
"code": "validation_required",
"message": "This field is required"
}
],
"success": false
}
{
"message": "Internal server error",
"success": false
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Path Parameters

libraryId
string
required

Unique identifier of the library.

Body

application/json
provider
string
required

Specifies the source platform or service provider to migrate from (e.g., 'vimeo', 'youtube', 'bunny').

credentials
object
required

Authentication credentials required to access and migrate data from the source provider.

Response

message
string
required
success
boolean
required