PushizoDocs
API referansı

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öntemYolİşlem
GET/v1/apps/{appId}/reverse-etlDepodan içeri aktarımlar
POST/v1/apps/{appId}/reverse-etlİçeri aktarım oluştur
POST/v1/apps/{appId}/reverse-etl/test-connectionKaydetmeden 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}/testKayı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

GET/v1/apps/{appId}/reverse-etlDene (etkileşimli API belgesi, yeni sekme)

Kimlik doğrulama: API anahtarı — kapsam admin (admin her kapsamı içerir).

Parametreler

AdKonumTürZorunluAçıklamaÖrnek
appIdyolstringEvet"app_01JD3W5Q7X9K2M4N6P8R0T1V3W"

Yanıtlar

200 — Başarılı.

Şema: ReverseEtlSyncList

AlanTürZorunluAçıklama
dataarray<object>Evet
data[].idstringEvet
data[].app_idstringEvet
data[].namestringEvet
data[].sourceenumEvetDeğerler: "snowflake", "bigquery", "postgres", "mysql", "s3", "google_sheets"
data[].targetenumEvetDeğerler: "event", "user"
data[].configmap<string, any>Evet
data[].credentials_hintstringEvet
data[].scheduleenumEvetDeğerler: "hourly", "daily"
data[].enabledbooleanEvet
data[].statusenumEvetDeğerler: "active", "paused", "failing"
data[].cursorstring | nullEvet
data[].consecutive_failuresintegerEvet
data[].last_errorstring | nullEvet
data[].last_run_atstring | nullEvet
data[].last_success_atstring | nullEvet
data[].next_run_atstring | nullEvet
data[].created_atstringEvet
data[].updated_atstringEvet

Ö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"
Sekmesi olmayan dillerde bu işlem için SDK metodu yoktur; cURL örneğini kullanın.

İçeri aktarım oluştur

POST/v1/apps/{appId}/reverse-etlDene (etkileşimli API belgesi, yeni sekme)

Kimlik doğrulama: API anahtarı — kapsam admin (admin her kapsamı içerir).

Parametreler

AdKonumTürZorunluAçıklamaÖrnek
appIdyolstringEvet"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

AlanTürZorunluAçıklama
idstringEvet
app_idstringEvet
namestringEvet
sourceenumEvetDeğerler: "snowflake", "bigquery", "postgres", "mysql", "s3", "google_sheets"
targetenumEvetDeğerler: "event", "user"
configmap<string, any>Evet
credentials_hintstringEvet
scheduleenumEvetDeğerler: "hourly", "daily"
enabledbooleanEvet
statusenumEvetDeğerler: "active", "paused", "failing"
cursorstring | nullEvet
consecutive_failuresintegerEvet
last_errorstring | nullEvet
last_run_atstring | nullEvet
last_success_atstring | nullEvet
next_run_atstring | nullEvet
created_atstringEvet
updated_atstringEvet

Ö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
}'
Sekmesi olmayan dillerde bu işlem için SDK metodu yoktur; cURL örneğini kullanın.

Kaydetmeden bağlantı testi

POST/v1/apps/{appId}/reverse-etl/test-connectionDene (etkileşimli API belgesi, yeni sekme)

Kimlik doğrulama: API anahtarı — kapsam admin (admin her kapsamı içerir).

Parametreler

AdKonumTürZorunluAçıklamaÖrnek
appIdyolstringEvet"app_01JD3W5Q7X9K2M4N6P8R0T1V3W"

İstek gövdesi (zorunlu)

Şema: ReverseEtlConnectionTest

Tür: 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

AlanTürZorunluAçıklama
okbooleanEvet
detailstring | nullEvet
errorobject | nullEvet

Ö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"
  }
}'
Sekmesi olmayan dillerde bu işlem için SDK metodu yoktur; cURL örneğini kullanın.

İçeri aktarım detayı

GET/v1/apps/{appId}/reverse-etl/{syncId}Dene (etkileşimli API belgesi, yeni sekme)

Kimlik doğrulama: API anahtarı — kapsam admin (admin her kapsamı içerir).

Parametreler

AdKonumTürZorunluAçıklamaÖrnek
syncIdyolstringEvet"id_01JD3W5Q7X9K2M4N6P8R0T1V3W"
appIdyolstringEvet"app_01JD3W5Q7X9K2M4N6P8R0T1V3W"

Yanıtlar

200 — Başarılı.

Şema: ReverseEtlSync

AlanTürZorunluAçıklama
idstringEvet
app_idstringEvet
namestringEvet
sourceenumEvetDeğerler: "snowflake", "bigquery", "postgres", "mysql", "s3", "google_sheets"
targetenumEvetDeğerler: "event", "user"
configmap<string, any>Evet
credentials_hintstringEvet
scheduleenumEvetDeğerler: "hourly", "daily"
enabledbooleanEvet
statusenumEvetDeğerler: "active", "paused", "failing"
cursorstring | nullEvet
consecutive_failuresintegerEvet
last_errorstring | nullEvet
last_run_atstring | nullEvet
last_success_atstring | nullEvet
next_run_atstring | nullEvet
created_atstringEvet
updated_atstringEvet

Ö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"
Sekmesi olmayan dillerde bu işlem için SDK metodu yoktur; cURL örneğini kullanın.

İçeri aktarımı güncelle

PATCH/v1/apps/{appId}/reverse-etl/{syncId}Dene (etkileşimli API belgesi, yeni sekme)

Kimlik doğrulama: API anahtarı — kapsam admin (admin her kapsamı içerir).

Parametreler

AdKonumTürZorunluAçıklamaÖrnek
syncIdyolstringEvet"id_01JD3W5Q7X9K2M4N6P8R0T1V3W"
appIdyolstringEvet"app_01JD3W5Q7X9K2M4N6P8R0T1V3W"

