reverse-etl
reverse-etl — 9 işlem (GET /v1/apps/{appId}/reverse-etl, POST /v1/apps/{appId}/reverse-etl, POST /v1/apps/{appId}/reverse-etl/test-connection, …). OpenAPI 3.1.0 sözleşmesinden üretilir.
Taban adres: https://api.pushizo.com · Etiket: reverse-etl · Etkileşimli belge (Scalar)
İşlemler
| Yöntem | Yol | İşlem |
|---|---|---|
GET | /v1/apps/{appId}/reverse-etl | Depodan içeri aktarımlar |
POST | /v1/apps/{appId}/reverse-etl | İçeri aktarım oluştur |
POST | /v1/apps/{appId}/reverse-etl/test-connection | Kaydetmeden bağlantı testi |
GET | /v1/apps/{appId}/reverse-etl/{syncId} | İçeri aktarım detayı |
PATCH | /v1/apps/{appId}/reverse-etl/{syncId} | İçeri aktarımı güncelle |
DELETE | /v1/apps/{appId}/reverse-etl/{syncId} | İçeri aktarımı sil |
POST | /v1/apps/{appId}/reverse-etl/{syncId}/test | Kayıtlı içeri aktarımın bağlantı testi |
POST | /v1/apps/{appId}/reverse-etl/{syncId}/run | Şimdi içeri aktar |
GET | /v1/apps/{appId}/reverse-etl/{syncId}/runs | İçeri aktarım geçmişi |
Ayrıntılar
Depodan içeri aktarımlar
Kimlik doğrulama: API anahtarı — kapsam admin (admin her kapsamı içerir).
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
Yanıtlar
200 — Başarılı.
Şema: ReverseEtlSyncList
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
data | array<object> | Evet | |
data[].id | string | Evet | |
data[].app_id | string | Evet | |
data[].name | string | Evet | |
data[].source | enum | Evet | Değerler: "snowflake", "bigquery", "postgres", "mysql", "s3", "google_sheets" |
data[].target | enum | Evet | Değerler: "event", "user" |
data[].config | map<string, any> | Evet | |
data[].credentials_hint | string | Evet | |
data[].schedule | enum | Evet | Değerler: "hourly", "daily" |
data[].enabled | boolean | Evet | |
data[].status | enum | Evet | Değerler: "active", "paused", "failing" |
data[].cursor | string | null | Evet | |
data[].consecutive_failures | integer | Evet | |
data[].last_error | string | null | Evet | |
data[].last_run_at | string | null | Evet | |
data[].last_success_at | string | null | Evet | |
data[].next_run_at | string | null | Evet | |
data[].created_at | string | Evet | |
data[].updated_at | string | Evet |
Örnek yanıt:
{
"data": [
{
"name": "Sipariş bildirimleri",
"target": "event",
"enabled": true,
"status": "active",
"id": "id_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"app_id": "app_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"source": "snowflake",
"config": {
"key": "örnek"
},
"credentials_hint": "örnek",
"schedule": "hourly",
"cursor": "eyJpZCI6Im1zZ18wMUpE…",
"consecutive_failures": 1,
"last_error": "örnek",
"last_run_at": "örnek",
"last_success_at": "örnek",
"next_run_at": "örnek",
"created_at": "örnek",
"updated_at": "örnek"
}
]
}Hata yanıtları ortak zarfla döner (error.code, message, details, request_id): hata kataloğu. Tüm yanıtlar X-RateLimit-* başlıklarını taşır (hız sınırları).
Örnekler
curl -X GET "https://api.pushizo.com/v1/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/reverse-etl" \
-H "Authorization: Bearer $PUSHIZO_API_KEY"İçeri aktarım oluştur
Kimlik doğrulama: API anahtarı — kapsam admin (admin her kapsamı içerir).
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
İstek gövdesi (zorunlu)
Şema: ReverseEtlCreate
Tür: ReverseEtlCreate
Örnek:
{
"name": "Sipariş bildirimleri",
"target": "event",
"schedule": "hourly",
"source": "snowflake",
"config": {
"account": "değer",
"user": "değer",
"database": "değer",
"schema": "değer",
"warehouse": "değer",
"query": "ayse",
"mapping": {
"external_id_column": "değer",
"event_name": "purchase"
},
"role": "değer"
},
"credentials": {
"private_key": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
},
"enabled": true
}Yanıtlar
201 — Başarılı.
Şema: ReverseEtlSync
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
id | string | Evet | |
app_id | string | Evet | |
name | string | Evet | |
source | enum | Evet | Değerler: "snowflake", "bigquery", "postgres", "mysql", "s3", "google_sheets" |
target | enum | Evet | Değerler: "event", "user" |
config | map<string, any> | Evet | |
credentials_hint | string | Evet | |
schedule | enum | Evet | Değerler: "hourly", "daily" |
enabled | boolean | Evet | |
status | enum | Evet | Değerler: "active", "paused", "failing" |
cursor | string | null | Evet | |
consecutive_failures | integer | Evet | |
last_error | string | null | Evet | |
last_run_at | string | null | Evet | |
last_success_at | string | null | Evet | |
next_run_at | string | null | Evet | |
created_at | string | Evet | |
updated_at | string | Evet |
Örnek yanıt:
{
"name": "Sipariş bildirimleri",
"target": "event",
"enabled": true,
"status": "active",
"id": "id_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"app_id": "app_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"source": "snowflake",
"config": {
"key": "örnek"
},
"credentials_hint": "örnek",
"schedule": "hourly",
"cursor": "eyJpZCI6Im1zZ18wMUpE…",
"consecutive_failures": 1,
"last_error": "örnek",
"last_run_at": "örnek",
"last_success_at": "örnek",
"next_run_at": "örnek",
"created_at": "örnek",
"updated_at": "örnek"
}Hata yanıtları ortak zarfla döner (error.code, message, details, request_id): hata kataloğu. Tüm yanıtlar X-RateLimit-* başlıklarını taşır (hız sınırları).
Örnekler
curl -X POST "https://api.pushizo.com/v1/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/reverse-etl" \
-H "Authorization: Bearer $PUSHIZO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Sipariş bildirimleri",
"target": "event",
"schedule": "hourly",
"source": "snowflake",
"config": {
"account": "değer",
"user": "değer",
"database": "değer",
"schema": "değer",
"warehouse": "değer",
"query": "ayse",
"mapping": {
"external_id_column": "değer",
"event_name": "purchase"
},
"role": "değer"
},
"credentials": {
"private_key": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
},
"enabled": true
}'Kaydetmeden bağlantı testi
Kimlik doğrulama: API anahtarı — kapsam admin (admin her kapsamı içerir).
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
İstek gövdesi (zorunlu)
Şema: ReverseEtlConnectionTest
Örnek:
{
"source": "snowflake",
"config": {
"account": "değer",
"user": "değer",
"database": "değer",
"schema": "değer",
"warehouse": "değer",
"query": "ayse",
"mapping": {
"external_id_column": "değer",
"event_name": "purchase"
},
"role": "değer"
},
"credentials": {
"private_key": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}
}Yanıtlar
200 — Başarılı.
Şema: WarehouseConnectionResult
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
ok | boolean | Evet | |
detail | string | null | Evet | |
error | object | null | Evet |
Örnek yanıt:
{
"ok": true,
"detail": "örnek",
"error": {
"code": "örnek",
"message": "Takip bağlantısı içeride"
}
}Hata yanıtları ortak zarfla döner (error.code, message, details, request_id): hata kataloğu. Tüm yanıtlar X-RateLimit-* başlıklarını taşır (hız sınırları).
Örnekler
curl -X POST "https://api.pushizo.com/v1/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/reverse-etl/test-connection" \
-H "Authorization: Bearer $PUSHIZO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"source": "snowflake",
"config": {
"account": "değer",
"user": "değer",
"database": "değer",
"schema": "değer",
"warehouse": "değer",
"query": "ayse",
"mapping": {
"external_id_column": "değer",
"event_name": "purchase"
},
"role": "değer"
},
"credentials": {
"private_key": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}
}'İçeri aktarım detayı
Kimlik doğrulama: API anahtarı — kapsam admin (admin her kapsamı içerir).
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
syncId | yol | string | Evet | "id_01JD3W5Q7X9K2M4N6P8R0T1V3W" | |
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
Yanıtlar
200 — Başarılı.
Şema: ReverseEtlSync
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
id | string | Evet | |
app_id | string | Evet | |
name | string | Evet | |
source | enum | Evet | Değerler: "snowflake", "bigquery", "postgres", "mysql", "s3", "google_sheets" |
target | enum | Evet | Değerler: "event", "user" |
config | map<string, any> | Evet | |
credentials_hint | string | Evet | |
schedule | enum | Evet | Değerler: "hourly", "daily" |
enabled | boolean | Evet | |
status | enum | Evet | Değerler: "active", "paused", "failing" |
cursor | string | null | Evet | |
consecutive_failures | integer | Evet | |
last_error | string | null | Evet | |
last_run_at | string | null | Evet | |
last_success_at | string | null | Evet | |
next_run_at | string | null | Evet | |
created_at | string | Evet | |
updated_at | string | Evet |
Örnek yanıt:
{
"name": "Sipariş bildirimleri",
"target": "event",
"enabled": true,
"status": "active",
"id": "id_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"app_id": "app_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"source": "snowflake",
"config": {
"key": "örnek"
},
"credentials_hint": "örnek",
"schedule": "hourly",
"cursor": "eyJpZCI6Im1zZ18wMUpE…",
"consecutive_failures": 1,
"last_error": "örnek",
"last_run_at": "örnek",
"last_success_at": "örnek",
"next_run_at": "örnek",
"created_at": "örnek",
"updated_at": "örnek"
}Hata yanıtları ortak zarfla döner (error.code, message, details, request_id): hata kataloğu. Tüm yanıtlar X-RateLimit-* başlıklarını taşır (hız sınırları).
Örnekler
curl -X GET "https://api.pushizo.com/v1/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/reverse-etl/id_01JD3W5Q7X9K2M4N6P8R0T1V3W" \
-H "Authorization: Bearer $PUSHIZO_API_KEY"İçeri aktarımı güncelle
Kimlik doğrulama: API anahtarı — kapsam admin (admin her kapsamı içerir).
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
syncId | yol | string | Evet | "id_01JD3W5Q7X9K2M4N6P8R0T1V3W" | |
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
İstek gövdesi (zorunlu)
Şema: UpdateReverseEtlDto
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
name | string | Hayır | Uzunluk: 1–100 |
schedule | enum | Hayır | Değerler: "hourly", "daily" |
enabled | boolean | Hayır | |
config | map<string, any> | Hayır | |
credentials | map<string, any> | Hayır |
Örnek:
{
"name": "Sipariş bildirimleri",
"enabled": true,
"schedule": "hourly",
"config": {
"key": "örnek"
},
"credentials": {
"key": "örnek"
}
}Yanıtlar
200 — Başarılı.
Şema: ReverseEtlSync
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
id | string | Evet | |
app_id | string | Evet | |
name | string | Evet | |
source | enum | Evet | Değerler: "snowflake", "bigquery", "postgres", "mysql", "s3", "google_sheets" |
target | enum | Evet | Değerler: "event", "user" |
config | map<string, any> | Evet | |
credentials_hint | string | Evet | |
schedule | enum | Evet | Değerler: "hourly", "daily" |
enabled | boolean | Evet | |
status | enum | Evet | Değerler: "active", "paused", "failing" |
cursor | string | null | Evet | |
consecutive_failures | integer | Evet | |
last_error | string | null | Evet | |
last_run_at | string | null | Evet | |
last_success_at | string | null | Evet | |
next_run_at | string | null | Evet | |
created_at | string | Evet | |
updated_at | string | Evet |
Örnek yanıt:
{
"name": "Sipariş bildirimleri",
"target": "event",
"enabled": true,
"status": "active",
"id": "id_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"app_id": "app_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"source": "snowflake",
"config": {
"key": "örnek"
},
"credentials_hint": "örnek",
"schedule": "hourly",
"cursor": "eyJpZCI6Im1zZ18wMUpE…",
"consecutive_failures": 1,
"last_error": "örnek",
"last_run_at": "örnek",
"last_success_at": "örnek",
"next_run_at": "örnek",
"created_at": "örnek",
"updated_at": "örnek"
}Hata yanıtları ortak zarfla döner (error.code, message, details, request_id): hata kataloğu. Tüm yanıtlar X-RateLimit-* başlıklarını taşır (hız sınırları).
Örnekler
curl -X PATCH "https://api.pushizo.com/v1/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/reverse-etl/id_01JD3W5Q7X9K2M4N6P8R0T1V3W" \
-H "Authorization: Bearer $PUSHIZO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Sipariş bildirimleri",
"enabled": true,
"schedule": "hourly",
"config": {
"key": "örnek"
},
"credentials": {
"key": "örnek"
}
}'İçeri aktarımı sil
Kimlik doğrulama: API anahtarı — kapsam admin (admin her kapsamı içerir).
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
syncId | yol | string | Evet | "id_01JD3W5Q7X9K2M4N6P8R0T1V3W" | |
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
Yanıtlar
200 — Başarılı.
Şema: Ok
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
ok | true | Evet |
Örnek yanıt:
{
"ok": true
}Hata yanıtları ortak zarfla döner (error.code, message, details, request_id): hata kataloğu. Tüm yanıtlar X-RateLimit-* başlıklarını taşır (hız sınırları).
Örnekler
curl -X DELETE "https://api.pushizo.com/v1/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/reverse-etl/id_01JD3W5Q7X9K2M4N6P8R0T1V3W" \
-H "Authorization: Bearer $PUSHIZO_API_KEY"Kayıtlı içeri aktarımın bağlantı testi
Kimlik doğrulama: API anahtarı — kapsam admin (admin her kapsamı içerir).
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
syncId | yol | string | Evet | "id_01JD3W5Q7X9K2M4N6P8R0T1V3W" | |
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
Yanıtlar
200 — Başarılı.
Şema: WarehouseConnectionResult
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
ok | boolean | Evet | |
detail | string | null | Evet | |
error | object | null | Evet |
Örnek yanıt:
{
"ok": true,
"detail": "örnek",
"error": {
"code": "örnek",
"message": "Takip bağlantısı içeride"
}
}Hata yanıtları ortak zarfla döner (error.code, message, details, request_id): hata kataloğu. Tüm yanıtlar X-RateLimit-* başlıklarını taşır (hız sınırları).
Örnekler
curl -X POST "https://api.pushizo.com/v1/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/reverse-etl/id_01JD3W5Q7X9K2M4N6P8R0T1V3W/test" \
-H "Authorization: Bearer $PUSHIZO_API_KEY"Şimdi içeri aktar
Kimlik doğrulama: API anahtarı — kapsam admin (admin her kapsamı içerir).
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
syncId | yol | string | Evet | "id_01JD3W5Q7X9K2M4N6P8R0T1V3W" | |
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
Yanıtlar
202 — Başarılı.
Şema: ReverseEtlRun
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
id | string | Evet | |
sync_id | string | Evet | |
trigger | enum | Evet | Değerler: "schedule", "manual" |
status | enum | Evet | Değerler: "queued", "running", "succeeded", "failed" |
row_count | integer | Evet | |
attempt | integer | Evet | |
error | string | null | Evet | |
started_at | string | null | Evet | |
finished_at | string | null | Evet | |
duration_ms | integer | null | Evet | |
created_at | string | Evet |
Örnek yanıt:
{
"status": "queued",
"id": "run_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"sync_id": "run_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"trigger": "schedule",
"row_count": 1,
"attempt": 1,
"error": "örnek",
"started_at": "örnek",
"finished_at": "örnek",
"duration_ms": 1,
"created_at": "örnek"
}Hata yanıtları ortak zarfla döner (error.code, message, details, request_id): hata kataloğu. Tüm yanıtlar X-RateLimit-* başlıklarını taşır (hız sınırları).
Örnekler
curl -X POST "https://api.pushizo.com/v1/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/reverse-etl/id_01JD3W5Q7X9K2M4N6P8R0T1V3W/run" \
-H "Authorization: Bearer $PUSHIZO_API_KEY"İçeri aktarım geçmişi
Kimlik doğrulama: API anahtarı — kapsam admin (admin her kapsamı içerir).
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
syncId | yol | string | Evet | "id_01JD3W5Q7X9K2M4N6P8R0T1V3W" | |
limit | sorgu | integer | Hayır | Varsayılan: 50; Aralık: 1–200 | 50 |
cursor | sorgu | string | Hayır | Uzunluk: 1–∞ | "eyJpZCI6Im1zZ18wMUpE…" |
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
Yanıtlar
200 — Başarılı.
Şema: ReverseEtlRunPage
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
data | array<object> | Evet | |
data[].id | string | Evet | |
data[].sync_id | string | Evet | |
data[].trigger | enum | Evet | Değerler: "schedule", "manual" |
data[].status | enum | Evet | Değerler: "queued", "running", "succeeded", "failed" |
data[].row_count | integer | Evet | |
data[].attempt | integer | Evet | |
data[].error | string | null | Evet | |
data[].started_at | string | null | Evet | |
data[].finished_at | string | null | Evet | |
data[].duration_ms | integer | null | Evet | |
data[].created_at | string | Evet | |
next_cursor | string | null | Evet | |
has_more | boolean | Evet |
Örnek yanıt:
{
"data": [
{
"status": "queued",
"id": "id_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"sync_id": "id_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"trigger": "schedule",
"row_count": 1,
"attempt": 1,
"error": "örnek",
"started_at": "örnek",
"finished_at": "örnek",
"duration_ms": 1,
"created_at": "örnek"
}
],
"next_cursor": "eyJpZCI6Im1zZ18wMUpE…",
"has_more": true
}Hata yanıtları ortak zarfla döner (error.code, message, details, request_id): hata kataloğu. Tüm yanıtlar X-RateLimit-* başlıklarını taşır (hız sınırları).
Örnekler
curl -X GET "https://api.pushizo.com/v1/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/reverse-etl/id_01JD3W5Q7X9K2M4N6P8R0T1V3W/runs?limit=50" \
-H "Authorization: Bearer $PUSHIZO_API_KEY"SDK uçları (istemci)
SDK uçları (istemci) — 41 işlem (GET /sdk/v1/apps/{appId}/config, POST /sdk/v1/apps/{appId}/subscriptions, PATCH /sdk/v1/apps/{appId}/subscriptions/{subscriptionId}, …). OpenAPI 3.1.0 sözleşmesinden üretilir.
Şemalar
Public API'nin 398 bileşen şeması (components.schemas): alanlar, türler, zorunluluk ve kısıtlar.