curl --request GET \
--url https://app.vortexiq.ai/v2/api/bc-migration/migrations \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.vortexiq.ai/v2/api/bc-migration/migrations"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.vortexiq.ai/v2/api/bc-migration/migrations', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.vortexiq.ai/v2/api/bc-migration/migrations",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.vortexiq.ai/v2/api/bc-migration/migrations"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.vortexiq.ai/v2/api/bc-migration/migrations")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.vortexiq.ai/v2/api/bc-migration/migrations")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"migrations": [
{
"requestId": "<string>",
"platform": "<string>",
"source": {
"hash": "<string>",
"label": "<string>"
},
"destination": {
"hash": "<string>",
"label": "<string>"
},
"autoHeal": true,
"selective": true,
"sourceStorefront": "<string>",
"destStorefront": "<string>",
"selectedEntities": [
"<string>"
],
"summary": "<string>",
"startedAt": "2023-11-07T05:31:56Z",
"completedAt": "2023-11-07T05:31:56Z",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"forecast": {
"products": 123,
"variants": 123,
"brands": 123,
"categories": 123,
"counts": {},
"estimated": [
"<string>"
],
"memMB": 123,
"cpus": 123,
"etaSeconds": 123,
"etaBreakdown": {},
"etaAssumedRttMs": 123,
"etaAssumedMs": {
"read": 123,
"write": 123,
"heavy": 123
},
"destProducts": 123,
"at": "2023-11-07T05:31:56Z"
}
}
]
}{
"message": "Store Migration is not enabled for this organization."
}List migrations
Migration history for your organisation, newest first (up to 100 runs).
History is served from Vortex IQ’s durable store rather than the engine’s own volume, so finished runs remain readable long after their run containers are torn down. The X-Read-Source response header records which store served the read (opensearch, mysql, or engine) and is informational only.
curl --request GET \
--url https://app.vortexiq.ai/v2/api/bc-migration/migrations \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.vortexiq.ai/v2/api/bc-migration/migrations"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.vortexiq.ai/v2/api/bc-migration/migrations', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.vortexiq.ai/v2/api/bc-migration/migrations",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.vortexiq.ai/v2/api/bc-migration/migrations"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.vortexiq.ai/v2/api/bc-migration/migrations")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.vortexiq.ai/v2/api/bc-migration/migrations")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"migrations": [
{
"requestId": "<string>",
"platform": "<string>",
"source": {
"hash": "<string>",
"label": "<string>"
},
"destination": {
"hash": "<string>",
"label": "<string>"
},
"autoHeal": true,
"selective": true,
"sourceStorefront": "<string>",
"destStorefront": "<string>",
"selectedEntities": [
"<string>"
],
"summary": "<string>",
"startedAt": "2023-11-07T05:31:56Z",
"completedAt": "2023-11-07T05:31:56Z",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"forecast": {
"products": 123,
"variants": 123,
"brands": 123,
"categories": 123,
"counts": {},
"estimated": [
"<string>"
],
"memMB": 123,
"cpus": 123,
"etaSeconds": 123,
"etaBreakdown": {},
"etaAssumedRttMs": 123,
"etaAssumedMs": {
"read": 123,
"write": 123,
"heavy": 123
},
"destProducts": 123,
"at": "2023-11-07T05:31:56Z"
}
}
]
}{
"message": "Store Migration is not enabled for this organization."
}Authorizations
A bearer token from Login, sent as Authorization: Bearer <token>. Valid for 10 days; scoped to the user and organisation it was issued for. Rotating or disabling the organisation's API credential immediately invalidates all outstanding tokens. Browser calls from a signed-in app.vortexiq.ai page are also accepted via session cookie — see Authentication.
Response
Migration summaries.
Show child attributes
Show child attributes
Was this page helpful?