İstek gövdesi (zorunlu)

Şema: UpdateReverseEtlDto

AlanTürZorunluAçıklama
namestringHayırUzunluk: 1–100
scheduleenumHayırDeğerler: "hourly", "daily"
enabledbooleanHayır
configmap<string, any>Hayır
credentialsmap<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

AlanTürZorunluAçıklama
idstringEvet
app_idstringEvet
namestringEvet
sourceenumEvetDeğerler: "snowflake", "bigquery", "postgres", "mysql", "s3", "google_sheets"
targetenumEvetDeğerler: "event", "user"
configmap<string, any>Evet
credentials_hintstringEvet
scheduleenumEvetDeğerler: "hourly", "daily"
enabledbooleanEvet
statusenumEvetDeğerler: "active", "paused", "failing"
cursorstring | nullEvet
consecutive_failuresintegerEvet
last_errorstring | nullEvet
last_run_atstring | nullEvet
last_success_atstring | nullEvet
next_run_atstring | nullEvet
created_atstringEvet
updated_atstringEvet

Ö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"
  }
}'
Sekmesi olmayan dillerde bu işlem için SDK metodu yoktur; cURL örneğini kullanın.

İçeri aktarımı sil

DELETE/v1/apps/{appId}/reverse-etl/{syncId}Dene (etkileşimli API belgesi, yeni sekme)

Kimlik doğrulama: API anahtarı — kapsam admin (admin her kapsamı içerir).

Parametreler

AdKonumTürZorunluAçıklamaÖrnek
syncIdyolstringEvet"id_01JD3W5Q7X9K2M4N6P8R0T1V3W"
appIdyolstringEvet"app_01JD3W5Q7X9K2M4N6P8R0T1V3W"

Yanıtlar

200 — Başarılı.

Şema: Ok

AlanTürZorunluAçıklama
oktrueEvet

Ö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"
Sekmesi olmayan dillerde bu işlem için SDK metodu yoktur; cURL örneğini kullanın.

Kayıtlı içeri aktarımın bağlantı testi

POST/v1/apps/{appId}/reverse-etl/{syncId}/testDene (etkileşimli API belgesi, yeni sekme)

Kimlik doğrulama: API anahtarı — kapsam admin (admin her kapsamı içerir).

Parametreler

AdKonumTürZorunluAçıklamaÖrnek
syncIdyolstringEvet"id_01JD3W5Q7X9K2M4N6P8R0T1V3W"
appIdyolstringEvet"app_01JD3W5Q7X9K2M4N6P8R0T1V3W"

Yanıtlar

200 — Başarılı.

Şema: WarehouseConnectionResult

AlanTürZorunluAçıklama
okbooleanEvet
detailstring | nullEvet
errorobject | nullEvet

Ö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"
Sekmesi olmayan dillerde bu işlem için SDK metodu yoktur; cURL örneğini kullanın.

Şimdi içeri aktar

POST/v1/apps/{appId}/reverse-etl/{syncId}/runDene (etkileşimli API belgesi, yeni sekme)

Kimlik doğrulama: API anahtarı — kapsam admin (admin her kapsamı içerir).

Parametreler

AdKonumTürZorunluAçıklamaÖrnek
syncIdyolstringEvet"id_01JD3W5Q7X9K2M4N6P8R0T1V3W"
appIdyolstringEvet"app_01JD3W5Q7X9K2M4N6P8R0T1V3W"

Yanıtlar

202 — Başarılı.

Şema: ReverseEtlRun

AlanTürZorunluAçıklama
idstringEvet
sync_idstringEvet
triggerenumEvetDeğerler: "schedule", "manual"
statusenumEvetDeğerler: "queued", "running", "succeeded", "failed"
row_countintegerEvet
attemptintegerEvet
errorstring | nullEvet
started_atstring | nullEvet
finished_atstring | nullEvet
duration_msinteger | nullEvet
created_atstringEvet

Ö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"
Sekmesi olmayan dillerde bu işlem için SDK metodu yoktur; cURL örneğini kullanın.

İçeri aktarım geçmişi

GET/v1/apps/{appId}/reverse-etl/{syncId}/runsDene (etkileşimli API belgesi, yeni sekme)

Kimlik doğrulama: API anahtarı — kapsam admin (admin her kapsamı içerir).

Parametreler

AdKonumTürZorunluAçıklamaÖrnek
syncIdyolstringEvet"id_01JD3W5Q7X9K2M4N6P8R0T1V3W"
limitsorguintegerHayırVarsayılan: 50; Aralık: 1–20050
cursorsorgustringHayırUzunluk: 1–∞"eyJpZCI6Im1zZ18wMUpE…"
appIdyolstringEvet"app_01JD3W5Q7X9K2M4N6P8R0T1V3W"

Yanıtlar

200 — Başarılı.

Şema: ReverseEtlRunPage

AlanTürZorunluAçıklama
dataarray<object>Evet
data[].idstringEvet
data[].sync_idstringEvet
data[].triggerenumEvetDeğerler: "schedule", "manual"
data[].statusenumEvetDeğerler: "queued", "running", "succeeded", "failed"
data[].row_countintegerEvet
data[].attemptintegerEvet
data[].errorstring | nullEvet
data[].started_atstring | nullEvet
data[].finished_atstring | nullEvet
data[].duration_msinteger | nullEvet
data[].created_atstringEvet
next_cursorstring | nullEvet
has_morebooleanEvet

Ö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"
Sekmesi olmayan dillerde bu işlem için SDK metodu yoktur; cURL örneğini kullanın.

Bu sayfada