Altyapı API
Altyapı modülünün tüm işlemleri (19) ve veri modelleri (1): adresler, izinler, girdiler, ön koşullar, olaylar ve örnekler.
Başka araçları bağlamak için API anahtarları, webhook’lar ve arka plan işleri.
Modül kodu platform · 19 işlem · 1 veri modeli · 16 olay. Bir anahtar ya da token, arkasındaki kişinin bu modülde yapabildiğinden fazlasını asla yapamaz; satır düzeyindeki güvenlik uygulamadakiyle birebir aynıdır. Yetki kapsamları: platform (hepsi), platform:read (yalnız okuma) ya da platform:<yetenek>.
Kaynaklar
| Kaynak | Tablo | Listeleme ve okuma | POST | PATCH | DELETE |
|---|---|---|---|---|---|
event_subscriber_skips | event_subscriber_skip | /api/v1/event_subscriber_skips |
Listeler limit (en çok 200), cursor, order (ör. -created_at), fields ve q alır; diğer her sorgu parametresi bir sütun süzgecidir: ?status=paid, ?total[gte]=100, ?id[in]=a,b, ?x=null.
İşlemler
| İşlem | Gereken izin | Ne yapar |
|---|---|---|
platform.cancel_job | platform:manage | İşi iptal et |
platform.create_api_key | platform:manage | API anahtarı oluştur |
platform.create_webhook | platform:manage | Webhook kaydet |
platform.delete_webhook | platform:delete | Webhook’u kaldır |
platform.end_session_key | platform:read | Era oturum anahtarını kapat |
platform.enqueue_job | platform:handle | İşi sıraya koy |
platform.issue_session_key | platform:read | Era oturum anahtarı başlat |
platform.issue_station_key | platform:read | Era’nın motorunu benim için başlat |
platform.pair_device | platform:read | Bilgisayarımı bağla |
platform.purge_history | platform:delete | Teslimat geçmişini temizle |
platform.record_delivery | platform:handle | Webhook teslimatını kaydet |
platform.rename_api_key | platform:manage | API anahtarını yeniden adlandır |
platform.retry_job | platform:manage | İşi yeniden dene |
platform.revoke_api_key | platform:manage | API anahtarını iptal et |
platform.rotate_webhook_secret | platform:manage | İmzalama anahtarını yenile |
platform.send_test_delivery | platform:manage | Test gönder veya teslimatı tekrarla |
platform.set_webhook_active | platform:manage | Webhook’u aç veya kapat |
platform.unpair_device | platform:read | Bilgisayarımı kaldır |
platform.update_webhook | platform:manage | Webhook’u düzenle |
platform.cancel_job
İşi iptal et — Sıradaki bir işi kuyruktan alır. Çalışmakta olan işe dokunulmaz.
Gereken izin platform:manage · siler ya da geri alınamaz · Era çalıştırırken bir kişiye onaylatır
https://app.getera.io/api/v1/actions/platform.cancel_jobGirdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
job_id | uuid | evet | İş |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
job_not_found | Bu çalışma alanında böyle bir iş yok. |
job_already_finished | Bu iş zaten bitmiş. |
job_running | Bu iş çalışıyor ve buradan iptal edilemez. |
Yayımladığı olaylar: platform.job_cancelled
Neye yazar: job (update) — Marks the job cancelled
curl -X POST https://app.getera.io/api/v1/actions/platform.cancel_job \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"job_id":"JOB_ID"}'{
"ok": true,
"result": "…",
"events": [
"platform.job_cancelled"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.actions.run("platform.cancel_job", {
job_id: "JOB_ID"
})era platform cancel_job \
--job-id "JOB_ID"{
"name": "era__platform__cancel_job",
"arguments": {
"job_id": "JOB_ID"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde platform:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 job_not_found, job_already_finished, job_running · 429 çok sık istek
platform.create_api_key
API anahtarı oluştur — Bu çalışma alanı için bir anahtar üretir. Anahtarın kendisi bir kez gösterilir ve hiç saklanmaz.
Gereken izin platform:manage · veriyi değiştirir
403).https://app.getera.io/api/v1/actions/platform.create_api_keyGirdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
name | string | evet | Ad · Bu anahtarın ne için olduğu. Sonradan onu tanımanın tek yolu budur. · en çok 120 |
key_hash | string | evet | Anahtar özeti · Anahtarın SHA-256 özeti. Anahtarın kendisi sunucuya ikinci kez ulaşmaz. · en çok 64 |
key_prefix | string | evet | Anahtar öneki · İlk birkaç karakter; böylece anahtar ekranda diğerlerinden ayırt edilebilir. · en çok 16 |
scopes | string | Modüller · Virgülle ayrılmış modül kodları. Oluşturan kişinin sahip olduklarını devralmak için boş bırakın. · en çok 500 | |
expires_at | date-time | Sona erme |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
not_a_digest | Anahtar özeti anahtarın kendisi değil, bir SHA-256 özeti olmalı. |
name_taken | Bu çalışma alanında bu adda bir anahtar zaten var. |
expiry_in_past | Son tarih zaten geçmiş. |
key_limit_reached | Bu çalışma alanı etkin anahtar sınırına ulaştı. |
Yayımladığı olaylar: platform.key_created
Neye yazar: api_key (insert) — Stores the digest, the prefix and who issued it
Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde platform:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_a_digest, name_taken, expiry_in_past, key_limit_reached · 429 çok sık istek
platform.create_webhook
Webhook kaydet — Bu çalışma alanının gönderi yaptığı ya da dış dünyanın bu alana gönderi yaptığı bir uç nokta.
Gereken izin platform:manage · dışarıya ulaşır (gönderir, yayımlar ya da ücret alır)
https://app.getera.io/api/v1/actions/platform.create_webhookGirdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
direction | string (enum) | evet | Yön · İzin verilen değerler: outbound, inbound |
name | string | evet | Ad · en çok 120 |
target_url | string | URL · Yalnızca giden. · en çok 2000 | |
path | string | Yol · Yalnızca gelen. Gönderdikleri adresin son bölümü. · en çok 80 | |
events | string | Etkinlikler · Virgülle ayrılmış. Her olay için boş bırakın. · en çok 1000 | |
secret_hash | string | İmzalama gizli anahtarı özeti · Yalnızca gelen: imzaları doğrulamakta kullanılan ortak gizli anahtarın SHA-256 özeti. · en çok 64 | |
credential_id | uuid | Kimlik bilgisi · Yalnızca giden: imzalama gizli anahtarını tutan kimlik bilgisi. | |
timeout_ms | number | Zaman aşımı (ms) · Yalnızca giden. Alıcının ne kadar bekleneceği. · en az 1000 · en çok 30000 | |
max_attempts | number | Denemeler · Yalnızca giden. Bir gönderimden vazgeçilmeden önceki deneme sayısı. · en az 1 · en çok 10 | |
rate_limit_per_minute | number | Dakikadaki istek sayısı · Yalnızca gelen. Arayan adresi başına; 0 sınırsız demektir. · en az 0 · en çok 6000 |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
address_missing | Giden webhook bir URL, gelen webhook bir yol gerektirir. |
invalid_url | Bu bir web adresine benzemiyor. |
insecure_url | Adres https kullanmalı. |
invalid_path | Yol yalnızca küçük harf, rakam, tire ve alt çizgi içerebilir. |
path_taken | Bu yolda zaten başka bir uç nokta yanıt veriyor. |
name_taken | Bu çalışma alanında bu adda bir webhook zaten var. |
not_a_digest | İmzalama anahtarı özeti anahtarın kendisi değil, bir SHA-256 özeti olmalı. |
unsigned_inbound | Gelen webhook bir imzalama anahtarı taşımalı. |
Yayımladığı olaylar: platform.webhook_created
Neye yazar: webhook (insert) — Registers the endpoint, inactive failures counted from zero
curl -X POST https://app.getera.io/api/v1/actions/platform.create_webhook \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"direction":"outbound","name":"Name"}'{
"ok": true,
"result": "…",
"events": [
"platform.webhook_created"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.actions.run("platform.create_webhook", {
direction: "outbound",
name: "Name"
})era platform create_webhook \
--direction "outbound" \
--name "Name"{
"name": "era__platform__create_webhook",
"arguments": {
"direction": "outbound",
"name": "Name"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde platform:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 address_missing, invalid_url, insecure_url, invalid_path, path_taken, name_taken, not_a_digest, unsigned_inbound · 429 çok sık istek
platform.delete_webhook
Webhook’u kaldır — Uç noktayı ve teslimat geçmişini kaldırır.
Gereken izin platform:delete · siler ya da geri alınamaz · Era çalıştırırken bir kişiye onaylatır
https://app.getera.io/api/v1/actions/platform.delete_webhookGirdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
webhook_id | uuid | evet | Webhook |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
webhook_not_found | Bu çalışma alanında böyle bir webhook yok. |
Yayımladığı olaylar: platform.webhook_deleted
Neye yazar: webhook (delete) — Removes the endpoint; its deliveries cascade
curl -X POST https://app.getera.io/api/v1/actions/platform.delete_webhook \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"webhook_id":"WEBHOOK_ID"}'{
"ok": true,
"result": "…",
"events": [
"platform.webhook_deleted"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.actions.run("platform.delete_webhook", {
webhook_id: "WEBHOOK_ID"
})era platform delete_webhook \
--webhook-id "WEBHOOK_ID"{
"name": "era__platform__delete_webhook",
"arguments": {
"webhook_id": "WEBHOOK_ID"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde platform:delete izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 webhook_not_found · 429 çok sık istek
platform.end_session_key
Era oturum anahtarını kapat — Era’nın motorunun bir çalıştırma için kullandığı kısa ömürlü anahtarı, çalıştırma biter bitmez iptal eder.
Gereken izin platform:read · veriyi değiştirir
403).https://app.getera.io/api/v1/actions/platform.end_session_keyGirdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
key_id | uuid | evet | Oturum anahtarı |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
session_key_not_found | Bu çalışma alanında bu kimlikle geçerli bir Era oturum anahtarı yok. |
not_your_session_key | Bir Era oturum anahtarını yalnızca adına çalıştığı kişi sonlandırabilir; bu yalnızca oturum anahtarları için geçerlidir. |
Yayımladığı olaylar: platform.key_revoked
Neye yazar: api_key (update) — Stamps the session key revoked
Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde platform:read izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 session_key_not_found, not_your_session_key · 429 çok sık istek
platform.enqueue_job
İşi sıraya koy — Bir işçinin alacağı bir iş ekler. Aynı anahtarla yeniden sıraya koymak ilk işi döndürür.
Gereken izin platform:handle · veriyi değiştirir
https://app.getera.io/api/v1/actions/platform.enqueue_jobGirdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
type | string | evet | Tür · en çok 80 |
payload | string | Yük · JSON. İçe aktarma işlerinde büyüktür (crm.import_leads satırlarını taşır). · en çok 20000000 | |
run_at | date-time | Çalışma zamanı · Bir çalışan boşalır boşalmaz çalışması için boş bırakın. | |
max_attempts | number | Denemeler · en az 1 · en çok 20 | |
idempotency_key | string | Tekrar önleme anahtarı · en çok 200 |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
invalid_payload | Veri bir JSON nesnesi olmalı. |
queue_full | Bu çalışma alanı sıradaki iş sınırına ulaştı. |
Yayımladığı olaylar: platform.job_enqueued
Neye yazar: job (insert) — Adds the job, pending, due at run_at
curl -X POST https://app.getera.io/api/v1/actions/platform.enqueue_job \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"type":"Type"}'{
"ok": true,
"result": "…",
"events": [
"platform.job_enqueued"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.actions.run("platform.enqueue_job", {
type: "Type"
})era platform enqueue_job \
--type "Type"{
"name": "era__platform__enqueue_job",
"arguments": {
"type": "Type"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde platform:handle izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 invalid_payload, queue_full · 429 çok sık istek
platform.issue_session_key
Era oturum anahtarı başlat — Era’nın motoru isteğin üzerinde çalışırken Era’nın araçlarını senin adına kullanabilsin diye kısa ömürlü bir anahtar.
Gereken izin platform:read · veriyi değiştirir
403).https://app.getera.io/api/v1/actions/platform.issue_session_keyGirdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
key_hash | string | evet | Anahtar özeti · en çok 64 |
key_prefix | string | evet | Anahtar öneki · en çok 16 |
expires_at | date-time | evet | Sona erme |
parent_key_id | uuid | Bağlı olduğu anahtar · Eşleştirdiğiniz bilgisayarın (ya da Era motorunun) anahtarı; o iptal edilirse bu da iptal edilir. |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
not_a_digest | Anahtar özeti anahtarın kendisi değil, bir SHA-256 özeti olmalı. |
session_too_long | Oturum anahtarı gelecekte, en geç altı saat içinde sona ermeli. |
parent_key_not_found | Bağlı olduğu anahtar, bu çalışma alanında sizin geçerli bilgisayar ya da Era motoru anahtarınız olmalı. |
Yayımladığı olaylar: platform.key_created
Neye yazar: api_key (insert) — Stores the session key’s digest, scoped to Era sessions and this person
Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde platform:read izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_a_digest, session_too_long, parent_key_not_found · 429 çok sık istek
platform.issue_station_key
Era’nın motorunu benim için başlat — Bilgisayarınız kapalıyken Era’nın kendi motorunun sohbetlerinizi sizin adınıza yanıtlamak için kullandığı anahtar.
Gereken izin platform:read · veriyi değiştirir
403).https://app.getera.io/api/v1/actions/platform.issue_station_keyGirdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
key_hash | string | evet | Anahtar özeti · en çok 64 |
key_prefix | string | evet | Anahtar öneki · en çok 16 |
expires_at | date-time | evet | Sona erme |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
not_a_digest | Anahtar özeti anahtarın kendisi değil, bir SHA-256 özeti olmalı. |
station_key_too_long | Motor anahtarının süresi gelecekte, en fazla sekiz gün içinde dolmalı. |
Yayımladığı olaylar: platform.key_created, platform.key_revoked
Neye yazar: api_key (insert) — Stores the engine key’s digest, scoped to Era’s engine and this person; api_key (update) — Revokes the person’s earlier engine keys
Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde platform:read izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_a_digest, station_key_too_long · 429 çok sık istek
platform.pair_device
Bilgisayarımı bağla — Kendi bilgisayarını (Era Desktop ya da bulut bilgisayarın) Era’ya bağlar; aboneliklerin ve görevlerin orada çalışır.
Gereken izin platform:read · veriyi değiştirir
403).https://app.getera.io/api/v1/actions/platform.pair_deviceGirdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
name | string | evet | Bilgisayar · en çok 120 |
key_hash | string | evet | Anahtar özeti · en çok 64 |
key_prefix | string | evet | Anahtar öneki · en çok 16 |
replaces | string | Yerine geçtiği · Aynı bilgisayarın daha önceki eşleştirmeniz, adıyla. · en çok 120 |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
not_a_digest | Anahtar özeti anahtarın kendisi değil, bir SHA-256 özeti olmalı. |
device_limit_reached | Zaten on bilgisayarın bağlı. |
computer_access_required | Bir bilgisayara yalnızca çalışma alanının sahibi ya da bilgisayar erişimi verilmiş bir üye ulaşabilir. |
Yayımladığı olaylar: platform.key_created, platform.key_revoked
Neye yazar: api_key (insert) — Stores the device key’s digest, scoped to this computer and this person; api_key (update) — Revokes the person’s earlier pairing of the same computer
Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde platform:read izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_a_digest, device_limit_reached, computer_access_required · 429 çok sık istek
platform.purge_history
Teslimat geçmişini temizle — Saklama süresinden eski teslimat kayıtlarını ve süresi dolan tekrar koruma anahtarlarını kaldırır.
Gereken izin platform:delete · siler ya da geri alınamaz
https://app.getera.io/api/v1/actions/platform.purge_historyGirdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
days | number | Saklama süresi (gün) · en çok 3650 |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
retention_too_short | Saklama süresi en az bir gün olmalı. |
Yayımladığı olaylar: platform.history_purged
Neye yazar: webhook_delivery (delete) — Removes delivery attempts older than the window; idempotency_key (delete) — Removes keys whose window has passed
curl -X POST https://app.getera.io/api/v1/actions/platform.purge_history \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"days":1}'{
"ok": true,
"result": "…",
"events": [
"platform.history_purged"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.actions.run("platform.purge_history", {
days: 1
})era platform purge_history \
--days 1{
"name": "era__platform__purge_history",
"arguments": {
"days": 1
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde platform:delete izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 retention_too_short · 429 çok sık istek
platform.record_delivery
Webhook teslimatını kaydet — Her deneme için yanıt ve süresiyle bir satır.
Gereken izin platform:handle · veriyi değiştirir
https://app.getera.io/api/v1/actions/platform.record_deliveryGirdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
webhook_id | uuid | evet | Webhook |
event_name | string | evet | Etkinlik · en çok 120 |
success | boolean | evet | Başarılı |
attempt | number | Deneme · en az 1 · en çok 100 | |
idempotency_key | string | Tekrar önleme anahtarı · en çok 200 | |
response_status | number | Yanıt durumu · en az 100 · en çok 599 | |
response_body | string | Yanıt gövdesi · en çok 8000 | |
error_message | string | Hata · en çok 2000 | |
duration_ms | number | Süre (ms) · en az 0 | |
request_body | string | Gönderilen gövde · JSON. Denemenin bayt bayt aynı şekilde yeniden gönderilebilmesi için saklanır. · en çok 262144 | |
event_id | string | Etkinlik · en çok 64 |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
webhook_not_found | Bu çalışma alanında böyle bir webhook yok. |
duplicate_attempt | Bu deneme zaten kaydedilmiş. |
Yayımladığı olaylar: platform.delivery_recorded, platform.webhook_disabled
Neye yazar: webhook_delivery (insert) — Writes the attempt; webhook (update) — Moves the consecutive-failure count, and disables the endpoint when it crosses the threshold
curl -X POST https://app.getera.io/api/v1/actions/platform.record_delivery \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"webhook_id":"WEBHOOK_ID","event_name":"Event","success":true}'{
"ok": true,
"result": "…",
"events": [
"platform.delivery_recorded",
"platform.webhook_disabled"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.actions.run("platform.record_delivery", {
webhook_id: "WEBHOOK_ID",
event_name: "Event",
success: true
})era platform record_delivery \
--webhook-id "WEBHOOK_ID" \
--event-name "Event" \
--success true{
"name": "era__platform__record_delivery",
"arguments": {
"webhook_id": "WEBHOOK_ID",
"event_name": "Event",
"success": true
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde platform:handle izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 webhook_not_found, duplicate_attempt · 429 çok sık istek
platform.rename_api_key
API anahtarını yeniden adlandır — Üretildikten sonra bir anahtarı tanımlayan tek şey adıdır.
Gereken izin platform:manage · veriyi değiştirir
https://app.getera.io/api/v1/actions/platform.rename_api_keyGirdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
key_id | uuid | evet | Anahtar |
name | string | evet | Ad · en çok 120 |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
key_not_found | Bu çalışma alanında böyle bir anahtar yok. |
name_taken | Bu çalışma alanında bu adda bir anahtar zaten var. |
already_revoked | İptal edilmiş bir anahtar yeniden adlandırılamaz — adı kaydın bir parçası. |
Yayımladığı olaylar: platform.key_renamed
Neye yazar: api_key (update) — Changes the key’s name
curl -X POST https://app.getera.io/api/v1/actions/platform.rename_api_key \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"key_id":"KEY_ID","name":"Name"}'{
"ok": true,
"result": "…",
"events": [
"platform.key_renamed"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.actions.run("platform.rename_api_key", {
key_id: "KEY_ID",
name: "Name"
})era platform rename_api_key \
--key-id "KEY_ID" \
--name "Name"{
"name": "era__platform__rename_api_key",
"arguments": {
"key_id": "KEY_ID",
"name": "Name"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde platform:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 key_not_found, name_taken, already_revoked · 429 çok sık istek
platform.retry_job
İşi yeniden dene — Başarısız bir işi, hemen çalışmak üzere sıraya geri koyar.
Gereken izin platform:manage · veriyi değiştirir
https://app.getera.io/api/v1/actions/platform.retry_jobGirdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
job_id | uuid | evet | İş |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
job_not_found | Bu çalışma alanında böyle bir iş yok. |
job_not_failed | Yalnızca başarısız bir iş yeniden denenebilir. |
attempts_exhausted | Bu iş tüm denemelerini kullanmış. |
Yayımladığı olaylar: platform.job_retried
Neye yazar: job (update) — Returns the job to pending, due now, and raises its attempt ceiling by one
curl -X POST https://app.getera.io/api/v1/actions/platform.retry_job \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"job_id":"JOB_ID"}'{
"ok": true,
"result": "…",
"events": [
"platform.job_retried"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.actions.run("platform.retry_job", {
job_id: "JOB_ID"
})era platform retry_job \
--job-id "JOB_ID"{
"name": "era__platform__retry_job",
"arguments": {
"job_id": "JOB_ID"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde platform:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 job_not_found, job_not_failed, attempts_exhausted · 429 çok sık istek
platform.revoke_api_key
API anahtarını iptal et — Anahtarı hemen çalışmaz hâle getirir. Kayıt, eski istekler açıklanabilsin diye kalır.
Gereken izin platform:manage · siler ya da geri alınamaz · Era çalıştırırken bir kişiye onaylatır
https://app.getera.io/api/v1/actions/platform.revoke_api_keyGirdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
key_id | uuid | evet | Anahtar |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
key_not_found | Bu çalışma alanında böyle bir anahtar yok. |
already_revoked | Bu anahtar zaten iptal edilmiş. |
Yayımladığı olaylar: platform.key_revoked
Neye yazar: api_key (update) — Stamps the key revoked, and by whom
curl -X POST https://app.getera.io/api/v1/actions/platform.revoke_api_key \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"key_id":"KEY_ID"}'{
"ok": true,
"result": "…",
"events": [
"platform.key_revoked"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.actions.run("platform.revoke_api_key", {
key_id: "KEY_ID"
})era platform revoke_api_key \
--key-id "KEY_ID"{
"name": "era__platform__revoke_api_key",
"arguments": {
"key_id": "KEY_ID"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde platform:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 key_not_found, already_revoked · 429 çok sık istek
platform.rotate_webhook_secret
İmzalama anahtarını yenile — Yeni bir gizli anahtar üretir. Eskisi 24 saat daha çalışır.
Gereken izin platform:manage · dışarıya ulaşır (gönderir, yayımlar ya da ücret alır) · Era çalıştırırken bir kişiye onaylatır
https://app.getera.io/api/v1/actions/platform.rotate_webhook_secretGirdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
webhook_id | uuid | evet | Webhook |
secret_hash | string | Yeni gizli anahtar özeti · Yalnızca gelen: yeni ortak gizli anahtarın SHA-256 özeti. · en çok 64 |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
webhook_not_found | Bu çalışma alanında böyle bir webhook yok. |
digest_required | Gelen uç noktanın anahtarı, yeni anahtarın özeti gönderilerek yenilenir. |
not_a_digest | İmzalama anahtarı özeti anahtarın kendisi değil, bir SHA-256 özeti olmalı. |
Yayımladığı olaylar: platform.webhook_secret_rotated
Neye yazar: webhook (update) — Moves the current secret to the overlap slot and stores the new one
curl -X POST https://app.getera.io/api/v1/actions/platform.rotate_webhook_secret \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"webhook_id":"WEBHOOK_ID"}'{
"ok": true,
"result": "…",
"events": [
"platform.webhook_secret_rotated"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.actions.run("platform.rotate_webhook_secret", {
webhook_id: "WEBHOOK_ID"
})era platform rotate_webhook_secret \
--webhook-id "WEBHOOK_ID"{
"name": "era__platform__rotate_webhook_secret",
"arguments": {
"webhook_id": "WEBHOOK_ID"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde platform:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 webhook_not_found, digest_required, not_a_digest · 429 çok sık istek
platform.send_test_delivery
Test gönder veya teslimatı tekrarla — Uç noktaya imzalı bir teslimat sıraya koyar. Tekrarlamada o denemenin gövdesini aynen yeniden gönderir.
Gereken izin platform:manage · dışarıya ulaşır (gönderir, yayımlar ya da ücret alır)
https://app.getera.io/api/v1/actions/platform.send_test_deliveryGirdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
webhook_id | uuid | evet | Webhook |
replay_of | uuid | Yeniden gönderilecek teslimat · Deneme olayı göndermek için boş bırakın. |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
webhook_not_found | Bu çalışma alanında böyle bir webhook yok. |
not_outbound | Yalnızca bu çalışma alanının çağırdığı bir uç noktaya teslimat gönderilebilir. |
webhook_inactive | Uç nokta kapalı. |
nothing_to_replay | Bu teslimatın yeniden gönderilecek gövdesi saklanmamış. |
Yayımladığı olaylar: platform.test_delivery_queued
Neye yazar: job (insert) — Queues an apps.deliver job for the endpoint
curl -X POST https://app.getera.io/api/v1/actions/platform.send_test_delivery \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"webhook_id":"WEBHOOK_ID"}'{
"ok": true,
"result": "…",
"events": [
"platform.test_delivery_queued"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.actions.run("platform.send_test_delivery", {
webhook_id: "WEBHOOK_ID"
})era platform send_test_delivery \
--webhook-id "WEBHOOK_ID"{
"name": "era__platform__send_test_delivery",
"arguments": {
"webhook_id": "WEBHOOK_ID"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde platform:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 webhook_not_found, not_outbound, webhook_inactive, nothing_to_replay · 429 çok sık istek
platform.set_webhook_active
Webhook’u aç veya kapat — Yeniden açmak hata sayacını sıfırlar; kapatma eşiği baştan başlar.
Gereken izin platform:manage · dışarıya ulaşır (gönderir, yayımlar ya da ücret alır)
https://app.getera.io/api/v1/actions/platform.set_webhook_activeGirdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
webhook_id | uuid | evet | Webhook |
active | boolean | evet | Aktif |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
webhook_not_found | Bu çalışma alanında böyle bir webhook yok. |
no_change | Webhook zaten bu durumda. |
Yayımladığı olaylar: platform.webhook_enabled, platform.webhook_disabled
Neye yazar: webhook (update) — Flips the active flag and, when enabling, resets the failure count
curl -X POST https://app.getera.io/api/v1/actions/platform.set_webhook_active \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"webhook_id":"WEBHOOK_ID","active":true}'{
"ok": true,
"result": "…",
"events": [
"platform.webhook_enabled",
"platform.webhook_disabled"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.actions.run("platform.set_webhook_active", {
webhook_id: "WEBHOOK_ID",
active: true
})era platform set_webhook_active \
--webhook-id "WEBHOOK_ID" \
--active true{
"name": "era__platform__set_webhook_active",
"arguments": {
"webhook_id": "WEBHOOK_ID",
"active": true
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde platform:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 webhook_not_found, no_change · 429 çok sık istek
platform.unpair_device
Bilgisayarımı kaldır — Kendi bilgisayarlarından birinin Era bağlantısını keser. Oradaki girişlerin bilgisayarda kalır.
Gereken izin platform:read · dışarıya ulaşır (gönderir, yayımlar ya da ücret alır) · Era çalıştırırken bir kişiye onaylatır
https://app.getera.io/api/v1/actions/platform.unpair_deviceGirdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
key_id | uuid | evet | Bilgisayar |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
key_not_found | Bu çalışma alanında böyle bir bilgisayar yok. |
not_your_device | Bir bilgisayarı burada yalnızca onu bağlayan kişi kaldırabilir. |
Yayımladığı olaylar: platform.key_revoked
Neye yazar: api_key (update) — Stamps the device key revoked, and by whom
curl -X POST https://app.getera.io/api/v1/actions/platform.unpair_device \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"key_id":"KEY_ID"}'{
"ok": true,
"result": "…",
"events": [
"platform.key_revoked"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.actions.run("platform.unpair_device", {
key_id: "KEY_ID"
})era platform unpair_device \
--key-id "KEY_ID"{
"name": "era__platform__unpair_device",
"arguments": {
"key_id": "KEY_ID"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde platform:read izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 key_not_found, not_your_device · 429 çok sık istek
platform.update_webhook
Webhook’u düzenle — Ad, adres, olaylar, zaman aşımı, deneme sayısı ve gelen istek sınırı.
Gereken izin platform:manage · dışarıya ulaşır (gönderir, yayımlar ya da ücret alır)
https://app.getera.io/api/v1/actions/platform.update_webhookGirdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
webhook_id | uuid | evet | Webhook |
name | string | Ad · en çok 120 | |
target_url | string | URL · Yalnızca giden. · en çok 2000 | |
events | string | Etkinlikler · Virgülle ayrılmış. Boş, her olay demektir. · en çok 1000 | |
timeout_ms | number | Zaman aşımı (ms) · en az 1000 · en çok 30000 | |
max_attempts | number | Denemeler · en az 1 · en çok 10 | |
rate_limit_per_minute | number | Dakikadaki istek sayısı · en az 0 · en çok 6000 |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
webhook_not_found | Bu çalışma alanında böyle bir webhook yok. |
name_taken | Bu çalışma alanında bu adda bir webhook zaten var. |
invalid_url | Bu bir web adresine benzemiyor. |
insecure_url | Adres https kullanmalı. |
Yayımladığı olaylar: platform.webhook_updated
Neye yazar: webhook (update) — Rewrites the endpoint’s settings
curl -X POST https://app.getera.io/api/v1/actions/platform.update_webhook \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"webhook_id":"WEBHOOK_ID"}'{
"ok": true,
"result": "…",
"events": [
"platform.webhook_updated"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.actions.run("platform.update_webhook", {
webhook_id: "WEBHOOK_ID"
})era platform update_webhook \
--webhook-id "WEBHOOK_ID"{
"name": "era__platform__update_webhook",
"arguments": {
"webhook_id": "WEBHOOK_ID"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde platform:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 webhook_not_found, name_taken, invalid_url, insecure_url · 429 çok sık istek
Veri modelleri
EventSubscriberSkip
Tablo event_subscriber_skip · Kaynak event_subscriber_skips
GET /api/v1/event_subscriber_skipsGET /api/v1/event_subscriber_skips/{id}
| Sütun | Tür | Boş olabilir | İzin verilen değerler | Bağlı olduğu tablo |
|---|---|---|---|---|
event_id | string (int64) · int8 | event | ||
subscriber | string · text | |||
organization_id | string (uuid) · uuid | organization | ||
workspace_id | string (uuid) · uuid | workspace | ||
reason | string · text | |||
skipped_at | string (date-time) · timestamptz |
Birincil anahtar: event_id, subscriber
Olaylar
İş akışları ve webhook'lar bu olaylara tepki verir.
| Olay | Ne olur | Taşıdığı alanlar |
|---|---|---|
platform.delivery_recorded | Bir webhook teslim denemesi bitti. | webhook_id, success, response_status |
platform.history_purged | Teslim geçmişi ve süresi dolan tekrarsızlık anahtarları temizlendi. | days, removed |
platform.job_cancelled | Kuyruktaki bir iş iptal edildi. | job_id |
platform.job_enqueued | Kuyruğa bir iş kondu. | job_id, type |
platform.job_retried | Başarısız bir iş kuyruğa geri kondu. | job_id |
platform.key_created | Bir API anahtarı verildi. | key_id, prefix |
platform.key_renamed | Bir API anahtarı yeniden adlandırıldı. | key_id, name |
platform.key_revoked | Bir API anahtarı iptal edildi. | key_id, prefix |
platform.test_delivery_queued | Bir test ya da yeniden oynatılan teslim kuyruğa kondu. | webhook_id, job_id, replay_of |
platform.webhook_created | Bir webhook uç noktası kaydedildi. | webhook_id, direction |
platform.webhook_deleted | Bir webhook uç noktası kaldırıldı. | webhook_id |
platform.webhook_disabled | Bir webhook uç noktası kapatıldı. | webhook_id, reason |
platform.webhook_enabled | Bir webhook uç noktası yeniden açıldı. | webhook_id |
platform.webhook_received | Gelen bir webhook kabul edildi. | webhook_id, path, name, body |
platform.webhook_secret_rotated | Bir webhook imzalama sırrı değiştirildi; eskisi geçiş süresince çalışmaya devam eder. | webhook_id, overlap_until |
platform.webhook_updated | Bir webhook uç noktasının adresi, olayları ya da sınırları değişti. | webhook_id |