Migrations
Connect Migration Source
Attach a provider credential to an existing migration run.
POST
/
api
/
v1
/
migrations
/
{runId}
/
connect-source
Connect Migration Source
curl --request POST \
--url https://api.sequenzy.com/api/v1/migrations/{runId}/connect-source \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"provider": "<string>",
"credential": "<string>",
"providerLabel": "<string>"
}
'import requests
url = "https://api.sequenzy.com/api/v1/migrations/{runId}/connect-source"
payload = {
"provider": "<string>",
"credential": "<string>",
"providerLabel": "<string>"
}
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: '<string>', credential: '<string>', providerLabel: '<string>'})
};
fetch('https://api.sequenzy.com/api/v1/migrations/{runId}/connect-source', 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://api.sequenzy.com/api/v1/migrations/{runId}/connect-source",
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' => '<string>',
'credential' => '<string>',
'providerLabel' => '<string>'
]),
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;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.sequenzy.com/api/v1/migrations/{runId}/connect-source"
payload := strings.NewReader("{\n \"provider\": \"<string>\",\n \"credential\": \"<string>\",\n \"providerLabel\": \"<string>\"\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))
}HttpResponse<String> response = Unirest.post("https://api.sequenzy.com/api/v1/migrations/{runId}/connect-source")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"provider\": \"<string>\",\n \"credential\": \"<string>\",\n \"providerLabel\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sequenzy.com/api/v1/migrations/{runId}/connect-source")
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\": \"<string>\",\n \"credential\": \"<string>\",\n \"providerLabel\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{"success":true,"data":{"id":"run_123","status":"pending","provider":"mailchimp"}}
{"success":false,"error":"Migration provider is not available"}
{"error":"Invalid API key"}
{"error":"Migration run not found"}
Connect Migration Source
Stores the source credential for the run connection. Discovery and imports are queued separately.Request
string
required
Migration run ID.
string
required
Provider adapter ID. Supported values include
active-campaign, brevo, constant-contact, customer-io, drip, hubspot, kit, klaviyo, loops, mailchimp, mailerlite, mailjet, omnisend, resend, and sendgrid.string
required
Provider API credential.
string
Optional display label for manual providers.
curl -X POST "https://api.sequenzy.com/api/v1/migrations/run_123/connect-source" \
-H "Authorization: Bearer SEQUENZY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"provider":"mailchimp","credential":"PROVIDER_API_KEY"}'
Responses
{"success":true,"data":{"id":"run_123","status":"pending","provider":"mailchimp"}}
{"success":false,"error":"Migration provider is not available"}
{"error":"Invalid API key"}
{"error":"Migration run not found"}
⌘I
Connect Migration Source
curl --request POST \
--url https://api.sequenzy.com/api/v1/migrations/{runId}/connect-source \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"provider": "<string>",
"credential": "<string>",
"providerLabel": "<string>"
}
'import requests
url = "https://api.sequenzy.com/api/v1/migrations/{runId}/connect-source"
payload = {
"provider": "<string>",
"credential": "<string>",
"providerLabel": "<string>"
}
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: '<string>', credential: '<string>', providerLabel: '<string>'})
};
fetch('https://api.sequenzy.com/api/v1/migrations/{runId}/connect-source', 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://api.sequenzy.com/api/v1/migrations/{runId}/connect-source",
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' => '<string>',
'credential' => '<string>',
'providerLabel' => '<string>'
]),
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;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.sequenzy.com/api/v1/migrations/{runId}/connect-source"
payload := strings.NewReader("{\n \"provider\": \"<string>\",\n \"credential\": \"<string>\",\n \"providerLabel\": \"<string>\"\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))
}HttpResponse<String> response = Unirest.post("https://api.sequenzy.com/api/v1/migrations/{runId}/connect-source")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"provider\": \"<string>\",\n \"credential\": \"<string>\",\n \"providerLabel\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sequenzy.com/api/v1/migrations/{runId}/connect-source")
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\": \"<string>\",\n \"credential\": \"<string>\",\n \"providerLabel\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{"success":true,"data":{"id":"run_123","status":"pending","provider":"mailchimp"}}
{"success":false,"error":"Migration provider is not available"}
{"error":"Invalid API key"}
{"error":"Migration run not found"}