Web sitesi API
Web sitesi modülünün tüm işlemleri (76) ve veri modelleri (22): adresler, izinler, girdiler, ön koşullar, olaylar ve örnekler.
Ziyaretçilerin sitenizde okuduğu sayfalar, yazılar, sık sorulan sorular ve yasal metinler.
Modül kodu site · 76 işlem · 22 veri modeli · 44 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ı: site (hepsi), site:read (yalnız okuma) ya da site:<yetenek>.
Kaynaklar
| Kaynak | Tablo | Listeleme ve okuma | POST | PATCH | DELETE |
|---|---|---|---|---|---|
blog_authors | blog_author | /api/v1/blog_authors | site.save_blog_author | ||
blog_categories | blog_category | /api/v1/blog_categories | site.save_blog_category | ||
blog_post_tags | blog_post_tag | /api/v1/blog_post_tags | |||
blog_posts | blog_post | /api/v1/blog_posts | |||
blog_tags | blog_tag | /api/v1/blog_tags | site.save_blog_tag | ||
client_references | client_reference | /api/v1/client_references | |||
contact_infos | contact_info | /api/v1/contact_infos | |||
contact_submissions | contact_submission | /api/v1/contact_submissions | |||
domains | domain | /api/v1/domains | site.add_domain | ||
faq_categories | faq_category | /api/v1/faq_categories | site.save_faq_category | site.delete_faq_category | |
faq_items | faq_item | /api/v1/faq_items | site.save_faq_item | site.delete_faq_item | |
newses | news | /api/v1/newses | site.save_news | ||
page_redirects | page_redirect | /api/v1/page_redirects | |||
pages | page | /api/v1/pages | site.update_page | site.delete_page | |
policies | policy | /api/v1/policies | |||
site_code_themes | site_code_theme | /api/v1/site_code_themes | |||
site_contents | site_content | /api/v1/site_contents | |||
site_deploys | site_deploy | /api/v1/site_deploys | |||
site_infos | site_info | /api/v1/site_infos | |||
sites | site | /api/v1/sites | site.create_site | ||
theme_snapshots | theme_snapshot | /api/v1/theme_snapshots | |||
themes | theme | /api/v1/themes |
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 |
|---|---|---|
site.add_domain | site:manage | Adres ekle |
site.add_page_block | site:write | Sayfaya bölüm ekle |
site.add_section | site:write | Sayfaya bölüm ekle |
site.assign_images | site:write | Görsel ata |
site.cancel_scheduled_content | site:write | Zamanlanmış yayımlamayı iptal et |
site.cancel_theme_schedule | site:manage | Tema zamanlamasını iptal et |
site.create_page | site:write | Sayfa ekle |
site.create_site | site:manage | Site oluştur |
site.create_theme_draft | site:manage | Taslak başlat |
site.define_content | site:manage | Sitenin kullandığı içeriği tanımla |
site.delete_blog_taxonomy | site:manage | Blog kategorisini, etiketini veya yazarını sil |
site.delete_content | site:manage | İçeriği kaldır |
site.delete_faq_category | site:delete | SSS grubunu kaldır |
site.delete_faq_item | site:delete | SSS sorusunu kaldır |
site.delete_page | site:delete | Sayfayı sil |
site.delete_redirect | site:manage | Yönlendirmeyi kaldır |
site.delete_reference | site:delete | Referansı kaldır |
site.edit_page_block | site:write | Sayfa bölümünü düzenle |
site.edit_section | site:write | Bölümü düzenle |
site.finish_deploy | site:manage | Yayın sonucunu kaydet |
site.import_theme | site:manage | Import a code site’s theme |
site.mark_submission | site:write | Mesajı işaretle |
site.move_page | site:write | Sayfayı taşı |
site.move_page_block | site:write | Sayfa bölümünü taşı |
site.move_section | site:write | Bölümü taşı |
site.publish | site:manage | Siteyi yayına al |
site.publish_draft | site:manage | Değişiklikleri yayımla |
site.publish_post | site:write | Yazıyı yayımla |
site.publish_theme | site:manage | Temayı yayımla |
site.remove_deploy | site:manage | Yayındaki siteyi kaldır |
site.remove_domain | site:manage | Adresi kaldır |
site.remove_page_block | site:write | Sayfa bölümünü kaldır |
site.remove_section | site:write | Bölümü kaldır |
site.reorder_blog_categories | site:manage | Blog kategorilerini yeniden sırala |
site.reorder_faq | site:write | Soruları sırala |
site.restore_theme_snapshot | site:write | Sitenin bir sürümünü geri yükle |
site.restyle | site:write | Sitenin stilini değiştir |
site.rollback_theme | site:manage | Temaya geri dön |
site.save_blog_author | site:manage | Yazarı kaydet |
site.save_blog_category | site:manage | Blog kategorisini kaydet |
site.save_blog_tag | site:manage | Blog etiketini kaydet |
site.save_faq_category | site:manage | SSS grubunu kaydet |
site.save_faq_item | site:write | Soruyu kaydet |
site.save_news | site:write | Haber yaz |
site.save_post | site:write | Yazı yaz |
site.save_reference | site:write | Referansı kaydet |
site.save_theme_draft | site:write | Tema taslağını kaydet |
site.schedule_content | site:write | Yayımlamayı zamanla |
site.schedule_theme_publish | site:manage | Temayı zamanla |
site.set_auth_mode | site:manage | Ziyaretçi girişini değiştir |
site.set_chrome | site:write | Üst ve alt bilgiyi ayarla |
site.set_contact_info | site:manage | İletişim bilgilerini kaydet |
site.set_content | site:manage | Site içeriğini değiştir |
site.set_homepage | site:write | Ana sayfa yap |
site.set_locale | site:manage | Site dillerini belirle |
site.set_news_status | site:write | Haberi yayımla veya arşivle |
site.set_page_blocks | site:write | Sayfa düzenini kaydet |
site.set_page_nav | site:write | Menüyü değiştir |
site.set_page_status | site:write | Sayfayı yayımla veya arşivle |
site.set_policy | site:manage | Yasal sayfayı kaydet |
site.set_primary_domain | site:manage | Adresi birincil yap |
site.set_redirect | site:manage | Yönlendirme ekle |
site.set_site_info | site:manage | Şirket bilgilerini kaydet |
site.set_site_widgets | site:write | Site eklentilerini ayarla |
site.set_theme_seo | site:write | Arama bilgilerini ayarla |
site.set_theme_tokens | site:write | Temayı yeniden biçimlendir |
site.share_links | site:read | Siteme bak |
site.snapshot_theme | site:manage | Site sürümünü kaydet |
site.start_deploy | site:manage | Siteyi yayınla |
site.submit_contact | site:write | Mesaj gönder |
site.tag_post | site:write | Yazıyı etiketle |
site.unpublish | site:manage | Siteyi yayından kaldır |
site.unpublish_post | site:write | Yazıyı yayından kaldır |
site.untag_post | site:write | Etiketi kaldır |
site.update_page | site:write | Sayfayı düzenle |
site.verify_domain | site:manage | Adresi doğrula |
site.add_domain
Adres ekle — Site için bir alan adı talep eder ve sahipliği kanıtlayan kaydı üretir.
Gereken izin site:manage · veriyi değiştirir
https://app.getera.io/api/v1/domains/actions/add_domain- REST kısayolu:
POST /api/v1/domains - Asıl adres:
POST /api/v1/actions/site.add_domain
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
siteId | uuid | evet | Site · kimliği: site |
host | string | evet | Ana bilgisayar adı · en çok 253 |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
site_not_found | Site bu çalışma alanında bulunmalı. |
invalid_host | Bir alan adı olmalı — şema, yol veya port olmadan. |
platform_domain | Platform adresleri siteyle birlikte verilir. |
host_taken | Alan adı tüm platformda boşta olmalı. |
Yayımladığı olaylar: site.domain_added
Neye yazar: domain (insert) — Registers it pending, with a verification token
curl -X POST https://app.getera.io/api/v1/domains/actions/add_domain \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"siteId":"SITE_ID","host":"Hostname"}'{
"ok": true,
"result": "…",
"events": [
"site.domain_added"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.domains.create({
siteId: "SITE_ID",
host: "Hostname"
})era domains create \
--site-id "SITE_ID" \
--host "Hostname"{
"name": "era__site__add_domain",
"arguments": {
"siteId": "SITE_ID",
"host": "Hostname"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 site_not_found, invalid_host, platform_domain, host_taken · 429 çok sık istek
site.add_page_block
Sayfaya bölüm ekle — Taslak temadaki bir sayfaya tek bir bölüm ekler.
Gereken izin site:write · veriyi değiştirir
https://app.getera.io/api/v1/themes/{id}/actions/add_page_block- Asıl adres:
POST /api/v1/actions/site.add_page_block
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
themeId | uuid | evet | Doldurulduğu yer: adresteki {id} · Tema · kimliği: theme |
pageId | uuid | evet | Sayfa · kimliği: page |
blockId | string | evet | Bölüm · en çok 120 |
type | string | evet | Blok türü · en çok 120 |
data | object / array | evet | Blok verisi |
enabled | boolean | Görünür | |
toIndex | number | Konum · en az 0 |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
theme_not_found | Tema bu çalışma alanında bulunmalı. |
theme_is_published | Yayındaki bir tema yerinde düzenlenemez. |
archived | Arşivlenmiş bir tema düzenlenemez. |
page_not_found | Sayfa temanın sitesinde olmalı. |
invalid_blocks | Her bölümün sabit bir kimliği, türü ve geçerli verisi olmalı. |
duplicate_block_id | İki bölüm aynı kimliği taşıyamaz. |
Yayımladığı olaylar: site.blocks_changed
Neye yazar: theme (update) — Adds one block to config.pageBlocks
curl -X POST https://app.getera.io/api/v1/themes/THEME_ID/actions/add_page_block \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"pageId":"PAGE_ID","blockId":"Section","type":"Block type","data":{}}'{
"ok": true,
"result": "…",
"events": [
"site.blocks_changed"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.themes.addPageBlock("THEME_ID", {
pageId: "PAGE_ID",
blockId: "Section",
type: "Block type",
data: {}
})era themes add_page_block THEME_ID --data '{"pageId":"PAGE_ID","blockId":"Section","type":"Block type","data":{}}'{
"name": "era__site__add_page_block",
"arguments": {
"themeId": "THEME_ID",
"pageId": "PAGE_ID",
"blockId": "Section",
"type": "Block type",
"data": {}
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 theme_not_found, theme_is_published, archived, page_not_found, invalid_blocks, duplicate_block_id · 429 çok sık istek
site.add_section
Sayfaya bölüm ekle — Sitenin taslağında bir sayfaya yeni bölüm ekler — ziyaretçiler yayımladıktan sonra görür.
Gereken izin site:write · veriyi değiştirir
https://app.getera.io/api/v1/theme_snapshots/actions/add_section- Asıl adres:
POST /api/v1/actions/site.add_section
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
site | string | Site · Kimlik, adres ya da ad. Boş = en son düzenlenen site. · en çok 200 | |
page | string | Sayfa · Kimlik, adres (/about), başlık ya da "home". Boş = ana sayfa. · en çok 255 | |
type | string | evet | Bölüm türü · hero, features_grid, testimonials, faq, pricing, gallery, cta, contact_form, text, image, stats, team … · en çok 80 |
data | object / array | Metinleri ve ayarları · { "title": "…", "subtitle": "…", "items": [ … ] } | |
position | number | Sırası (1’den başlayarak) · en az 1 | |
after | string | Şu bölümden sonra · en çok 200 | |
hidden | boolean | Gizli olarak ekle |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
site_not_found | Site bu çalışma alanında bulunmalı. |
page_not_found | Sayfa o sitede olmalı. |
unknown_block_type | Bölüm türü sitenin çizebildiği bir tür olmalı. |
block_not_found | “Sonra” sayfadaki bir bölümü göstermeli. |
invalid_blocks | Bölüm verisi bir nesne olmalı. |
Yayımladığı olaylar: site.blocks_changed, site.theme_draft_created
Neye yazar: theme (update) — Changes one page of the site’s draft (a draft is forked from the live theme when there is none); theme_snapshot (insert) — Keeps an automatic checkpoint of the draft before the change; theme (insert) — Starts a draft when the site has none
curl -X POST https://app.getera.io/api/v1/theme_snapshots/actions/add_section \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"type":"Kind of section"}'{
"ok": true,
"result": "…",
"events": [
"site.blocks_changed",
"site.theme_draft_created"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.themeSnapshots.addSection({
type: "Kind of section"
})era theme_snapshots add_section \
--type "Kind of section"{
"name": "era__site__add_section",
"arguments": {
"type": "Kind of section"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 site_not_found, page_not_found, unknown_block_type, block_not_found, invalid_blocks · 429 çok sık istek
site.assign_images
Görsel ata — Seçili içeriklere aynı kapak görselini koyar; diğer alanlar korunur.
Gereken izin site:write · veriyi değiştirir
https://app.getera.io/api/v1/blog_posts/actions/assign_images- Asıl adres:
POST /api/v1/actions/site.assign_images
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
ids | object / array | evet | Seçili kayıtlar |
fileId | uuid | evet | Görsel · kimliği: file |
contentType | string (enum) | evet | İçerik · İzin verilen değerler: blog, news, reference |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
no_items | 1 ila 500 kayıt seçin. |
file_not_found | Bu dosya çalışma alanında erişilebilir değil. |
image_required | Bir görsel seçin. |
not_found | Seçilen içeriklerden bazılarına artık erişilemiyor. |
Yayımladığı olaylar: site.post_saved, site.news_saved, site.reference_saved
Neye yazar: blog_post (update) — Sets the cover image without replacing content; news (update) — Sets the cover image without replacing content; client_reference (update) — Sets the cover image without replacing content
curl -X POST https://app.getera.io/api/v1/blog_posts/actions/assign_images \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"ids":{},"fileId":"FILE_ID","contentType":"blog"}'{
"ok": true,
"result": "…",
"events": [
"site.post_saved",
"site.news_saved",
"site.reference_saved"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.blogPosts.assignImages({
ids: {},
fileId: "FILE_ID",
contentType: "blog"
})era blog_posts assign_images --data '{"ids":{},"fileId":"FILE_ID","contentType":"blog"}'{
"name": "era__site__assign_images",
"arguments": {
"ids": {},
"fileId": "FILE_ID",
"contentType": "blog"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 no_items, file_not_found, image_required, not_found · 429 çok sık istek
site.cancel_scheduled_content
Zamanlanmış yayımlamayı iptal et — Yazıyı taslak olarak bırakır ve bekleyen yayımlamayı iptal eder.
Gereken izin site:write · siler ya da geri alınamaz
https://app.getera.io/api/v1/blog_posts/actions/cancel_scheduled_content- Asıl adres:
POST /api/v1/actions/site.cancel_scheduled_content
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
id | uuid | evet | Makale |
kind | string (enum) | evet | Tür · İzin verilen değerler: post, news |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
not_scheduled | Bu yazının bekleyen bir zamanlaması yok. |
Neye yazar: blog_post (update) — Clears a post schedule; news (update) — Clears a news schedule
curl -X POST https://app.getera.io/api/v1/blog_posts/actions/cancel_scheduled_content \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"id":"ID_ID","kind":"post"}'{
"ok": true,
"result": "…",
"events": []
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.blogPosts.cancelScheduledContent({
id: "ID_ID",
kind: "post"
})era blog_posts cancel_scheduled_content \
--id "ID_ID" \
--kind "post"{
"name": "era__site__cancel_scheduled_content",
"arguments": {
"id": "ID_ID",
"kind": "post"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_scheduled · 429 çok sık istek
site.cancel_theme_schedule
Tema zamanlamasını iptal et — Taslağı taslak olarak bırakır ve bekleyen yayımlamayı iptal eder.
Gereken izin site:manage · siler ya da geri alınamaz
https://app.getera.io/api/v1/themes/{id}/actions/cancel_theme_schedule- Asıl adres:
POST /api/v1/actions/site.cancel_theme_schedule
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
themeId | uuid | evet | Doldurulduğu yer: adresteki {id} · Tema · kimliği: theme |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
not_scheduled | Bu temanın bekleyen bir zamanlaması yok. |
Yayımladığı olaylar: site.theme_scheduled
Neye yazar: theme (update) — Clears the schedule
curl -X POST https://app.getera.io/api/v1/themes/THEME_ID/actions/cancel_theme_schedule \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{}'{
"ok": true,
"result": "…",
"events": [
"site.theme_scheduled"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.themes.cancelThemeSchedule("THEME_ID")era themes cancel_theme_schedule THEME_ID{
"name": "era__site__cancel_theme_schedule",
"arguments": {
"themeId": "THEME_ID"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_scheduled · 429 çok sık istek
site.create_page
Sayfa ekle — Sitede taslak olarak ve menü dışında yeni bir sayfa.
Gereken izin site:write · veriyi değiştirir
https://app.getera.io/api/v1/pages/{id}/actions/create_page- Asıl adres:
POST /api/v1/actions/site.create_page
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
siteId | uuid | evet | Site · kimliği: site |
title | string | evet | Başlık · en çok 255 |
slug | string | Adres · Başlıktan alınması için boş bırakın. · en çok 255 | |
parentId | uuid | Doldurulduğu yer: adresteki {id} · Altında · kimliği: page | |
showInHeader | boolean | Üst menüde göster | |
showInFooter | boolean | Alt bilgi menüsünde göster | |
sortOrder | number | Konum · en az 0 |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
site_not_found | Site bu çalışma alanında bulunmalı. |
slug_taken | Adres bu sitede boşta olmalı. |
parent_not_found | Üst sayfa aynı sitede olmalı. |
Yayımladığı olaylar: site.page_created
Neye yazar: page (insert) — Creates the page as a draft
curl -X POST https://app.getera.io/api/v1/pages/PAGE_ID/actions/create_page \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"siteId":"SITE_ID","title":"Title"}'{
"ok": true,
"result": "…",
"events": [
"site.page_created"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.pages.createPage("PAGE_ID", {
siteId: "SITE_ID",
title: "Title"
})era pages create_page PAGE_ID \
--site-id "SITE_ID" \
--title "Title"{
"name": "era__site__create_page",
"arguments": {
"parentId": "PAGE_ID",
"siteId": "SITE_ID",
"title": "Title"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 site_not_found, slug_taken, parent_not_found · 429 çok sık istek
site.create_site
Site oluştur — Bu çalışma alanının herkese açık yüzü; yanıt verdiği platform adresiyle.
Gereken izin site:manage · veriyi değiştirir
https://app.getera.io/api/v1/sites/actions/create_site- REST kısayolu:
POST /api/v1/sites - Asıl adres:
POST /api/v1/actions/site.create_site
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
type | string (enum) | Başlangıç düzeni · Yalnızca sitenin başladığı düzen. Her site sonradan mağaza sayfaları ekleyebilir. · İzin verilen değerler: business, commerce, landing, portal | |
name | string | evet | Ad · en çok 120 |
slug | string | Adres · Addan almak için boş bırakın. · en çok 63 | |
defaultLocale | string | Varsayılan dil · en çok 12 | |
authMode | string (enum) | Ziyaretçi girişi · İzin verilen değerler: guest, guest_with_login, login_required |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
invalid_slug | Ad kullanılabilir bir adres üretmeli. |
slug_taken | Bu çalışma alanında bu adreste zaten bir site var. |
host_taken | Platform adresi zaten başka bir site için yanıt veriyor. |
Yayımladığı olaylar: site.created
Neye yazar: site (insert) — Creates the site, unpublished; domain (insert) — Issues its platform address, already verified
curl -X POST https://app.getera.io/api/v1/sites/actions/create_site \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"name":"Name"}'{
"ok": true,
"result": "…",
"events": [
"site.created"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.sites.create({
name: "Name"
})era sites create \
--name "Name"{
"name": "era__site__create_site",
"arguments": {
"name": "Name"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 invalid_slug, slug_taken, host_taken · 429 çok sık istek
site.create_theme_draft
Taslak başlat — Üzerinde çalışmak için yayındaki temanın bir kopyası; ziyaretçiler düzenlemenizi izlemez.
Gereken izin site:manage · veriyi değiştirir
https://app.getera.io/api/v1/themes/actions/create_theme_draft- Asıl adres:
POST /api/v1/actions/site.create_theme_draft
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
siteId | uuid | evet | Site · kimliği: site |
name | string | Ad · en çok 120 |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
site_not_found | Site bu çalışma alanında bulunmalı. |
draft_exists | Bir sitenin aynı anda tek taslağı olur. |
Yayımladığı olaylar: site.theme_draft_created
Neye yazar: theme (insert) — Forks the live theme into a draft
curl -X POST https://app.getera.io/api/v1/themes/actions/create_theme_draft \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"siteId":"SITE_ID"}'{
"ok": true,
"result": "…",
"events": [
"site.theme_draft_created"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.themes.createThemeDraft({
siteId: "SITE_ID"
})era themes create_theme_draft \
--site-id "SITE_ID"{
"name": "era__site__create_theme_draft",
"arguments": {
"siteId": "SITE_ID"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 site_not_found, draft_exists · 429 çok sık istek
site.define_content
Sitenin kullandığı içeriği tanımla — Bir kod sitesinin bağlandığı düzenlenebilir içerikleri (yazı, görsel, bağlantı, çalışma saatleri, listeler) oluşturur ya da günceller. Sahibin değiştirdiği değerler, üzerine yaz seçilmedikçe korunur.
Gereken izin site:manage · veriyi değiştirir
https://app.getera.io/api/v1/site_contents/actions/define_content- Asıl adres:
POST /api/v1/actions/site.define_content
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
siteId | uuid | evet | Site · kimliği: site |
entries | object / array | evet | Kayıtlar · [{key:"hero.title", kind:"text", section:"hero", label:"Hero title", value:{"tr":"…","en":"…"}}] — kinds: text, rich_text, image ({fileId|url, alt}), link ({label, href}), hours ([{label, value}]), list ([{…}]), number, boolean, json. |
overwrite | boolean | Replace values the owner changed |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
site_not_found | Site bu çalışma alanında bulunmalı. |
invalid_content | Her içeriğin geçerli bir anahtarı, bilinen bir türü ve o türde bir değeri olmalı (en çok 64 KB). |
Yayımladığı olaylar: site.content_changed
Neye yazar: site_content (insert) — New entries; site_content (update) — Label, kind and section of existing entries; empty languages filled in
curl -X POST https://app.getera.io/api/v1/site_contents/actions/define_content \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"siteId":"SITE_ID","entries":{}}'{
"ok": true,
"result": "…",
"events": [
"site.content_changed"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.siteContents.defineContent({
siteId: "SITE_ID",
entries: {}
})era site_contents define_content --data '{"siteId":"SITE_ID","entries":{}}'{
"name": "era__site__define_content",
"arguments": {
"siteId": "SITE_ID",
"entries": {}
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 site_not_found, invalid_content · 429 çok sık istek
site.delete_blog_taxonomy
Blog kategorisini, etiketini veya yazarını sil — Kullanılmayan bir blog kategorisini, etiketini veya yazarını kaldırır. Önce yazıların taşınması gerekir.
Gereken izin site:manage · siler ya da geri alınamaz · Era çalıştırırken bir kişiye onaylatır
https://app.getera.io/api/v1/blog_categories/actions/delete_blog_taxonomy- Asıl adres:
POST /api/v1/actions/site.delete_blog_taxonomy
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
id | uuid | evet | Kayıt |
kind | string (enum) | evet | Tür · İzin verilen değerler: category, tag, author |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
category_not_found | Kategori bulunamadı. |
tag_not_found | Etiket bulunamadı. |
author_not_found | Yazar bulunamadı. |
blog_category_in_use | Yazılara atanmış bir kategori silinemez. |
blog_tag_in_use | Yazılara atanmış bir etiket silinemez. |
blog_author_in_use | Yazılara atanmış bir yazar silinemez. |
Yayımladığı olaylar: site.blog_taxonomy_changed
Neye yazar: blog_category (delete) — Deletes an unused category; blog_tag (delete) — Deletes an unused tag; blog_author (delete) — Deletes an unused author
curl -X POST https://app.getera.io/api/v1/blog_categories/actions/delete_blog_taxonomy \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"id":"ID_ID","kind":"category"}'{
"ok": true,
"result": "…",
"events": [
"site.blog_taxonomy_changed"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.blogCategories.deleteBlogTaxonomy({
id: "ID_ID",
kind: "category"
})era blog_categories delete_blog_taxonomy \
--id "ID_ID" \
--kind "category"{
"name": "era__site__delete_blog_taxonomy",
"arguments": {
"id": "ID_ID",
"kind": "category"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 category_not_found, tag_not_found, author_not_found, blog_category_in_use, blog_tag_in_use, blog_author_in_use · 429 çok sık istek
site.delete_content
İçeriği kaldır — Sitenin artık kullanmadığı bir içeriği kaldırır.
Gereken izin site:manage · siler ya da geri alınamaz · Era çalıştırırken bir kişiye onaylatır
https://app.getera.io/api/v1/site_contents/actions/delete_content- Asıl adres:
POST /api/v1/actions/site.delete_content
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
siteId | uuid | evet | Site · kimliği: site |
key | string | evet | Kayıt · en çok 100 |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
site_not_found | Site bu çalışma alanında bulunmalı. |
content_not_found | İçerik sitede tanımlı olmalı. |
Yayımladığı olaylar: site.content_changed
Neye yazar: site_content (delete) — The entry
curl -X POST https://app.getera.io/api/v1/site_contents/actions/delete_content \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"siteId":"SITE_ID","key":"Entry"}'{
"ok": true,
"result": "…",
"events": [
"site.content_changed"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.siteContents.deleteContent({
siteId: "SITE_ID",
key: "Entry"
})era site_contents delete_content \
--site-id "SITE_ID" \
--key "Entry"{
"name": "era__site__delete_content",
"arguments": {
"siteId": "SITE_ID",
"key": "Entry"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 site_not_found, content_not_found · 429 çok sık istek
site.delete_faq_category
SSS grubunu kaldır — Grubu kaldırır ve sorularını grupsuz bırakır.
Gereken izin site:delete · siler ya da geri alınamaz
https://app.getera.io/api/v1/faq_categories/{id}/actions/delete_faq_category- REST kısayolu:
DELETE /api/v1/faq_categories/{id} - Asıl adres:
POST /api/v1/actions/site.delete_faq_category
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
id | uuid | evet | Doldurulduğu yer: adresteki {id} · Grup · kimliği: faq_category |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
category_not_found | Grup bulunmalı. |
Yayımladığı olaylar: site.faq_changed
Neye yazar: faq_category (delete) — Removes the group; faq_item (update) — Leaves its questions ungrouped through the foreign key
curl -X POST https://app.getera.io/api/v1/faq_categories/FAQ_CATEGORY_ID/actions/delete_faq_category \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{}'{
"ok": true,
"result": "…",
"events": [
"site.faq_changed"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.faqCategories.deleteFaqCategory("FAQ_CATEGORY_ID")era faq_categories delete_faq_category FAQ_CATEGORY_ID{
"name": "era__site__delete_faq_category",
"arguments": {
"id": "FAQ_CATEGORY_ID"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:delete izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 category_not_found · 429 çok sık istek
site.delete_faq_item
SSS sorusunu kaldır — Bir soruyu sitedeki akordeondan kaldırır.
Gereken izin site:delete · siler ya da geri alınamaz
https://app.getera.io/api/v1/faq_items/{id}/actions/delete_faq_item- REST kısayolu:
DELETE /api/v1/faq_items/{id} - Asıl adres:
POST /api/v1/actions/site.delete_faq_item
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
id | uuid | evet | Doldurulduğu yer: adresteki {id} · Soru · kimliği: faq_item |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
faq_item_not_found | Soru bulunmalı. |
Yayımladığı olaylar: site.faq_changed
Neye yazar: faq_item (delete) — Removes the question
curl -X POST https://app.getera.io/api/v1/faq_items/FAQ_ITEM_ID/actions/delete_faq_item \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{}'{
"ok": true,
"result": "…",
"events": [
"site.faq_changed"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.faqItems.deleteFaqItem("FAQ_ITEM_ID")era faq_items delete_faq_item FAQ_ITEM_ID{
"name": "era__site__delete_faq_item",
"arguments": {
"id": "FAQ_ITEM_ID"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:delete izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 faq_item_not_found · 429 çok sık istek
site.delete_page
Sayfayı sil — Kalıcı olarak gider. Siteyle gelen sayfalar yalnızca arşivlenebilir.
Gereken izin site:delete · siler ya da geri alınamaz · Era çalıştırırken bir kişiye onaylatır
https://app.getera.io/api/v1/pages/{id}/actions/delete_page- REST kısayolu:
DELETE /api/v1/pages/{id} - Asıl adres:
POST /api/v1/actions/site.delete_page
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
id | uuid | evet | Doldurulduğu yer: adresteki {id} · Sayfa · kimliği: page |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
page_not_found | Sayfa bu çalışma alanında bulunmalı. |
page_is_default | Varsayılan bir sayfa yalnızca arşivlenebilir. |
homepage_must_stay_published | Ana sayfa silinemez. |
has_children | Alt sayfaları olan bir sayfa silinemez. |
Yayımladığı olaylar: site.page_deleted
Neye yazar: page (delete) — Removes the page
curl -X POST https://app.getera.io/api/v1/pages/PAGE_ID/actions/delete_page \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{}'{
"ok": true,
"result": "…",
"events": [
"site.page_deleted"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.pages.deletePage("PAGE_ID")era pages delete_page PAGE_ID{
"name": "era__site__delete_page",
"arguments": {
"id": "PAGE_ID"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:delete izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 page_not_found, page_is_default, homepage_must_stay_published, has_children · 429 çok sık istek
site.delete_redirect
Yönlendirmeyi kaldır — Eski adres yeniden “bulunamadı” döndürmeye başlar.
Gereken izin site:manage · siler ya da geri alınamaz · Era çalıştırırken bir kişiye onaylatır
https://app.getera.io/api/v1/page_redirects/{id}/actions/delete_redirect- Asıl adres:
POST /api/v1/actions/site.delete_redirect
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
id | uuid | evet | Doldurulduğu yer: adresteki {id} · Yönlendirme · kimliği: page_redirect |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
redirect_not_found | Yönlendirme bulunmalı. |
Yayımladığı olaylar: site.redirect_changed
Neye yazar: page_redirect (delete) — Removes the redirect
curl -X POST https://app.getera.io/api/v1/page_redirects/PAGE_REDIRECT_ID/actions/delete_redirect \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{}'{
"ok": true,
"result": "…",
"events": [
"site.redirect_changed"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.pageRedirects.deleteRedirect("PAGE_REDIRECT_ID")era page_redirects delete_redirect PAGE_REDIRECT_ID{
"name": "era__site__delete_redirect",
"arguments": {
"id": "PAGE_REDIRECT_ID"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 redirect_not_found · 429 çok sık istek
site.delete_reference
Referansı kaldır — Bir müşteri projesini ve yorumunu siteden kaldırır.
Gereken izin site:delete · siler ya da geri alınamaz
https://app.getera.io/api/v1/client_references/{id}/actions/delete_reference- Asıl adres:
POST /api/v1/actions/site.delete_reference
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
id | uuid | evet | Doldurulduğu yer: adresteki {id} · Referans · kimliği: client_reference |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
reference_not_found | Referans bulunmalı. |
Yayımladığı olaylar: site.reference_deleted
Neye yazar: client_reference (delete) — Removes the reference
curl -X POST https://app.getera.io/api/v1/client_references/CLIENT_REFERENCE_ID/actions/delete_reference \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{}'{
"ok": true,
"result": "…",
"events": [
"site.reference_deleted"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.clientReferences.deleteReference("CLIENT_REFERENCE_ID")era client_references delete_reference CLIENT_REFERENCE_ID{
"name": "era__site__delete_reference",
"arguments": {
"id": "CLIENT_REFERENCE_ID"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:delete izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 reference_not_found · 429 çok sık istek
site.edit_page_block
Sayfa bölümünü düzenle — Bir bölümün içeriğini, türünü veya görünürlüğünü değiştirir.
Gereken izin site:write · veriyi değiştirir
https://app.getera.io/api/v1/themes/{id}/actions/edit_page_block- Asıl adres:
POST /api/v1/actions/site.edit_page_block
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
themeId | uuid | evet | Doldurulduğu yer: adresteki {id} · Tema · kimliği: theme |
pageId | uuid | evet | Sayfa · kimliği: page |
blockId | string | evet | Bölüm · en çok 120 |
type | string | Blok türü · en çok 120 | |
data | object / array | Blok verisi | |
enabled | boolean | Görünür |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
theme_not_found | Tema bu çalışma alanında bulunmalı. |
theme_is_published | Yayındaki bir tema yerinde düzenlenemez. |
archived | Arşivlenmiş bir tema düzenlenemez. |
page_not_found | Sayfa temanın sitesinde olmalı. |
block_not_found | Bu bölüm sayfada bulunamadı. |
invalid_blocks | Her bölümün sabit bir kimliği, türü ve geçerli verisi olmalı. |
duplicate_block_id | İki bölüm aynı kimliği taşıyamaz. |
Yayımladığı olaylar: site.blocks_changed
Neye yazar: theme (update) — Edits one block in config.pageBlocks
curl -X POST https://app.getera.io/api/v1/themes/THEME_ID/actions/edit_page_block \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"pageId":"PAGE_ID","blockId":"Section"}'{
"ok": true,
"result": "…",
"events": [
"site.blocks_changed"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.themes.editPageBlock("THEME_ID", {
pageId: "PAGE_ID",
blockId: "Section"
})era themes edit_page_block THEME_ID \
--page-id "PAGE_ID" \
--block-id "Section"{
"name": "era__site__edit_page_block",
"arguments": {
"themeId": "THEME_ID",
"pageId": "PAGE_ID",
"blockId": "Section"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 theme_not_found, theme_is_published, archived, page_not_found, block_not_found, invalid_blocks, duplicate_block_id · 429 çok sık istek
site.edit_section
Bölümü düzenle — Bir bölümün yazılarını, görselini, ayarlarını ya da görünürlüğünü taslakta değiştirir.
Gereken izin site:write · veriyi değiştirir
https://app.getera.io/api/v1/theme_snapshots/actions/edit_section- Asıl adres:
POST /api/v1/actions/site.edit_section
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
site | string | Site · Kimlik, adres ya da ad. Boş = en son düzenlenen site. · en çok 200 | |
page | string | Sayfa · Kimlik, adres (/about), başlık ya da "home". Boş = ana sayfa. · en çok 255 | |
section | string | evet | Bölüm · Kimliği, 1’den başlayan sırası, türü (hero) ya da başlığından sözcükler. · en çok 200 |
text | object / array | Metinler · { "title": "…", "subtitle": "…", "items.0.title": "…" } | |
image | string | Görsel bağlantısı · Yüklenmiş, üretilmiş ya da hazır bir görsel: https://… ya da /… · en çok 2000 | |
imageField | string | Hangi görsel · Boş = bölümün ana görseli; tek bir kart için items.2.imageUrl. · en çok 200 | |
data | object / array | Birleştirilecek ayarlar | |
visible | boolean | Görünür | |
hideOn | object / array | Şurada gizle · ["phone"], ["tablet"], ["desktop"] | |
showOn | object / array | Şurada yeniden göster | |
locale | string | Metinlerin dili · Boş = sitenin kendi dili. · en çok 12 |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
site_not_found | Site bu çalışma alanında bulunmalı. |
page_not_found | Sayfa o sitede olmalı. |
block_not_found | Bu bölüm sayfada bulunamadı. |
invalid_path | Yazılar bölümün alanlarına metin olarak girer. |
invalid_image | Görsel, https:// ya da / ile başlayan bir bağlantıdır. |
invalid_device | Cihaz telefon, tablet ya da masaüstüdür. |
invalid_blocks | Bölüm çizilebilir kalmalı. |
nothing_to_change | Bir şeyin değişmesi gerekir. |
Yayımladığı olaylar: site.blocks_changed, site.theme_draft_created
Neye yazar: theme (update) — Changes one page of the site’s draft (a draft is forked from the live theme when there is none); theme_snapshot (insert) — Keeps an automatic checkpoint of the draft before the change; theme (insert) — Starts a draft when the site has none
curl -X POST https://app.getera.io/api/v1/theme_snapshots/actions/edit_section \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"section":"Section"}'{
"ok": true,
"result": "…",
"events": [
"site.blocks_changed",
"site.theme_draft_created"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.themeSnapshots.editSection({
section: "Section"
})era theme_snapshots edit_section \
--section "Section"{
"name": "era__site__edit_section",
"arguments": {
"section": "Section"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 site_not_found, page_not_found, block_not_found, invalid_path, invalid_image, invalid_device, invalid_blocks, nothing_to_change · 429 çok sık istek
site.finish_deploy
Yayın sonucunu kaydet — Makine adımı: bir sürümü yayında (öncekini geride) ya da başarısız olarak, adımlarıyla kaydeder.
Gereken izin site:manage · dışarıya ulaşır (gönderir, yayımlar ya da ücret alır)
https://app.getera.io/api/v1/site_deploys/{id}/actions/finish_deploy- Asıl adres:
POST /api/v1/actions/site.finish_deploy
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
id | uuid | evet | Doldurulduğu yer: adresteki {id} · Yayına al · kimliği: site_deploy |
ok | boolean | evet | Başarılı |
url | string | Adres · en çok 500 | |
host | string | Sunucu · en çok 253 | |
scriptName | string | Süreç · en çok 63 | |
providerVersionId | string | Uç sunucu sürümü · en çok 100 | |
log | object / array | Adımlar | |
error | string | Hata · en çok 2000 |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
deploy_not_found | Yayın bu çalışma alanında olmalı. |
not_uploading | Yalnızca hâlâ yüklenen bir yayın tamamlanabilir. |
Yayımladığı olaylar: site.deployed, site.deploy_failed
Neye yazar: site_deploy (update) — Live or failed; the previous live version becomes superseded
curl -X POST https://app.getera.io/api/v1/site_deploys/SITE_DEPLOY_ID/actions/finish_deploy \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"ok":true}'{
"ok": true,
"result": "…",
"events": [
"site.deployed",
"site.deploy_failed"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.siteDeploys.finishDeploy("SITE_DEPLOY_ID", {
ok: true
})era site_deploys finish_deploy SITE_DEPLOY_ID \
--ok true{
"name": "era__site__finish_deploy",
"arguments": {
"id": "SITE_DEPLOY_ID",
"ok": true
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 deploy_not_found, not_uploading · 429 çok sık istek
site.import_theme
Import a code site’s theme — Registers the sections and settings a code site declares in era.theme.json, so the owner edits them in Era’s theme editor. Values the owner already changed are kept; new settings get their defaults.
Gereken izin site:manage · siler ya da geri alınamaz
https://app.getera.io/api/v1/site_code_themes/actions/import_theme- Asıl adres:
POST /api/v1/actions/site.import_theme
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
siteId | uuid | evet | Site · kimliği: site |
manifest | object / array | evet | era.theme.json |
dryRun | boolean | Only check it | |
prune | boolean | Remove settings the theme no longer declares |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
site_not_found | Site bu çalışma alanında bulunmalı. |
invalid_theme | The manifest needs a name and sections with ids, labels and settings of known types. |
invalid_content | Every default must have the shape of its setting’s type. |
Yayımladığı olaylar: site.theme_imported, site.content_changed
Neye yazar: site_code_theme (upsert) — The manifest, one per site, with a version counter; site_content (upsert) — One entry per setting; existing values are kept; site_content (delete) — Settings no longer declared, only with prune
curl -X POST https://app.getera.io/api/v1/site_code_themes/actions/import_theme \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"siteId":"SITE_ID","manifest":{}}'{
"ok": true,
"result": "…",
"events": [
"site.theme_imported",
"site.content_changed"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.siteCodeThemes.importTheme({
siteId: "SITE_ID",
manifest: {}
})era site_code_themes import_theme --data '{"siteId":"SITE_ID","manifest":{}}'{
"name": "era__site__import_theme",
"arguments": {
"siteId": "SITE_ID",
"manifest": {}
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 site_not_found, invalid_theme, invalid_content · 429 çok sık istek
site.mark_submission
Mesajı işaretle — Okundu, yanıtlandı, arşivlendi veya spam.
Gereken izin site:write · veriyi değiştirir
https://app.getera.io/api/v1/contact_submissions/{id}/actions/mark_submission- Asıl adres:
POST /api/v1/actions/site.mark_submission
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
id | uuid | evet | Doldurulduğu yer: adresteki {id} · Mesaj · kimliği: contact_submission |
status | string (enum) | evet | Durum · İzin verilen değerler: new, read, replied, archived, spam |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
submission_not_found | Mesaj bu çalışma alanında bulunmalı. |
no_change | Zaten bu durumda olmamalı. |
Yayımladığı olaylar: site.submission_marked
Neye yazar: contact_submission (update) — Changes the message state
curl -X POST https://app.getera.io/api/v1/contact_submissions/CONTACT_SUBMISSION_ID/actions/mark_submission \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"status":"new"}'{
"ok": true,
"result": "…",
"events": [
"site.submission_marked"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.contactSubmissions.markSubmission("CONTACT_SUBMISSION_ID", {
status: "new"
})era contact_submissions mark_submission CONTACT_SUBMISSION_ID \
--status "new"{
"name": "era__site__mark_submission",
"arguments": {
"id": "CONTACT_SUBMISSION_ID",
"status": "new"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 submission_not_found, no_change · 429 çok sık istek
site.move_page
Sayfayı taşı — Bir sayfayı başka birinin altına koyar; döngüye giren her şeyi reddeder.
Gereken izin site:write · veriyi değiştirir
https://app.getera.io/api/v1/pages/{id}/actions/move_page- Asıl adres:
POST /api/v1/actions/site.move_page
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
id | uuid | evet | Doldurulduğu yer: adresteki {id} · Sayfa · kimliği: page |
parentId | uuid | Altında · kimliği: page |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
page_not_found | Sayfa bu çalışma alanında bulunmalı. |
parent_not_found | Yeni üst sayfa aynı sitede olmalı. |
cannot_parent_to_self | Bir sayfa kendi üstü olamaz. |
would_create_cycle | Bir sayfa kendi alt sayfasının altına taşınamaz. |
Yayımladığı olaylar: site.page_moved
Neye yazar: page (update) — Re-parents the page through tree_move
curl -X POST https://app.getera.io/api/v1/pages/PAGE_ID/actions/move_page \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"parentId":"PAGE_ID"}'{
"ok": true,
"result": "…",
"events": [
"site.page_moved"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.pages.movePage("PAGE_ID", {
parentId: "PAGE_ID"
})era pages move_page PAGE_ID \
--parent-id "PAGE_ID"{
"name": "era__site__move_page",
"arguments": {
"id": "PAGE_ID",
"parentId": "PAGE_ID"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 page_not_found, parent_not_found, cannot_parent_to_self, would_create_cycle · 429 çok sık istek
site.move_page_block
Sayfa bölümünü taşı — Bir bölümü sayfasında yeni bir konuma taşır.
Gereken izin site:write · veriyi değiştirir
https://app.getera.io/api/v1/themes/{id}/actions/move_page_block- Asıl adres:
POST /api/v1/actions/site.move_page_block
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
themeId | uuid | evet | Doldurulduğu yer: adresteki {id} · Tema · kimliği: theme |
pageId | uuid | evet | Sayfa · kimliği: page |
blockId | string | evet | Bölüm · en çok 120 |
toIndex | number | evet | Konum · en az 0 |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
theme_not_found | Tema bu çalışma alanında bulunmalı. |
theme_is_published | Yayındaki bir tema yerinde düzenlenemez. |
archived | Arşivlenmiş bir tema düzenlenemez. |
page_not_found | Sayfa temanın sitesinde olmalı. |
block_not_found | Bu bölüm sayfada bulunamadı. |
invalid_blocks | Her bölümün sabit bir kimliği, türü ve geçerli verisi olmalı. |
duplicate_block_id | İki bölüm aynı kimliği taşıyamaz. |
Yayımladığı olaylar: site.blocks_changed
Neye yazar: theme (update) — Reorders one block in config.pageBlocks
curl -X POST https://app.getera.io/api/v1/themes/THEME_ID/actions/move_page_block \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"pageId":"PAGE_ID","blockId":"Section","toIndex":1}'{
"ok": true,
"result": "…",
"events": [
"site.blocks_changed"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.themes.movePageBlock("THEME_ID", {
pageId: "PAGE_ID",
blockId: "Section",
toIndex: 1
})era themes move_page_block THEME_ID \
--page-id "PAGE_ID" \
--block-id "Section" \
--to-index 1{
"name": "era__site__move_page_block",
"arguments": {
"themeId": "THEME_ID",
"pageId": "PAGE_ID",
"blockId": "Section",
"toIndex": 1
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 theme_not_found, theme_is_published, archived, page_not_found, block_not_found, invalid_blocks, duplicate_block_id · 429 çok sık istek
site.move_section
Bölümü taşı — Bir bölümü sayfasında başka bir yere taşır (taslakta).
Gereken izin site:write · veriyi değiştirir
https://app.getera.io/api/v1/theme_snapshots/actions/move_section- Asıl adres:
POST /api/v1/actions/site.move_section
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
site | string | Site · Kimlik, adres ya da ad. Boş = en son düzenlenen site. · en çok 200 | |
page | string | Sayfa · Kimlik, adres (/about), başlık ya da "home". Boş = ana sayfa. · en çok 255 | |
section | string | evet | Bölüm · Kimliği, 1’den başlayan sırası, türü (hero) ya da başlığından sözcükler. · en çok 200 |
position | number | Yeni sırası (1’den başlayarak) · en az 1 | |
direction | string (enum) | Ya da · İzin verilen değerler: up, down, top, bottom |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
site_not_found | Site bu çalışma alanında bulunmalı. |
page_not_found | Sayfa o sitede olmalı. |
block_not_found | Bu bölüm sayfada bulunamadı. |
no_position | Bir sıra ya da yön verilmeli. |
nothing_to_change | Zaten orada olmamalı. |
Yayımladığı olaylar: site.blocks_changed, site.theme_draft_created
Neye yazar: theme (update) — Changes one page of the site’s draft (a draft is forked from the live theme when there is none); theme_snapshot (insert) — Keeps an automatic checkpoint of the draft before the change; theme (insert) — Starts a draft when the site has none
curl -X POST https://app.getera.io/api/v1/theme_snapshots/actions/move_section \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"section":"Section"}'{
"ok": true,
"result": "…",
"events": [
"site.blocks_changed",
"site.theme_draft_created"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.themeSnapshots.moveSection({
section: "Section"
})era theme_snapshots move_section \
--section "Section"{
"name": "era__site__move_section",
"arguments": {
"section": "Section"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 site_not_found, page_not_found, block_not_found, no_position, nothing_to_change · 429 çok sık istek
site.publish
Siteyi yayına al — Bir dağıtım değil, bir anahtar — bir adres ona yönlendiği anda.
Gereken izin site:manage · dışarıya ulaşır (gönderir, yayımlar ya da ücret alır)
https://app.getera.io/api/v1/sites/{id}/actions/publish- Asıl adres:
POST /api/v1/actions/site.publish
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
siteId | uuid | evet | Doldurulduğu yer: adresteki {id} · Site · kimliği: site |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
site_not_found | Site bu çalışma alanında bulunmalı. |
no_change | Zaten yayında olmamalı. |
no_verified_domain | En az bir adres doğrulanmış olmalı. |
Yayımladığı olaylar: site.published
Neye yazar: site (update) — Marks it published
curl -X POST https://app.getera.io/api/v1/sites/SITE_ID/actions/publish \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{}'{
"ok": true,
"result": "…",
"events": [
"site.published"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.sites.publish("SITE_ID")era sites publish SITE_ID{
"name": "era__site__publish",
"arguments": {
"siteId": "SITE_ID"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 site_not_found, no_change, no_verified_domain · 429 çok sık istek
site.publish_draft
Değişiklikleri yayımla — Sitenin taslağını yayına alır; yerine geçtiği tema arşivlenir, geri alınabilir.
Gereken izin site: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/themes/actions/publish_draft- Asıl adres:
POST /api/v1/actions/site.publish_draft
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
site | string | Site · Kimlik, adres ya da ad. Boş = en son düzenlenen site. · en çok 200 |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
site_not_found | Site bu çalışma alanında bulunmalı. |
no_draft | Yayımlanmamış değişiklik olmalı. |
Yayımladığı olaylar: site.theme_published
Neye yazar: theme (update) — The draft becomes live; the live theme is archived
curl -X POST https://app.getera.io/api/v1/themes/actions/publish_draft \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"site":"Site"}'{
"ok": true,
"result": "…",
"events": [
"site.theme_published"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.themes.publishDraft({
site: "Site"
})era themes publish_draft \
--site "Site"{
"name": "era__site__publish_draft",
"arguments": {
"site": "Site"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 site_not_found, no_draft · 429 çok sık istek
site.publish_post
Yazıyı yayımla — Bloga koyar ve yayın tarihini işler.
Gereken izin site:write · dışarıya ulaşır (gönderir, yayımlar ya da ücret alır)
https://app.getera.io/api/v1/blog_posts/{id}/actions/publish_post- Asıl adres:
POST /api/v1/actions/site.publish_post
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
id | uuid | evet | Doldurulduğu yer: adresteki {id} · Yazı · kimliği: blog_post |
scheduledOnly | boolean | Planlı çalıştırma |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
post_not_found | Yazı bu çalışma alanında bulunmalı. |
no_change | Zaten yayımlanmış olmamalı. |
empty_content | Boş bir yazı yayımlanamaz. |
not_scheduled | Otomatik yayının zamanı henüz gelmedi. |
Yayımladığı olaylar: site.post_published
Neye yazar: blog_post (update) — Publishes it and writes published_at
curl -X POST https://app.getera.io/api/v1/blog_posts/BLOG_POST_ID/actions/publish_post \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"scheduledOnly":true}'{
"ok": true,
"result": "…",
"events": [
"site.post_published"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.blogPosts.publishPost("BLOG_POST_ID", {
scheduledOnly: true
})era blog_posts publish_post BLOG_POST_ID \
--scheduled-only true{
"name": "era__site__publish_post",
"arguments": {
"id": "BLOG_POST_ID",
"scheduledOnly": true
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 post_not_found, no_change, empty_content, not_scheduled · 429 çok sık istek
site.publish_theme
Temayı yayımla — Yayındaki temayı bu taslakla değiştirir ve eskisini saklar.
Gereken izin site:manage · dışarıya ulaşır (gönderir, yayımlar ya da ücret alır)
https://app.getera.io/api/v1/themes/{id}/actions/publish_theme- Asıl adres:
POST /api/v1/actions/site.publish_theme
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
themeId | uuid | evet | Doldurulduğu yer: adresteki {id} · Tema · kimliği: theme |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
theme_not_found | Tema bu çalışma alanında bulunmalı. |
already_published | Zaten yayında olmamalı. |
archived | Arşivlenmiş bir tema yayımlanamaz. |
Yayımladığı olaylar: site.theme_published
Neye yazar: theme (update) — Publishes the draft and archives the one it replaces
curl -X POST https://app.getera.io/api/v1/themes/THEME_ID/actions/publish_theme \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{}'{
"ok": true,
"result": "…",
"events": [
"site.theme_published"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.themes.publishTheme("THEME_ID")era themes publish_theme THEME_ID{
"name": "era__site__publish_theme",
"arguments": {
"themeId": "THEME_ID"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 theme_not_found, already_published, archived · 429 çok sık istek
site.remove_deploy
Yayındaki siteyi kaldır — Sitenin yayından kaldırıldığını kaydeder; adresi artık yanıt vermez.
Gereken izin site:manage · siler ya da geri alınamaz · Era çalıştırırken bir kişiye onaylatır
https://app.getera.io/api/v1/site_deploys/actions/remove_deploy- Asıl adres:
POST /api/v1/actions/site.remove_deploy
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
siteId | uuid | evet | Site · kimliği: site |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
not_deployed | Sitenin yayında bir sürümü olmalı. |
Yayımladığı olaylar: site.deploy_removed
Neye yazar: site_deploy (update) — The live version becomes removed
curl -X POST https://app.getera.io/api/v1/site_deploys/actions/remove_deploy \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"siteId":"SITE_ID"}'{
"ok": true,
"result": "…",
"events": [
"site.deploy_removed"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.siteDeploys.removeDeploy({
siteId: "SITE_ID"
})era site_deploys remove_deploy \
--site-id "SITE_ID"{
"name": "era__site__remove_deploy",
"arguments": {
"siteId": "SITE_ID"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_deployed · 429 çok sık istek
site.remove_domain
Adresi kaldır — Sitenin o adreste yanıt vermesini durdurur.
Gereken izin site:manage · siler ya da geri alınamaz · Era çalıştırırken bir kişiye onaylatır
https://app.getera.io/api/v1/domains/{id}/actions/remove_domain- Asıl adres:
POST /api/v1/actions/site.remove_domain
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
domainId | uuid | evet | Doldurulduğu yer: adresteki {id} · Adres · kimliği: domain |
force | boolean | Yine de kaldır |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
domain_not_found | Adres burada kayıtlı olmalı. |
is_primary | Başka adresler varken birincil adres kaldırılamaz. |
last_domain | Yayındaki bir sitenin son adresini kaldırmak bir kez onaylanır. |
Yayımladığı olaylar: site.domain_removed
Neye yazar: domain (delete) — Removes the address
curl -X POST https://app.getera.io/api/v1/domains/DOMAIN_ID/actions/remove_domain \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"force":true}'{
"ok": true,
"result": "…",
"events": [
"site.domain_removed"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.domains.removeDomain("DOMAIN_ID", {
force: true
})era domains remove_domain DOMAIN_ID \
--force true{
"name": "era__site__remove_domain",
"arguments": {
"domainId": "DOMAIN_ID",
"force": true
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 domain_not_found, is_primary, last_domain · 429 çok sık istek
site.remove_page_block
Sayfa bölümünü kaldır — Bir bölümü sayfadan kaldırır.
Gereken izin site:write · siler ya da geri alınamaz · Era çalıştırırken bir kişiye onaylatır
https://app.getera.io/api/v1/themes/{id}/actions/remove_page_block- Asıl adres:
POST /api/v1/actions/site.remove_page_block
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
themeId | uuid | evet | Doldurulduğu yer: adresteki {id} · Tema · kimliği: theme |
pageId | uuid | evet | Sayfa · kimliği: page |
blockId | string | evet | Bölüm · en çok 120 |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
theme_not_found | Tema bu çalışma alanında bulunmalı. |
theme_is_published | Yayındaki bir tema yerinde düzenlenemez. |
archived | Arşivlenmiş bir tema düzenlenemez. |
page_not_found | Sayfa temanın sitesinde olmalı. |
block_not_found | Bu bölüm sayfada bulunamadı. |
invalid_blocks | Her bölümün sabit bir kimliği, türü ve geçerli verisi olmalı. |
duplicate_block_id | İki bölüm aynı kimliği taşıyamaz. |
Yayımladığı olaylar: site.blocks_changed
Neye yazar: theme (update) — Removes one block from config.pageBlocks
curl -X POST https://app.getera.io/api/v1/themes/THEME_ID/actions/remove_page_block \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"pageId":"PAGE_ID","blockId":"Section"}'{
"ok": true,
"result": "…",
"events": [
"site.blocks_changed"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.themes.removePageBlock("THEME_ID", {
pageId: "PAGE_ID",
blockId: "Section"
})era themes remove_page_block THEME_ID \
--page-id "PAGE_ID" \
--block-id "Section"{
"name": "era__site__remove_page_block",
"arguments": {
"themeId": "THEME_ID",
"pageId": "PAGE_ID",
"blockId": "Section"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 theme_not_found, theme_is_published, archived, page_not_found, block_not_found, invalid_blocks, duplicate_block_id · 429 çok sık istek
site.remove_section
Bölümü kaldır — Bir bölümü taslaktan kaldırır; önceki hâli sürüm geçmişinde kalır.
Gereken izin site:write · siler ya da geri alınamaz
https://app.getera.io/api/v1/theme_snapshots/actions/remove_section- Asıl adres:
POST /api/v1/actions/site.remove_section
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
site | string | Site · Kimlik, adres ya da ad. Boş = en son düzenlenen site. · en çok 200 | |
page | string | Sayfa · Kimlik, adres (/about), başlık ya da "home". Boş = ana sayfa. · en çok 255 | |
section | string | evet | Bölüm · Kimliği, 1’den başlayan sırası, türü (hero) ya da başlığından sözcükler. · en çok 200 |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
site_not_found | Site bu çalışma alanında bulunmalı. |
page_not_found | Sayfa o sitede olmalı. |
block_not_found | Bu bölüm sayfada bulunamadı. |
Yayımladığı olaylar: site.blocks_changed, site.theme_draft_created
Neye yazar: theme (update) — Changes one page of the site’s draft (a draft is forked from the live theme when there is none); theme_snapshot (insert) — Keeps an automatic checkpoint of the draft before the change; theme (insert) — Starts a draft when the site has none
curl -X POST https://app.getera.io/api/v1/theme_snapshots/actions/remove_section \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"section":"Section"}'{
"ok": true,
"result": "…",
"events": [
"site.blocks_changed",
"site.theme_draft_created"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.themeSnapshots.removeSection({
section: "Section"
})era theme_snapshots remove_section \
--section "Section"{
"name": "era__site__remove_section",
"arguments": {
"section": "Section"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 site_not_found, page_not_found, block_not_found · 429 çok sık istek
site.reorder_blog_categories
Blog kategorilerini yeniden sırala — Sitede kullanılan kategori sırasını belirler.
Gereken izin site:manage · veriyi değiştirir
https://app.getera.io/api/v1/blog_categories/actions/reorder_blog_categories- Asıl adres:
POST /api/v1/actions/site.reorder_blog_categories
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
siteId | uuid | evet | Site · kimliği: site |
ids | object / array | evet | Sıralı kategoriler |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
site_not_found | Site bu çalışma alanında bulunmalı. |
invalid_blog_category_order | Her kategori sıralamada bir kez yer almalı. |
Yayımladığı olaylar: site.blog_taxonomy_changed
Neye yazar: blog_category (update) — Rewrites category positions
curl -X POST https://app.getera.io/api/v1/blog_categories/actions/reorder_blog_categories \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"siteId":"SITE_ID","ids":{}}'{
"ok": true,
"result": "…",
"events": [
"site.blog_taxonomy_changed"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.blogCategories.reorderBlogCategories({
siteId: "SITE_ID",
ids: {}
})era blog_categories reorder_blog_categories --data '{"siteId":"SITE_ID","ids":{}}'{
"name": "era__site__reorder_blog_categories",
"arguments": {
"siteId": "SITE_ID",
"ids": {}
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 site_not_found, invalid_blog_category_order · 429 çok sık istek
site.reorder_faq
Soruları sırala — Sitede görünecekleri sıra.
Gereken izin site:write · veriyi değiştirir
https://app.getera.io/api/v1/faq_items/actions/reorder_faq- Asıl adres:
POST /api/v1/actions/site.reorder_faq
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
siteId | uuid | evet | Site · kimliği: site |
ids | object / array | evet | Yeni sipariş |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
site_not_found | Site bu çalışma alanında bulunmalı. |
invalid_order | Yeni sıra soru kimliklerinden oluşan bir liste olmalı. |
unknown_faq_item | Her kimlik bu sitedeki bir soru olmalı. |
Yayımladığı olaylar: site.faq_changed
Neye yazar: faq_item (update) — Rewrites the positions
curl -X POST https://app.getera.io/api/v1/faq_items/actions/reorder_faq \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"siteId":"SITE_ID","ids":{}}'{
"ok": true,
"result": "…",
"events": [
"site.faq_changed"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.faqItems.reorderFaq({
siteId: "SITE_ID",
ids: {}
})era faq_items reorder_faq --data '{"siteId":"SITE_ID","ids":{}}'{
"name": "era__site__reorder_faq",
"arguments": {
"siteId": "SITE_ID",
"ids": {}
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 site_not_found, invalid_order, unknown_faq_item · 429 çok sık istek
site.restore_theme_snapshot
Sitenin bir sürümünü geri yükle — Kaydedilmiş bir sürümü site taslağına geri koyar; yayındaki siteye dokunulmaz.
Gereken izin site:write · veriyi değiştirir
https://app.getera.io/api/v1/themes/actions/restore_theme_snapshot- Asıl adres:
POST /api/v1/actions/site.restore_theme_snapshot
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
snapshotId | uuid | evet | Sürüm |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
snapshot_not_found | Kaydedilmiş sürüm bu çalışma alanında bulunmalı. |
no_draft | Sitenin, geri yüklemenin yapılacağı bir taslağı olmalı. |
Yayımladığı olaylar: site.theme_changed
Neye yazar: theme (update) — Replaces the draft configuration with the saved one
curl -X POST https://app.getera.io/api/v1/themes/actions/restore_theme_snapshot \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"snapshotId":"SNAPSHOT_ID"}'{
"ok": true,
"result": "…",
"events": [
"site.theme_changed"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.themes.restoreThemeSnapshot({
snapshotId: "SNAPSHOT_ID"
})era themes restore_theme_snapshot \
--snapshot-id "SNAPSHOT_ID"{
"name": "era__site__restore_theme_snapshot",
"arguments": {
"snapshotId": "SNAPSHOT_ID"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 snapshot_not_found, no_draft · 429 çok sık istek
site.restyle
Sitenin stilini değiştir — Marka rengi, renkler, yazı tipleri, köşeler, boşluklar ve koyu mod — taslakta.
Gereken izin site:write · veriyi değiştirir
https://app.getera.io/api/v1/themes/actions/restyle- Asıl adres:
POST /api/v1/actions/site.restyle
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
site | string | Site · Kimlik, adres ya da ad. Boş = en son düzenlenen site. · en çok 200 | |
brandColor | string | Marka rengi · #1f6feb — düğmeler, bağlantılar ve vurgular buna uyar. · en çok 9 | |
colors | object / array | Renkler · background, foreground, primary, primaryForeground, secondary, secondaryForeground, accent, accentForeground, muted, mutedForeground, border, input, ring, card, cardForeground, destructive, destructiveForeground değerlerinden herhangi biri, #rrggbb biçiminde. | |
darkColors | object / array | Koyu mod renkleri · Aynı değerler, koyu tema için. | |
headingFont | string | Başlık yazı tipi · inter, geist, system, serif, mono, playfair, poppins, montserrat, dm-serif, roboto, fraunces, manrope · en çok 40 | |
bodyFont | string | Metin yazı tipi · en çok 40 | |
baseSize | number | Metin boyutu (px) | |
radius | number | Köşe yuvarlaklığı (0–2) | |
spacing | string (enum) | Boşluk · İzin verilen değerler: compact, default, relaxed | |
containerWidth | string (enum) | İçerik genişliği · İzin verilen değerler: narrow, default, wide, full | |
buttonStyle | string (enum) | Düğmeler · İzin verilen değerler: default, pill, square | |
dark | boolean | Koyu mod |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
site_not_found | Site bu çalışma alanında bulunmalı. |
invalid_color | Renkler, temanın bilinen renkleri olarak #rrggbb biçiminde verilir. |
unknown_font | Yazı tipi sitenin yüklediklerinden biri olmalı. |
invalid_tokens | Boyutlar ve seçimler izin verilen aralıkta olmalı. |
nothing_to_change | Bir şeyin değişmesi gerekir. |
Yayımladığı olaylar: site.theme_changed, site.theme_draft_created
Neye yazar: theme (update) — Writes the colour, type and layout tokens of the draft; theme (insert) — Starts a draft when the site has none; theme_snapshot (insert) — Keeps an automatic checkpoint first
curl -X POST https://app.getera.io/api/v1/themes/actions/restyle \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"site":"Site"}'{
"ok": true,
"result": "…",
"events": [
"site.theme_changed",
"site.theme_draft_created"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.themes.restyle({
site: "Site"
})era themes restyle \
--site "Site"{
"name": "era__site__restyle",
"arguments": {
"site": "Site"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 site_not_found, invalid_color, unknown_font, invalid_tokens, nothing_to_change · 429 çok sık istek
site.rollback_theme
Temaya geri dön — Önceki bir temayı siteye geri koyar ve yerini aldığı temayı arşivler.
Gereken izin site: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/themes/{id}/actions/rollback_theme- Asıl adres:
POST /api/v1/actions/site.rollback_theme
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
themeId | uuid | evet | Doldurulduğu yer: adresteki {id} · Tema · kimliği: theme |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
theme_not_found | Tema bu çalışma alanında bulunmalı. |
already_published | Zaten yayında olmamalı. |
not_archived | Geri alma, daha önce yayında olmuş bir temaya yapılır. |
Yayımladığı olaylar: site.theme_published
Neye yazar: theme (update) — Swaps the live theme for the archived one
curl -X POST https://app.getera.io/api/v1/themes/THEME_ID/actions/rollback_theme \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{}'{
"ok": true,
"result": "…",
"events": [
"site.theme_published"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.themes.rollbackTheme("THEME_ID")era themes rollback_theme THEME_ID{
"name": "era__site__rollback_theme",
"arguments": {
"themeId": "THEME_ID"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 theme_not_found, already_published, not_archived · 429 çok sık istek
site.save_blog_author
Yazarı kaydet — Ekipten birinin bu sitede nasıl tanıtıldığı.
Gereken izin site:manage · veriyi değiştirir
https://app.getera.io/api/v1/blog_authors/{id}/actions/save_blog_author- REST kısayolu:
PATCH /api/v1/blog_authors/{id} - Asıl adres:
POST /api/v1/actions/site.save_blog_author
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
siteId | uuid | evet | Site · kimliği: site |
id | uuid | Doldurulduğu yer: adresteki {id} · Yazar · kimliği: blog_author | |
userId | uuid | evet | Kişi · kimliği: app_user |
displayName | string | evet | Şöyle gösterilir · en çok 120 |
bio | string | Giriş · en çok 4000 | |
isPublic | boolean | Sitede görünür |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
site_not_found | Site bu çalışma alanında bulunmalı. |
user_not_found | Kişi bu organizasyonda olmalı. |
author_exists | Bir kişinin her sitede yalnızca bir yazar kaydı olabilir. |
author_not_found | Düzenleme var olan bir yazarı belirtmeli. |
Yayımladığı olaylar: site.blog_taxonomy_changed
Neye yazar: blog_author (upsert) — Writes the author
curl -X POST https://app.getera.io/api/v1/blog_authors/BLOG_AUTHOR_ID/actions/save_blog_author \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"siteId":"SITE_ID","userId":"APP_USER_ID","displayName":"Shown as"}'{
"ok": true,
"result": "…",
"events": [
"site.blog_taxonomy_changed"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.blogAuthors.saveBlogAuthor("BLOG_AUTHOR_ID", {
siteId: "SITE_ID",
userId: "APP_USER_ID",
displayName: "Shown as"
})era blog_authors save_blog_author BLOG_AUTHOR_ID \
--site-id "SITE_ID" \
--user-id "APP_USER_ID" \
--display-name "Shown as"{
"name": "era__site__save_blog_author",
"arguments": {
"id": "BLOG_AUTHOR_ID",
"siteId": "SITE_ID",
"userId": "APP_USER_ID",
"displayName": "Shown as"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 site_not_found, user_not_found, author_exists, author_not_found · 429 çok sık istek
site.save_blog_category
Blog kategorisini kaydet — Yazıların altında toplandığı gruplar.
Gereken izin site:manage · veriyi değiştirir
https://app.getera.io/api/v1/blog_categories/{id}/actions/save_blog_category- REST kısayolu:
PATCH /api/v1/blog_categories/{id} - Asıl adres:
POST /api/v1/actions/site.save_blog_category
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
siteId | uuid | evet | Site · kimliği: site |
id | uuid | Doldurulduğu yer: adresteki {id} · Kategori · kimliği: blog_category | |
name | string | evet | Ad · en çok 100 |
slug | string | Adres · en çok 100 | |
description | string | Açıklama · en çok 2000 | |
color | string | Renk · en çok 7 | |
icon | string | Simge · en çok 50 | |
sortOrder | number | Konum · en az 0 | |
isActive | boolean | Kullanımda |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
site_not_found | Site bu çalışma alanında bulunmalı. |
invalid_slug | Ad kullanılabilir bir adres üretmeli. |
slug_taken | Adres bu sitede boşta olmalı. |
invalid_colour | Renk altı haneli bir onaltılık değer olmalı. |
category_not_found | Düzenleme var olan bir kategoriyi belirtmeli. |
Yayımladığı olaylar: site.blog_taxonomy_changed
Neye yazar: blog_category (upsert) — Writes the category
curl -X POST https://app.getera.io/api/v1/blog_categories/BLOG_CATEGORY_ID/actions/save_blog_category \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"siteId":"SITE_ID","name":"Name"}'{
"ok": true,
"result": "…",
"events": [
"site.blog_taxonomy_changed"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.blogCategories.saveBlogCategory("BLOG_CATEGORY_ID", {
siteId: "SITE_ID",
name: "Name"
})era blog_categories save_blog_category BLOG_CATEGORY_ID \
--site-id "SITE_ID" \
--name "Name"{
"name": "era__site__save_blog_category",
"arguments": {
"id": "BLOG_CATEGORY_ID",
"siteId": "SITE_ID",
"name": "Name"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 site_not_found, invalid_slug, slug_taken, invalid_colour, category_not_found · 429 çok sık istek
site.save_blog_tag
Blog etiketini kaydet — Yazıların taşıyabileceği bir etiket.
Gereken izin site:manage · veriyi değiştirir
https://app.getera.io/api/v1/blog_tags/{id}/actions/save_blog_tag- REST kısayolu:
PATCH /api/v1/blog_tags/{id} - Asıl adres:
POST /api/v1/actions/site.save_blog_tag
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
siteId | uuid | evet | Site · kimliği: site |
id | uuid | Doldurulduğu yer: adresteki {id} · Etiket · kimliği: blog_tag | |
name | string | evet | Ad · en çok 50 |
slug | string | Adres · en çok 50 | |
isPublic | boolean | Sitede görünür |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
site_not_found | Site bu çalışma alanında bulunmalı. |
invalid_slug | Ad kullanılabilir bir adres üretmeli. |
slug_taken | Adres bu sitede boşta olmalı. |
tag_not_found | Düzenleme var olan bir etiketi belirtmeli. |
Yayımladığı olaylar: site.blog_taxonomy_changed
Neye yazar: blog_tag (upsert) — Writes the tag
curl -X POST https://app.getera.io/api/v1/blog_tags/BLOG_TAG_ID/actions/save_blog_tag \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"siteId":"SITE_ID","name":"Name"}'{
"ok": true,
"result": "…",
"events": [
"site.blog_taxonomy_changed"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.blogTags.saveBlogTag("BLOG_TAG_ID", {
siteId: "SITE_ID",
name: "Name"
})era blog_tags save_blog_tag BLOG_TAG_ID \
--site-id "SITE_ID" \
--name "Name"{
"name": "era__site__save_blog_tag",
"arguments": {
"id": "BLOG_TAG_ID",
"siteId": "SITE_ID",
"name": "Name"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 site_not_found, invalid_slug, slug_taken, tag_not_found · 429 çok sık istek
site.save_faq_category
SSS grubunu kaydet — Soruların altında durduğu başlıklar.
Gereken izin site:manage · veriyi değiştirir
https://app.getera.io/api/v1/faq_categories/{id}/actions/save_faq_category- REST kısayolu:
PATCH /api/v1/faq_categories/{id} - Asıl adres:
POST /api/v1/actions/site.save_faq_category
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
siteId | uuid | evet | Site · kimliği: site |
id | uuid | Doldurulduğu yer: adresteki {id} · Grup · kimliği: faq_category | |
name | string | evet | Ad · en çok 100 |
slug | string | Adres · en çok 100 | |
description | string | Açıklama · en çok 2000 | |
icon | string | Simge · en çok 50 | |
sortOrder | number | Konum · en az 0 | |
isActive | boolean | Sitede gösterilir |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
site_not_found | Site bu çalışma alanında bulunmalı. |
invalid_slug | Ad kullanılabilir bir adres üretmeli. |
slug_taken | Adres bu sitede boşta olmalı. |
category_not_found | Düzenleme var olan bir grubu belirtmeli. |
Yayımladığı olaylar: site.faq_changed
Neye yazar: faq_category (upsert) — Writes the group
curl -X POST https://app.getera.io/api/v1/faq_categories/FAQ_CATEGORY_ID/actions/save_faq_category \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"siteId":"SITE_ID","name":"Name"}'{
"ok": true,
"result": "…",
"events": [
"site.faq_changed"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.faqCategories.saveFaqCategory("FAQ_CATEGORY_ID", {
siteId: "SITE_ID",
name: "Name"
})era faq_categories save_faq_category FAQ_CATEGORY_ID \
--site-id "SITE_ID" \
--name "Name"{
"name": "era__site__save_faq_category",
"arguments": {
"id": "FAQ_CATEGORY_ID",
"siteId": "SITE_ID",
"name": "Name"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 site_not_found, invalid_slug, slug_taken, category_not_found · 429 çok sık istek
site.save_faq_item
Soruyu kaydet — Bir soru ve cevabı.
Gereken izin site:write · veriyi değiştirir
https://app.getera.io/api/v1/faq_items/{id}/actions/save_faq_item- REST kısayolu:
PATCH /api/v1/faq_items/{id} - Asıl adres:
POST /api/v1/actions/site.save_faq_item
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
siteId | uuid | evet | Site · kimliği: site |
id | uuid | Doldurulduğu yer: adresteki {id} · Soru · kimliği: faq_item | |
categoryId | uuid | Grup · kimliği: faq_category | |
question | string | evet | Soru · en çok 1000 |
answer | string | evet | Yanıt · en çok 20000 |
sortOrder | number | Konum · en az 0 | |
isActive | boolean | Sitede gösterilir |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
site_not_found | Site bu çalışma alanında bulunmalı. |
category_not_found | Grup aynı sitede olmalı. |
faq_item_not_found | Düzenleme var olan bir soruyu belirtmeli. |
Yayımladığı olaylar: site.faq_changed
Neye yazar: faq_item (upsert) — Writes the question
curl -X POST https://app.getera.io/api/v1/faq_items/FAQ_ITEM_ID/actions/save_faq_item \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"siteId":"SITE_ID","question":"Question","answer":"Answer"}'{
"ok": true,
"result": "…",
"events": [
"site.faq_changed"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.faqItems.saveFaqItem("FAQ_ITEM_ID", {
siteId: "SITE_ID",
question: "Question",
answer: "Answer"
})era faq_items save_faq_item FAQ_ITEM_ID \
--site-id "SITE_ID" \
--question "Question" \
--answer "Answer"{
"name": "era__site__save_faq_item",
"arguments": {
"id": "FAQ_ITEM_ID",
"siteId": "SITE_ID",
"question": "Question",
"answer": "Answer"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 site_not_found, category_not_found, faq_item_not_found · 429 çok sık istek
site.save_news
Haber yaz — Bir duyuru oluşturur veya düzenler. Yayımlamak ayrı bir adımdır.
Gereken izin site:write · veriyi değiştirir
https://app.getera.io/api/v1/newses/{id}/actions/save_news- REST kısayolu:
PATCH /api/v1/newses/{id} - Asıl adres:
POST /api/v1/actions/site.save_news
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
siteId | uuid | evet | Site · kimliği: site |
id | uuid | Doldurulduğu yer: adresteki {id} · Haber · kimliği: news | |
title | string | evet | Başlık · en çok 255 |
slug | string | Adres · en çok 255 | |
description | string | Özet · en çok 2000 | |
content | object / array | Gövde | |
metaTitle | string | Arama başlığı · en çok 255 | |
metaDescription | string | Arama açıklaması · en çok 2000 | |
isFeatured | boolean | Öne çıkan | |
featuredImageId | uuid | Kapak görseli · kimliği: file | |
publishedAt | date | Yayın tarihi |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
site_not_found | Site bu çalışma alanında bulunmalı. |
invalid_slug | Başlık kullanılabilir bir adres üretmeli. |
slug_taken | Adres bu sitede boşta olmalı. |
news_not_found | Düzenleme var olan bir öğeyi belirtmeli. |
Yayımladığı olaylar: site.news_saved
Neye yazar: news (upsert) — Writes the news item
curl -X POST https://app.getera.io/api/v1/newses/NEWSE_ID/actions/save_news \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"siteId":"SITE_ID","title":"Title"}'{
"ok": true,
"result": "…",
"events": [
"site.news_saved"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.newses.saveNews("NEWSE_ID", {
siteId: "SITE_ID",
title: "Title"
})era newses save_news NEWSE_ID \
--site-id "SITE_ID" \
--title "Title"{
"name": "era__site__save_news",
"arguments": {
"id": "NEWSE_ID",
"siteId": "SITE_ID",
"title": "Title"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 site_not_found, invalid_slug, slug_taken, news_not_found · 429 çok sık istek
site.save_post
Yazı yaz — Bir blog yazısı oluşturur veya düzenler. Yayımlamak ayrı bir adımdır.
Gereken izin site:write · veriyi değiştirir
https://app.getera.io/api/v1/blog_posts/{id}/actions/save_post- Asıl adres:
POST /api/v1/actions/site.save_post
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
siteId | uuid | evet | Site · kimliği: site |
id | uuid | Doldurulduğu yer: adresteki {id} · Yazı · kimliği: blog_post | |
title | string | evet | Başlık · en çok 255 |
slug | string | Adres · en çok 255 | |
excerpt | string | Özet · en çok 2000 | |
content | object / array | Gövde | |
categoryId | uuid | Kategori · kimliği: blog_category | |
authorId | uuid | Yazar · kimliği: blog_author | |
metaTitle | string | Arama başlığı · en çok 255 | |
metaDescription | string | Arama açıklaması · en çok 2000 | |
metaKeywords | string | Anahtar kelimeler · en çok 500 | |
isFeatured | boolean | Öne çıkan | |
featuredImageId | uuid | Kapak görseli · kimliği: file |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
site_not_found | Site bu çalışma alanında bulunmalı. |
invalid_slug | Başlık kullanılabilir bir adres üretmeli. |
slug_taken | Adres bu sitede boşta olmalı. |
category_not_found | Kategori aynı sitede olmalı. |
author_not_found | Yazar aynı sitede olmalı. |
post_not_found | Düzenleme var olan bir yazıyı belirtmeli. |
Yayımladığı olaylar: site.post_saved
Neye yazar: blog_post (upsert) — Writes the post as a draft
curl -X POST https://app.getera.io/api/v1/blog_posts/BLOG_POST_ID/actions/save_post \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"siteId":"SITE_ID","title":"Title"}'{
"ok": true,
"result": "…",
"events": [
"site.post_saved"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.blogPosts.savePost("BLOG_POST_ID", {
siteId: "SITE_ID",
title: "Title"
})era blog_posts save_post BLOG_POST_ID \
--site-id "SITE_ID" \
--title "Title"{
"name": "era__site__save_post",
"arguments": {
"id": "BLOG_POST_ID",
"siteId": "SITE_ID",
"title": "Title"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 site_not_found, invalid_slug, slug_taken, category_not_found, author_not_found, post_not_found · 429 çok sık istek
site.save_reference
Referansı kaydet — Yaptığınız bir proje ve müşterinin onun hakkında söyledikleri.
Gereken izin site:write · veriyi değiştirir
https://app.getera.io/api/v1/client_references/{id}/actions/save_reference- Asıl adres:
POST /api/v1/actions/site.save_reference
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
siteId | uuid | evet | Site · kimliği: site |
id | uuid | Doldurulduğu yer: adresteki {id} · Referans · kimliği: client_reference | |
clientName | string | evet | Müşteri · en çok 255 |
clientSector | string | Sektör · en çok 100 | |
clientLogoId | uuid | Logo · kimliği: file | |
projectTitle | string | Proje · en çok 255 | |
projectDescription | string | Ne yaptınız · en çok 8000 | |
projectImages | object / array | Proje görselleri | |
projectUrl | string | Bağlantı · en çok 500 | |
testimonial | string | Teklif · en çok 4000 | |
testimonialAuthor | string | Söyleyen · en çok 255 | |
testimonialPosition | string | Rolü · en çok 100 | |
isFeatured | boolean | Öne çıkan | |
isPublic | boolean | Sitede gösterilir | |
sortOrder | number | Konum · en az 0 |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
site_not_found | Site bu çalışma alanında bulunmalı. |
client_name_required | Referansın bir müşteri adı olmalı. |
reference_not_found | Düzenleme var olan bir referansı belirtmeli. |
invalid_reference_images | Proje görselleri dosya kimliklerinden oluşan bir liste olmalı. |
reference_file_not_found | Her görsel bu çalışma alanında bir dosya olmalı. |
Yayımladığı olaylar: site.reference_saved
Neye yazar: client_reference (upsert) — Writes the reference
curl -X POST https://app.getera.io/api/v1/client_references/CLIENT_REFERENCE_ID/actions/save_reference \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"siteId":"SITE_ID","clientName":"Client"}'{
"ok": true,
"result": "…",
"events": [
"site.reference_saved"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.clientReferences.saveReference("CLIENT_REFERENCE_ID", {
siteId: "SITE_ID",
clientName: "Client"
})era client_references save_reference CLIENT_REFERENCE_ID \
--site-id "SITE_ID" \
--client-name "Client"{
"name": "era__site__save_reference",
"arguments": {
"id": "CLIENT_REFERENCE_ID",
"siteId": "SITE_ID",
"clientName": "Client"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 site_not_found, client_name_required, reference_not_found, invalid_reference_images, reference_file_not_found · 429 çok sık istek
site.save_theme_draft
Tema taslağını kaydet — Düzenleyicinin tüm durumunu tek seferde bir taslağa kaydeder; asla yayındaki temaya değil.
Gereken izin site:write · veriyi değiştirir
https://app.getera.io/api/v1/themes/{id}/actions/save_theme_draft- Asıl adres:
POST /api/v1/actions/site.save_theme_draft
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
themeId | uuid | evet | Doldurulduğu yer: adresteki {id} · Tema · kimliği: theme |
config | object / array | evet | Tema yapılandırması |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
theme_not_found | Tema bu çalışma alanında bulunmalı. |
theme_is_published | Yayındaki bir tema yerinde düzenlenemez. |
archived | Arşivlenmiş bir tema düzenlenemez. |
invalid_theme | Düzenleyici sürümlü tek bir tema yapılandırması gönderir. |
missing_colour_token | Palet on yedi değerin hepsini taşır. |
unknown_font | Yazı tipi, sitenin yüklediği yazı tiplerinden biri olmalı. |
invalid_tokens | Tema değerleri ve boyutları site sözleşmesine uymalı. |
invalid_chrome | Üst ve alt bilgi blokları ve konumları geçerli biçimde olmalı. |
unknown_variant | Eski üst/alt bilgi, çizilebilen bir düzen kullanmalı. |
page_not_found | Her sayfa düzeni bu siteye ait olmalı. |
invalid_blocks | Her sayfa gövdesi çizilebilir bloklardan oluşan bir liste olmalı. |
duplicate_block_id | Bir sayfadaki iki blok aynı kimliği paylaşamaz. |
invalid_seo | SEO bölümleri sayfaya göre anahtarlanmış nesnelerdir. |
meta_title_too_long | Meta başlık en fazla 255 karakter olabilir. |
Yayımladığı olaylar: site.theme_changed
Neye yazar: theme (update) — Replaces one draft config in a single transaction
curl -X POST https://app.getera.io/api/v1/themes/THEME_ID/actions/save_theme_draft \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"config":{}}'{
"ok": true,
"result": "…",
"events": [
"site.theme_changed"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.themes.saveThemeDraft("THEME_ID", {
config: {}
})era themes save_theme_draft THEME_ID --data '{"config":{}}'{
"name": "era__site__save_theme_draft",
"arguments": {
"themeId": "THEME_ID",
"config": {}
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 theme_not_found, theme_is_published, archived, invalid_theme, missing_colour_token, unknown_font, invalid_tokens, invalid_chrome, unknown_variant, page_not_found, invalid_blocks, duplicate_block_id, invalid_seo, meta_title_too_long · 429 çok sık istek
site.schedule_content
Yayımlamayı zamanla — Bir blog yazısını veya haberi ileri bir saatte yayımlanmak üzere sıraya alır.
Gereken izin site:write · veriyi değiştirir
https://app.getera.io/api/v1/blog_posts/actions/schedule_content- Asıl adres:
POST /api/v1/actions/site.schedule_content
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
id | uuid | evet | Makale |
kind | string (enum) | evet | Tür · İzin verilen değerler: post, news |
publishAt | date-time | evet | Yayımlanma zamanı |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
post_not_found | Blog yazısı bulunamadı. |
news_not_found | Haber bulunamadı. |
empty_content | Yazının içeriği olmalı. |
publish_time_in_past | Yayın zamanı gelecekte olmalı. |
Neye yazar: blog_post (update) — Stores a post schedule; news (update) — Stores a news schedule
curl -X POST https://app.getera.io/api/v1/blog_posts/actions/schedule_content \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"id":"ID_ID","kind":"post","publishAt":"2026-11-02T09:00:00Z"}'{
"ok": true,
"result": "…",
"events": []
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.blogPosts.scheduleContent({
id: "ID_ID",
kind: "post",
publishAt: "2026-11-02T09:00:00Z"
})era blog_posts schedule_content \
--id "ID_ID" \
--kind "post" \
--publish-at "2026-11-02T09:00:00Z"{
"name": "era__site__schedule_content",
"arguments": {
"id": "ID_ID",
"kind": "post",
"publishAt": "2026-11-02T09:00:00Z"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 post_not_found, news_not_found, empty_content, publish_time_in_past · 429 çok sık istek
site.schedule_theme_publish
Temayı zamanla — Taslağı seçilen saatte kendiliğinden yayımlar.
Gereken izin site:manage · dışarıya ulaşır (gönderir, yayımlar ya da ücret alır)
https://app.getera.io/api/v1/themes/{id}/actions/schedule_theme_publish- Asıl adres:
POST /api/v1/actions/site.schedule_theme_publish
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
themeId | uuid | evet | Doldurulduğu yer: adresteki {id} · Tema · kimliği: theme |
publishAt | date-time | evet | Yayımlanma zamanı |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
theme_not_found | Tema bu çalışma alanında bulunmalı. |
not_a_draft | Yalnızca taslak bir tema zamanlanabilir. |
publish_time_in_past | Saat gelecekte olmalı. |
Yayımladığı olaylar: site.theme_scheduled
Neye yazar: theme (update) — Stores when the draft goes live
curl -X POST https://app.getera.io/api/v1/themes/THEME_ID/actions/schedule_theme_publish \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"publishAt":"2026-11-02T09:00:00Z"}'{
"ok": true,
"result": "…",
"events": [
"site.theme_scheduled"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.themes.scheduleThemePublish("THEME_ID", {
publishAt: "2026-11-02T09:00:00Z"
})era themes schedule_theme_publish THEME_ID \
--publish-at "2026-11-02T09:00:00Z"{
"name": "era__site__schedule_theme_publish",
"arguments": {
"themeId": "THEME_ID",
"publishAt": "2026-11-02T09:00:00Z"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 theme_not_found, not_a_draft, publish_time_in_past · 429 çok sık istek
site.set_auth_mode
Ziyaretçi girişini değiştir — Sitenin misafir mi, girişli mi, yoksa yalnızca giriş yapmış ziyaretçi mi kabul edeceğini belirler.
Gereken izin site:manage · veriyi değiştirir
https://app.getera.io/api/v1/sites/{id}/actions/set_auth_mode- Asıl adres:
POST /api/v1/actions/site.set_auth_mode
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
siteId | uuid | evet | Doldurulduğu yer: adresteki {id} · Site · kimliği: site |
authMode | string (enum) | evet | Ziyaretçi girişi · İzin verilen değerler: guest, guest_with_login, login_required |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
site_not_found | Site bu çalışma alanında bulunmalı. |
Yayımladığı olaylar: site.auth_mode_changed
Neye yazar: site (update) — Changes the visitor authentication mode
curl -X POST https://app.getera.io/api/v1/sites/SITE_ID/actions/set_auth_mode \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"authMode":"guest"}'{
"ok": true,
"result": "…",
"events": [
"site.auth_mode_changed"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.sites.setAuthMode("SITE_ID", {
authMode: "guest"
})era sites set_auth_mode SITE_ID \
--auth-mode "guest"{
"name": "era__site__set_auth_mode",
"arguments": {
"siteId": "SITE_ID",
"authMode": "guest"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 site_not_found · 429 çok sık istek
site.set_chrome
Üst ve alt bilgiyi ayarla — Sitenin sekiz üst bilgi ve yedi alt bilgi düzeninden hangisini kullandığı.
Gereken izin site:write · veriyi değiştirir
https://app.getera.io/api/v1/themes/{id}/actions/set_chrome- Asıl adres:
POST /api/v1/actions/site.set_chrome
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
themeId | uuid | evet | Doldurulduğu yer: adresteki {id} · Tema · kimliği: theme |
header | object / array | Üst bilgi | |
footer | object / array | Alt bilgi | |
headerPosition | number | Üst bilginin konumu · en az 0 | |
footerPosition | number | Alt bilginin konumu · en az 0 |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
theme_not_found | Tema bu çalışma alanında bulunmalı. |
theme_is_published | Yayındaki bir tema yerinde düzenlenemez. |
invalid_chrome | Üst ve alt bilgi nesnedir; konumlar sıra numarasıdır. |
unknown_variant | Düzen, çizilebilen düzenlerden biri olmalı. |
Yayımladığı olaylar: site.theme_changed
Neye yazar: theme (update) — Writes config.chrome and the legacy header/footer keys
curl -X POST https://app.getera.io/api/v1/themes/THEME_ID/actions/set_chrome \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"header":{}}'{
"ok": true,
"result": "…",
"events": [
"site.theme_changed"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.themes.setChrome("THEME_ID", {
header: {}
})era themes set_chrome THEME_ID --data '{"header":{}}'{
"name": "era__site__set_chrome",
"arguments": {
"themeId": "THEME_ID",
"header": {}
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 theme_not_found, theme_is_published, invalid_chrome, unknown_variant · 429 çok sık istek
site.set_contact_info
İletişim bilgilerini kaydet — Alt bilginin gösterdiği adres, telefon numarası ve altı sosyal bağlantı.
Gereken izin site:manage · veriyi değiştirir
https://app.getera.io/api/v1/contact_infos/actions/set_contact_info- Asıl adres:
POST /api/v1/actions/site.set_contact_info
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
siteId | uuid | evet | Site · kimliği: site |
email | E-posta · en çok 255 | ||
phone | phone | Telefon · en çok 50 | |
address | string | Adres · en çok 1000 | |
instagramUrl | string | Instagram · en çok 500 | |
tiktokUrl | string | TikTok · en çok 500 | |
linkedinUrl | string | LinkedIn · en çok 500 | |
facebookUrl | string | Facebook · en çok 500 | |
youtubeUrl | string | YouTube · en çok 500 | |
twitterUrl | string | X · en çok 500 |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
site_not_found | Site bu çalışma alanında bulunmalı. |
invalid_url | Her sosyal bağlantı bir web adresi olmalı. |
Yayımladığı olaylar: site.contact_info_changed
Neye yazar: contact_info (upsert) — Writes the one row this site has
curl -X POST https://app.getera.io/api/v1/contact_infos/actions/set_contact_info \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"siteId":"SITE_ID"}'{
"ok": true,
"result": "…",
"events": [
"site.contact_info_changed"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.contactInfos.setContactInfo({
siteId: "SITE_ID"
})era contact_infos set_contact_info \
--site-id "SITE_ID"{
"name": "era__site__set_contact_info",
"arguments": {
"siteId": "SITE_ID"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 site_not_found, invalid_url · 429 çok sık istek
site.set_content
Site içeriğini değiştir — Bir sitenin bir içeriğini kaydeder: tüm değeri ya da bir dili. Site bir sonraki ziyarette gösterir.
Gereken izin site:manage · veriyi değiştirir
https://app.getera.io/api/v1/site_contents/actions/set_content- Asıl adres:
POST /api/v1/actions/site.set_content
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
siteId | uuid | evet | Site · kimliği: site |
key | string | evet | Kayıt · en çok 100 |
value | object / array | evet | Değer |
locale | string | Dil · Only this language (tr, en …); leave empty to send every language. · en çok 5 | |
label | string | Ad · en çok 200 | |
isPublic | boolean | Sitede gösterilir |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
site_not_found | Site bu çalışma alanında bulunmalı. |
content_not_found | İçerik sitede tanımlı olmalı (site.define_content ile). |
invalid_content | Değer, içeriğin türüne uygun olmalı. |
Yayımladığı olaylar: site.content_changed
Neye yazar: site_content (update) — The entry’s value
curl -X POST https://app.getera.io/api/v1/site_contents/actions/set_content \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"siteId":"SITE_ID","key":"Entry","value":{}}'{
"ok": true,
"result": "…",
"events": [
"site.content_changed"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.siteContents.setContent({
siteId: "SITE_ID",
key: "Entry",
value: {}
})era site_contents set_content --data '{"siteId":"SITE_ID","key":"Entry","value":{}}'{
"name": "era__site__set_content",
"arguments": {
"siteId": "SITE_ID",
"key": "Entry",
"value": {}
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 site_not_found, content_not_found, invalid_content · 429 çok sık istek
site.set_homepage
Ana sayfa yap — Ziyaretçinin sitenin kökünde gördüğü sayfa.
Gereken izin site:write · veriyi değiştirir
https://app.getera.io/api/v1/pages/{id}/actions/set_homepage- Asıl adres:
POST /api/v1/actions/site.set_homepage
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
id | uuid | evet | Doldurulduğu yer: adresteki {id} · Sayfa · kimliği: page |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
page_not_found | Sayfa bu çalışma alanında bulunmalı. |
no_change | Zaten ana sayfa olmamalı. |
page_not_published | Yalnızca yayımlanmış bir sayfa ana sayfa olabilir. |
Yayımladığı olaylar: site.homepage_changed
Neye yazar: page (update) — Moves the home-page flag, in one transaction
curl -X POST https://app.getera.io/api/v1/pages/PAGE_ID/actions/set_homepage \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{}'{
"ok": true,
"result": "…",
"events": [
"site.homepage_changed"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.pages.setHomepage("PAGE_ID")era pages set_homepage PAGE_ID{
"name": "era__site__set_homepage",
"arguments": {
"id": "PAGE_ID"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 page_not_found, no_change, page_not_published · 429 çok sık istek
site.set_locale
Site dillerini belirle — Sitenin ana adresinde açılan dili ve ziyaretçilerin geçebileceği dilleri seçer.
Gereken izin site:manage · veriyi değiştirir
https://app.getera.io/api/v1/sites/{id}/actions/set_locale- Asıl adres:
POST /api/v1/actions/site.set_locale
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
siteId | uuid | evet | Doldurulduğu yer: adresteki {id} · Site · kimliği: site |
defaultLocale | string | evet | Varsayılan dil · en çok 16 |
locales | object / array | Kullanılabilir diller |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
site_not_found | Site bu çalışma alanında bulunmalı. |
invalid_locale | Varsayılan dil geçerli bir dil kodu olmalı. |
Yayımladığı olaylar: site.locale_changed
Neye yazar: site (update) — Changes the site default and available languages
curl -X POST https://app.getera.io/api/v1/sites/SITE_ID/actions/set_locale \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"defaultLocale":"Default language"}'{
"ok": true,
"result": "…",
"events": [
"site.locale_changed"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.sites.setLocale("SITE_ID", {
defaultLocale: "Default language"
})era sites set_locale SITE_ID \
--default-locale "Default language"{
"name": "era__site__set_locale",
"arguments": {
"siteId": "SITE_ID",
"defaultLocale": "Default language"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 site_not_found, invalid_locale · 429 çok sık istek
site.set_news_status
Haberi yayımla veya arşivle — Taslak, yayında veya arşivlenmiş.
Gereken izin site:write · veriyi değiştirir
https://app.getera.io/api/v1/newses/{id}/actions/set_news_status- Asıl adres:
POST /api/v1/actions/site.set_news_status
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
id | uuid | evet | Doldurulduğu yer: adresteki {id} · Haber · kimliği: news |
status | string (enum) | evet | Durum · İzin verilen değerler: draft, published, archived |
scheduledOnly | boolean | Planlı çalıştırma |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
news_not_found | Öğe bu çalışma alanında bulunmalı. |
no_change | Zaten bu durumda olmamalı. |
empty_content | Boş bir öğe yayımlanamaz. |
not_scheduled | Otomatik yayının zamanı henüz gelmedi. |
Yayımladığı olaylar: site.news_published
Neye yazar: news (update) — Changes the state and stamps published_at
curl -X POST https://app.getera.io/api/v1/newses/NEWSE_ID/actions/set_news_status \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"status":"draft"}'{
"ok": true,
"result": "…",
"events": [
"site.news_published"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.newses.setNewsStatus("NEWSE_ID", {
status: "draft"
})era newses set_news_status NEWSE_ID \
--status "draft"{
"name": "era__site__set_news_status",
"arguments": {
"id": "NEWSE_ID",
"status": "draft"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 news_not_found, no_change, empty_content, not_scheduled · 429 çok sık istek
site.set_page_blocks
Sayfa düzenini kaydet — Bir sayfayı oluşturan bloklar; yalnızca taslak temaya.
Gereken izin site:write · veriyi değiştirir
https://app.getera.io/api/v1/themes/{id}/actions/set_page_blocks- Asıl adres:
POST /api/v1/actions/site.set_page_blocks
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
themeId | uuid | evet | Doldurulduğu yer: adresteki {id} · Tema · kimliği: theme |
pageId | uuid | evet | Sayfa · kimliği: page |
blocks | object / array | evet | Bloklar |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
theme_not_found | Tema bu çalışma alanında bulunmalı. |
theme_is_published | Yayındaki bir tema yerinde düzenlenemez. |
archived | Arşivlenmiş bir tema düzenlenemez. |
page_not_found | Sayfa temanın sitesinde olmalı. |
invalid_blocks | Her bloğun bir kimliği, bir türü ve açık/kapalı değeri olmalı. |
duplicate_block_id | İki blok aynı kimliği paylaşamaz. |
Yayımladığı olaylar: site.blocks_changed
Neye yazar: theme (update) — Writes config.pageBlocks for one page and prunes dead keys
curl -X POST https://app.getera.io/api/v1/themes/THEME_ID/actions/set_page_blocks \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"pageId":"PAGE_ID","blocks":{}}'{
"ok": true,
"result": "…",
"events": [
"site.blocks_changed"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.themes.setPageBlocks("THEME_ID", {
pageId: "PAGE_ID",
blocks: {}
})era themes set_page_blocks THEME_ID --data '{"pageId":"PAGE_ID","blocks":{}}'{
"name": "era__site__set_page_blocks",
"arguments": {
"themeId": "THEME_ID",
"pageId": "PAGE_ID",
"blocks": {}
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 theme_not_found, theme_is_published, archived, page_not_found, invalid_blocks, duplicate_block_id · 429 çok sık istek
site.set_page_nav
Menüyü değiştir — Bir sayfanın üst bilgide, alt bilgide görünüp görünmediği ve hangi sırayla.
Gereken izin site:write · veriyi değiştirir
https://app.getera.io/api/v1/pages/{id}/actions/set_page_nav- Asıl adres:
POST /api/v1/actions/site.set_page_nav
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
id | uuid | evet | Doldurulduğu yer: adresteki {id} · Sayfa · kimliği: page |
showInHeader | boolean | Üst menü | |
showInFooter | boolean | Alt bilgi menüsü | |
sortOrder | number | Konum · en az 0 |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
page_not_found | Sayfa bu çalışma alanında bulunmalı. |
Yayımladığı olaylar: site.navigation_changed
Neye yazar: page (update) — Writes the two menu flags and the position
curl -X POST https://app.getera.io/api/v1/pages/PAGE_ID/actions/set_page_nav \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"showInHeader":true}'{
"ok": true,
"result": "…",
"events": [
"site.navigation_changed"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.pages.setPageNav("PAGE_ID", {
showInHeader: true
})era pages set_page_nav PAGE_ID \
--show-in-header true{
"name": "era__site__set_page_nav",
"arguments": {
"id": "PAGE_ID",
"showInHeader": true
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 page_not_found · 429 çok sık istek
site.set_page_status
Sayfayı yayımla veya arşivle — Taslak, yayında veya arşivlenmiş — ziyaretçinin ayırt edebildiği tek şey.
Gereken izin site:write · veriyi değiştirir
https://app.getera.io/api/v1/pages/{id}/actions/set_page_status- Asıl adres:
POST /api/v1/actions/site.set_page_status
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
id | uuid | evet | Doldurulduğu yer: adresteki {id} · Sayfa · kimliği: page |
status | string (enum) | evet | Durum · İzin verilen değerler: draft, published, archived |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
page_not_found | Sayfa bu çalışma alanında bulunmalı. |
no_change | Zaten bu durumda olmamalı. |
homepage_must_stay_published | Ana sayfa yayından kaldırılamaz. |
Yayımladığı olaylar: site.page_status_changed
Neye yazar: page (update) — Changes the page state
curl -X POST https://app.getera.io/api/v1/pages/PAGE_ID/actions/set_page_status \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"status":"draft"}'{
"ok": true,
"result": "…",
"events": [
"site.page_status_changed"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.pages.setPageStatus("PAGE_ID", {
status: "draft"
})era pages set_page_status PAGE_ID \
--status "draft"{
"name": "era__site__set_page_status",
"arguments": {
"id": "PAGE_ID",
"status": "draft"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 page_not_found, no_change, homepage_must_stay_published · 429 çok sık istek
site.set_policy
Yasal sayfayı kaydet — Gizlilik, kullanım koşulları veya çerezler — sitenin adresi olan üç sayfa.
Gereken izin site:manage · veriyi değiştirir
https://app.getera.io/api/v1/policies/actions/set_policy- Asıl adres:
POST /api/v1/actions/site.set_policy
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
siteId | uuid | evet | Site · kimliği: site |
policyType | string (enum) | evet | Hangisi · İzin verilen değerler: privacy_policy, terms_of_service, cookie_policy |
title | string | evet | Başlık · en çok 255 |
content | string | evet | Metin · en çok 200000 |
isActive | boolean | Sitede gösterilir |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
site_not_found | Site bu çalışma alanında bulunmalı. |
Yayımladığı olaylar: site.policy_changed
Neye yazar: policy (upsert) — Writes the legal page
curl -X POST https://app.getera.io/api/v1/policies/actions/set_policy \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"siteId":"SITE_ID","policyType":"privacy_policy","title":"Title","content":"Text"}'{
"ok": true,
"result": "…",
"events": [
"site.policy_changed"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.policies.setPolicy({
siteId: "SITE_ID",
policyType: "privacy_policy",
title: "Title",
content: "Text"
})era policies set_policy \
--site-id "SITE_ID" \
--policy-type "privacy_policy" \
--title "Title" \
--content "Text"{
"name": "era__site__set_policy",
"arguments": {
"siteId": "SITE_ID",
"policyType": "privacy_policy",
"title": "Title",
"content": "Text"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 site_not_found · 429 çok sık istek
site.set_primary_domain
Adresi birincil yap — Bu siteye verilen bağlantıların kullandığı adres.
Gereken izin site:manage · veriyi değiştirir
https://app.getera.io/api/v1/domains/{id}/actions/set_primary_domain- Asıl adres:
POST /api/v1/actions/site.set_primary_domain
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
domainId | uuid | evet | Doldurulduğu yer: adresteki {id} · Adres · kimliği: domain |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
domain_not_found | Adres burada kayıtlı olmalı. |
not_verified | Yalnızca doğrulanmış bir adres birincil olabilir. |
already_primary | Zaten birincil olmamalı. |
Yayımladığı olaylar: site.primary_domain_changed
Neye yazar: domain (update) — Moves the primary flag to it
curl -X POST https://app.getera.io/api/v1/domains/DOMAIN_ID/actions/set_primary_domain \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{}'{
"ok": true,
"result": "…",
"events": [
"site.primary_domain_changed"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.domains.setPrimaryDomain("DOMAIN_ID")era domains set_primary_domain DOMAIN_ID{
"name": "era__site__set_primary_domain",
"arguments": {
"domainId": "DOMAIN_ID"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 domain_not_found, not_verified, already_primary · 429 çok sık istek
site.set_redirect
Yönlendirme ekle — Bir sayfa taşındıktan sonra eski adresin çalışmasını sağlar.
Gereken izin site:manage · veriyi değiştirir
https://app.getera.io/api/v1/page_redirects/actions/set_redirect- Asıl adres:
POST /api/v1/actions/site.set_redirect
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
siteId | uuid | evet | Site · kimliği: site |
fromPath | string | evet | Eski adres · en çok 500 |
toPath | string | evet | Gittiği yer · en çok 500 |
statusCode | number | Tür · Kalıcı taşıma için 301, henüz karar vermediyseniz 302. · en az 301 · en çok 308 | |
note | string | Neden · en çok 300 |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
site_not_found | Site bu çalışma alanında bulunmalı. |
invalid_path | İki taraf da bu sitede bir yol olmalı. |
redirect_loop | Bir adres kendine yönlendirilemez. |
Yayımladığı olaylar: site.redirect_changed
Neye yazar: page_redirect (upsert) — Writes the redirect
curl -X POST https://app.getera.io/api/v1/page_redirects/actions/set_redirect \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"siteId":"SITE_ID","fromPath":"Old address","toPath":"Goes to"}'{
"ok": true,
"result": "…",
"events": [
"site.redirect_changed"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.pageRedirects.setRedirect({
siteId: "SITE_ID",
fromPath: "Old address",
toPath: "Goes to"
})era page_redirects set_redirect \
--site-id "SITE_ID" \
--from-path "Old address" \
--to-path "Goes to"{
"name": "era__site__set_redirect",
"arguments": {
"siteId": "SITE_ID",
"fromPath": "Old address",
"toPath": "Goes to"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 site_not_found, invalid_path, redirect_loop · 429 çok sık istek
site.set_site_info
Şirket bilgilerini kaydet — Sitenin her sayfasının taşıdığı ad, logolar ve açıklama.
Gereken izin site:manage · veriyi değiştirir
https://app.getera.io/api/v1/site_infos/actions/set_site_info- Asıl adres:
POST /api/v1/actions/site.set_site_info
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
siteId | uuid | evet | Site · kimliği: site |
companyName | string | evet | Şirket adı · en çok 255 |
companyDescription | string | Hakkında · en çok 8000 | |
slogan | string | Slogan · en çok 255 | |
foundedYear | number | Kuruluş · en az 1800 | |
footerText | string | Alt bilgi metni · en çok 2000 | |
footerCopyright | string | Telif hakkı satırı · en çok 255 | |
websiteUrl | string | Web sitesi · en çok 500 | |
metaDescription | string | Arama açıklaması · en çok 2000 | |
metaKeywords | string | Anahtar kelimeler · en çok 500 | |
logoLightId | uuid | Logo (açık) · kimliği: file | |
logoDarkId | uuid | Logo (koyu) · kimliği: file | |
faviconId | uuid | Site simgesi · kimliği: file |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
site_not_found | Site bu çalışma alanında bulunmalı. |
invalid_founded_year | Kuruluş yılı 1800 ile bu yıl arasındadır. |
file_not_found | Her görsel bu çalışma alanında bir dosya olmalı. |
Yayımladığı olaylar: site.info_changed
Neye yazar: site_info (upsert) — Writes the one row this site has
curl -X POST https://app.getera.io/api/v1/site_infos/actions/set_site_info \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"siteId":"SITE_ID","companyName":"Company name"}'{
"ok": true,
"result": "…",
"events": [
"site.info_changed"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.siteInfos.setSiteInfo({
siteId: "SITE_ID",
companyName: "Company name"
})era site_infos set_site_info \
--site-id "SITE_ID" \
--company-name "Company name"{
"name": "era__site__set_site_info",
"arguments": {
"siteId": "SITE_ID",
"companyName": "Company name"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 site_not_found, invalid_founded_year, file_not_found · 429 çok sık istek
site.set_site_widgets
Site eklentilerini ayarla — WhatsApp, çerez onayı, dil, koyu mod, duyuru ve başa dön düğmeleri.
Gereken izin site:write · veriyi değiştirir
https://app.getera.io/api/v1/themes/{id}/actions/set_site_widgets- Asıl adres:
POST /api/v1/actions/site.set_site_widgets
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
themeId | uuid | evet | Doldurulduğu yer: adresteki {id} · Tema · kimliği: theme |
widgets | object / array | evet | Bileşenler |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
theme_not_found | Tema bu çalışma alanında bulunmalı. |
theme_is_published | Yayındaki bir tema yerinde düzenlenemez. |
archived | Arşivlenmiş bir tema düzenlenemez. |
invalid_widgets | Yalnızca tanınan ve açık/kapalı ayarı geçerli olan bileşenler kabul edilir. |
Yayımladığı olaylar: site.theme_changed
Neye yazar: theme (update) — Writes config.widgets
curl -X POST https://app.getera.io/api/v1/themes/THEME_ID/actions/set_site_widgets \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"widgets":{}}'{
"ok": true,
"result": "…",
"events": [
"site.theme_changed"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.themes.setSiteWidgets("THEME_ID", {
widgets: {}
})era themes set_site_widgets THEME_ID --data '{"widgets":{}}'{
"name": "era__site__set_site_widgets",
"arguments": {
"themeId": "THEME_ID",
"widgets": {}
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 theme_not_found, theme_is_published, archived, invalid_widgets · 429 çok sık istek
site.set_theme_seo
Arama bilgilerini ayarla — Site geneli arama varsayılanları ve sayfa bazında geçersiz kılmalar.
Gereken izin site:write · veriyi değiştirir
https://app.getera.io/api/v1/themes/{id}/actions/set_theme_seo- Asıl adres:
POST /api/v1/actions/site.set_theme_seo
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
themeId | uuid | evet | Doldurulduğu yer: adresteki {id} · Tema · kimliği: theme |
seo | object / array | Site varsayılanları | |
pageId | uuid | Sayfa · kimliği: page | |
pageSeo | object / array | Sayfaya özel ayarlar |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
theme_not_found | Tema bu çalışma alanında bulunmalı. |
theme_is_published | Yayındaki bir tema yerinde düzenlenemez. |
page_not_found | Sayfa ayarları bu sitede bir sayfa gerektirir. |
invalid_seo | SEO bölümleri nesnedir. |
meta_title_too_long | Meta başlık en fazla 255 karakter olabilir. |
Yayımladığı olaylar: site.theme_changed
Neye yazar: theme (update) — Writes config.seo and config.pageSeo
curl -X POST https://app.getera.io/api/v1/themes/THEME_ID/actions/set_theme_seo \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"seo":{}}'{
"ok": true,
"result": "…",
"events": [
"site.theme_changed"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.themes.setThemeSeo("THEME_ID", {
seo: {}
})era themes set_theme_seo THEME_ID --data '{"seo":{}}'{
"name": "era__site__set_theme_seo",
"arguments": {
"themeId": "THEME_ID",
"seo": {}
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 theme_not_found, theme_is_published, page_not_found, invalid_seo, meta_title_too_long · 429 çok sık istek
site.set_theme_tokens
Temayı yeniden biçimlendir — Renkler, yazı tipi ve boşluklar — tüm palet bir arada.
Gereken izin site:write · veriyi değiştirir
https://app.getera.io/api/v1/themes/{id}/actions/set_theme_tokens- Asıl adres:
POST /api/v1/actions/site.set_theme_tokens
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
themeId | uuid | evet | Doldurulduğu yer: adresteki {id} · Tema · kimliği: theme |
colors | object / array | Palet | |
typography | object / array | Tipografi | |
layout | object / array | Düzen | |
darkMode | object / array | Koyu mod | |
motion | object / array | Hareket |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
theme_not_found | Tema bu çalışma alanında bulunmalı. |
theme_is_published | Yayındaki bir tema yerinde düzenlenemez. |
missing_colour_token | Palet on yedi değerin hepsini taşır. |
unknown_font | Yazı tipi, sitenin yüklediği yazı tiplerinden biri olmalı. |
invalid_tokens | Boyutlar, ölçekler ve seçenekler aralıkta olmalı. |
Yayımladığı olaylar: site.theme_changed
Neye yazar: theme (update) — Writes the token sections of config
curl -X POST https://app.getera.io/api/v1/themes/THEME_ID/actions/set_theme_tokens \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"colors":{}}'{
"ok": true,
"result": "…",
"events": [
"site.theme_changed"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.themes.setThemeTokens("THEME_ID", {
colors: {}
})era themes set_theme_tokens THEME_ID --data '{"colors":{}}'{
"name": "era__site__set_theme_tokens",
"arguments": {
"themeId": "THEME_ID",
"colors": {}
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 theme_not_found, theme_is_published, missing_colour_token, unknown_font, invalid_tokens · 429 çok sık istek
site.share_links
Siteme bak — Sitelerin canlı adresleri ve taslak/yayında durumu — telefonda açılan bağlantılar.
Gereken izin site:read · yalnız okur
https://app.getera.io/api/v1/actions/site.share_linksGirdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
siteId | uuid | Site · Boş = her site. · kimliği: site |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
site_not_found | Bu site bulunamadı. |
Yayımladığı olaylar: site.links_shared
curl -X POST https://app.getera.io/api/v1/actions/site.share_links \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"siteId":"SITE_ID"}'{
"ok": true,
"result": "…",
"events": [
"site.links_shared"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.actions.run("site.share_links", {
siteId: "SITE_ID"
})era site share_links \
--site-id "SITE_ID"{
"name": "era__site__share_links",
"arguments": {
"siteId": "SITE_ID"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:read izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 site_not_found · 429 çok sık istek
site.snapshot_theme
Site sürümünü kaydet — Temanın şu anki hâlinin bir kopyasını saklar; böylece sonra geri yüklenebilir.
Gereken izin site:manage · siler ya da geri alınamaz
https://app.getera.io/api/v1/theme_snapshots/actions/snapshot_theme- Asıl adres:
POST /api/v1/actions/site.snapshot_theme
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
themeId | uuid | evet | Tema · kimliği: theme |
kind | string (enum) | Tür · İzin verilen değerler: auto, manual, before | |
label | string | Ad · en çok 120 |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
theme_not_found | Tema bu çalışma alanında bulunmalı. |
label_required | Adlandırılmış bir sürümün adı olmalı. |
Neye yazar: theme_snapshot (insert) — Stores a copy of the theme configuration; theme_snapshot (delete) — Drops the oldest automatic copies beyond the kept number
curl -X POST https://app.getera.io/api/v1/theme_snapshots/actions/snapshot_theme \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"themeId":"THEME_ID"}'{
"ok": true,
"result": "…",
"events": []
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.themeSnapshots.snapshotTheme({
themeId: "THEME_ID"
})era theme_snapshots snapshot_theme \
--theme-id "THEME_ID"{
"name": "era__site__snapshot_theme",
"arguments": {
"themeId": "THEME_ID"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 theme_not_found, label_required · 429 çok sık istek
site.start_deploy
Siteyi yayınla — Sitenin yeni bir sürümünü yayın altyapısına (<slug>.getera.site) gönderir; yükleme bu işlemin etrafında yapılır.
Gereken izin site:manage · dışarıya ulaşır (gönderir, yayımlar ya da ücret alır)
https://app.getera.io/api/v1/site_deploys/{id}/actions/start_deploy- Asıl adres:
POST /api/v1/actions/site.start_deploy
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
siteId | uuid | evet | Site · kimliği: site |
kind | string (enum) | Tür · İzin verilen değerler: static, theme | |
provider | string (enum) | Koşul · İzin verilen değerler: cloudflare, local | |
source | string (enum) | Nereden · İzin verilen değerler: api, cli, desktop, chat, screen, rollback | |
fileCount | number | Dosyalar · en az 0 | |
totalBytes | number | Bayt cinsinden boyut · en az 0 | |
hasWorker | boolean | Worker girişi var | |
manifest | object / array | Dosyalar ve özetleri | |
note | string | Not · en çok 300 | |
rollbackOf | uuid | Doldurulduğu yer: adresteki {id} · Geri yüklenecek sürüm · kimliği: site_deploy |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
site_not_found | Site bu çalışma alanında bulunmalı. |
bundle_too_large | Paket yayın sınırlarına sığmalı (20.000 dosya, 500 MB). |
deploy_in_progress | Bir sitenin aynı anda yalnızca bir yayını çalışır. |
version_not_found | Geri yüklenecek sürüm daha önce yayına girmiş olmalı. |
Yayımladığı olaylar: site.deploy_started
Neye yazar: site_deploy (insert) — A new version, uploading; site_deploy (update) — A stale upload is marked failed
curl -X POST https://app.getera.io/api/v1/site_deploys/SITE_DEPLOY_ID/actions/start_deploy \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"siteId":"SITE_ID"}'{
"ok": true,
"result": "…",
"events": [
"site.deploy_started"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.siteDeploys.startDeploy("SITE_DEPLOY_ID", {
siteId: "SITE_ID"
})era site_deploys start_deploy SITE_DEPLOY_ID \
--site-id "SITE_ID"{
"name": "era__site__start_deploy",
"arguments": {
"rollbackOf": "SITE_DEPLOY_ID",
"siteId": "SITE_ID"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 site_not_found, bundle_too_large, deploy_in_progress, version_not_found · 429 çok sık istek
site.submit_contact
Mesaj gönder — Herkese açık sitedeki iletişim formu.
Gereken izin site:write · dışarıya ulaşır (gönderir, yayımlar ya da ücret alır) · Yayındaki bir siteden de çağrılabilir (visitor)
/api/site/v1/{siteId}, örneğin @getera/storefront ile). API anahtarı ya da token ile istek reddedilir (403 site_only).https://app.getera.io/api/v1/contact_submissions/actions/submit_contact- Asıl adres:
POST /api/v1/actions/site.submit_contact
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
siteId | uuid | evet | Site · kimliği: site |
fullname | string | evet | Ad · en çok 255 |
email | evet | E-posta · en çok 255 | |
subject | string | evet | Konu · en çok 500 |
company | string | Şirket · en çok 255 | |
phone | phone | Telefon · en çok 50 | |
countryCode | number | Ülke kodu · en az 1 · en çok 999 | |
projectDetails | string | Mesaj · en çok 20000 | |
userAgent | string | Tarayıcı · en çok 500 | |
website | string | Web sitesi · Bunu boş bırakın. · en çok 255 |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
site_not_found | Site bulunmalı. |
honeypot | Tuzak alan boş olmalı. |
missing_details | Ad ve konu zorunludur. |
rate_limited | Aynı adresten yalnızca belli aralıklarla mesaj gönderilebilir. |
Yayımladığı olaylar: site.contact_submitted
Neye yazar: contact_submission (insert) — Records the message
Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 site_not_found, honeypot, missing_details, rate_limited · 429 çok sık istek
site.tag_post
Yazıyı etiketle — Bir etiket ekler ve kullanım sayısını doğru tutar.
Gereken izin site:write · veriyi değiştirir
https://app.getera.io/api/v1/blog_tags/{id}/actions/tag_post- Asıl adres:
POST /api/v1/actions/site.tag_post
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
postId | uuid | evet | Yazı · kimliği: blog_post |
tagId | uuid | evet | Doldurulduğu yer: adresteki {id} · Etiket · kimliği: blog_tag |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
post_not_found | Yazı bu çalışma alanında bulunmalı. |
tag_not_found | Etiket aynı sitede olmalı. |
already_tagged | Yazı onu zaten taşımamalı. |
Yayımladığı olaylar: site.post_tagged
Neye yazar: blog_post_tag (insert) — Links the tag to the post; blog_tag (update) — Increments the usage count
curl -X POST https://app.getera.io/api/v1/blog_tags/BLOG_TAG_ID/actions/tag_post \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"postId":"BLOG_POST_ID"}'{
"ok": true,
"result": "…",
"events": [
"site.post_tagged"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.blogTags.tagPost("BLOG_TAG_ID", {
postId: "BLOG_POST_ID"
})era blog_tags tag_post BLOG_TAG_ID \
--post-id "BLOG_POST_ID"{
"name": "era__site__tag_post",
"arguments": {
"tagId": "BLOG_TAG_ID",
"postId": "BLOG_POST_ID"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 post_not_found, tag_not_found, already_tagged · 429 çok sık istek
site.unpublish
Siteyi yayından kaldır — Ziyaretçiler 404 yerine “yayında değil” görür.
Gereken izin site: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/sites/{id}/actions/unpublish- Asıl adres:
POST /api/v1/actions/site.unpublish
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
siteId | uuid | evet | Doldurulduğu yer: adresteki {id} · Site · kimliği: site |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
site_not_found | Site bu çalışma alanında bulunmalı. |
no_change | Şu anda yayında olmalı. |
Yayımladığı olaylar: site.unpublished
Neye yazar: site (update) — Marks it unpublished
curl -X POST https://app.getera.io/api/v1/sites/SITE_ID/actions/unpublish \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{}'{
"ok": true,
"result": "…",
"events": [
"site.unpublished"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.sites.unpublish("SITE_ID")era sites unpublish SITE_ID{
"name": "era__site__unpublish",
"arguments": {
"siteId": "SITE_ID"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 site_not_found, no_change · 429 çok sık istek
site.unpublish_post
Yazıyı yayından kaldır — Taslağa ya da arşive geri alır. Yayın tarihi korunur.
Gereken izin site:write · dışarıya ulaşır (gönderir, yayımlar ya da ücret alır)
https://app.getera.io/api/v1/blog_posts/{id}/actions/unpublish_post- Asıl adres:
POST /api/v1/actions/site.unpublish_post
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
id | uuid | evet | Doldurulduğu yer: adresteki {id} · Yazı · kimliği: blog_post |
status | string (enum) | Durum · İzin verilen değerler: draft, archived |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
post_not_found | Yazı bu çalışma alanında bulunmalı. |
no_change | Zaten bu durumda olmamalı. |
Yayımladığı olaylar: site.post_unpublished
Neye yazar: blog_post (update) — Changes the post state
curl -X POST https://app.getera.io/api/v1/blog_posts/BLOG_POST_ID/actions/unpublish_post \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"status":"draft"}'{
"ok": true,
"result": "…",
"events": [
"site.post_unpublished"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.blogPosts.unpublishPost("BLOG_POST_ID", {
status: "draft"
})era blog_posts unpublish_post BLOG_POST_ID \
--status "draft"{
"name": "era__site__unpublish_post",
"arguments": {
"id": "BLOG_POST_ID",
"status": "draft"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 post_not_found, no_change · 429 çok sık istek
site.untag_post
Etiketi kaldır — Etiketi çıkarır ve kullanım sayısını azaltır.
Gereken izin site:write · siler ya da geri alınamaz
https://app.getera.io/api/v1/blog_tags/{id}/actions/untag_post- Asıl adres:
POST /api/v1/actions/site.untag_post
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
postId | uuid | evet | Yazı · kimliği: blog_post |
tagId | uuid | evet | Doldurulduğu yer: adresteki {id} · Etiket · kimliği: blog_tag |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
post_not_found | Yazı bu çalışma alanında bulunmalı. |
not_tagged | Yazı etiketi gerçekten taşımalı. |
Yayımladığı olaylar: site.post_tagged
Neye yazar: blog_post_tag (delete) — Unlinks the tag; blog_tag (update) — Decrements the usage count
curl -X POST https://app.getera.io/api/v1/blog_tags/BLOG_TAG_ID/actions/untag_post \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"postId":"BLOG_POST_ID"}'{
"ok": true,
"result": "…",
"events": [
"site.post_tagged"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.blogTags.untagPost("BLOG_TAG_ID", {
postId: "BLOG_POST_ID"
})era blog_tags untag_post BLOG_TAG_ID \
--post-id "BLOG_POST_ID"{
"name": "era__site__untag_post",
"arguments": {
"tagId": "BLOG_TAG_ID",
"postId": "BLOG_POST_ID"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 post_not_found, not_tagged · 429 çok sık istek
site.update_page
Sayfayı düzenle — Başlık, adres ve arama motoru bilgileri. Yayındaki sayfanın adresini değiştirmek yönlendirme bırakır.
Gereken izin site:write · veriyi değiştirir
https://app.getera.io/api/v1/pages/{id}/actions/update_page- REST kısayolu:
PATCH /api/v1/pages/{id} - Asıl adres:
POST /api/v1/actions/site.update_page
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
id | uuid | evet | Doldurulduğu yer: adresteki {id} · Sayfa · kimliği: page |
title | string | Başlık · en çok 255 | |
slug | string | Adres · en çok 255 | |
metaTitle | string | Arama başlığı · en çok 255 | |
metaDescription | string | Arama açıklaması · en çok 2000 | |
metaKeywords | string | Anahtar kelimeler · en çok 500 | |
sortOrder | number | Konum · en az 0 |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
page_not_found | Sayfa bu çalışma alanında bulunmalı. |
slug_taken | Yeni adres bu sitede boşta olmalı. |
Yayımladığı olaylar: site.page_updated
Neye yazar: page (update) — Writes the page; page_redirect (upsert) — Keeps the old address working when a live page is renamed
curl -X POST https://app.getera.io/api/v1/pages/PAGE_ID/actions/update_page \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"title":"Title"}'{
"ok": true,
"result": "…",
"events": [
"site.page_updated"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.pages.updatePage("PAGE_ID", {
title: "Title"
})era pages update_page PAGE_ID \
--title "Title"{
"name": "era__site__update_page",
"arguments": {
"id": "PAGE_ID",
"title": "Title"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 page_not_found, slug_taken · 429 çok sık istek
site.verify_domain
Adresi doğrula — Çözülen TXT kayıtlarını ürettiğimiz doğrulama koduyla karşılaştırır.
Gereken izin site:manage · veriyi değiştirir
https://app.getera.io/api/v1/domains/{id}/actions/verify_domain- Asıl adres:
POST /api/v1/actions/site.verify_domain
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
domainId | uuid | evet | Doldurulduğu yer: adresteki {id} · Adres · kimliği: domain |
observedTxt | string | evet | Görülen TXT kayıtları · Virgülle ayrılmış. Rota DNS’i çözümler; kararı aksiyon verir. · en çok 8000 |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
domain_not_found | Adres burada kayıtlı olmalı. |
already_verified | Zaten doğrulanmış olmamalı. |
no_token | Aranacak bir doğrulama kaydı olmalı. |
token_not_found | Kayıt DNS’te görünür olmalı. |
Yayımladığı olaylar: site.domain_verified
Neye yazar: domain (update) — Marks it verified and clears the token
curl -X POST https://app.getera.io/api/v1/domains/DOMAIN_ID/actions/verify_domain \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"observedTxt":"Observed TXT records"}'{
"ok": true,
"result": "…",
"events": [
"site.domain_verified"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.domains.verifyDomain("DOMAIN_ID", {
observedTxt: "Observed TXT records"
})era domains verify_domain DOMAIN_ID \
--observed-txt "Observed TXT records"{
"name": "era__site__verify_domain",
"arguments": {
"domainId": "DOMAIN_ID",
"observedTxt": "Observed TXT records"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde site:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 domain_not_found, already_verified, no_token, token_not_found · 429 çok sık istek
Veri modelleri
BlogAuthor
Tablo blog_author · Kaynak blog_authors
GET /api/v1/blog_authorsGET /api/v1/blog_authors/{id}PATCH /api/v1/blog_authors/{id}→site.save_blog_author
| Sütun | Tür | Boş olabilir | İzin verilen değerler | Bağlı olduğu tablo |
|---|---|---|---|---|
id | string (uuid) · uuid | |||
organization_id | string (uuid) · uuid | organization | ||
workspace_id | string (uuid) · uuid | workspace | ||
site_id | string (uuid) · uuid | site | ||
user_id | string (uuid) · uuid | app_user | ||
display_name | string · text | |||
bio | string · text | evet | ||
is_public | boolean · bool | |||
created_at | string (date-time) · timestamptz | |||
updated_at | string (date-time) · timestamptz |
Birincil anahtar: id
Tekil: site_id, user_id
BlogCategory
Tablo blog_category · Kaynak blog_categories
GET /api/v1/blog_categoriesGET /api/v1/blog_categories/{id}PATCH /api/v1/blog_categories/{id}→site.save_blog_category
| Sütun | Tür | Boş olabilir | İzin verilen değerler | Bağlı olduğu tablo |
|---|---|---|---|---|
id | string (uuid) · uuid | |||
organization_id | string (uuid) · uuid | organization | ||
workspace_id | string (uuid) · uuid | workspace | ||
site_id | string (uuid) · uuid | site | ||
name | string · text | |||
slug | string · text | |||
description | string · text | evet | ||
color | string · text | evet | ||
icon | string · text | evet | ||
sort_order | integer · int4 | |||
is_active | boolean · bool | |||
created_at | string (date-time) · timestamptz | |||
updated_at | string (date-time) · timestamptz |
Birincil anahtar: id
Tekil: site_id, slug
Denetimler:
CHECK (((color IS NULL) OR (color ~ '^#[0-9a-fA-F]{6}$'::text)))
BlogPostTag
Tablo blog_post_tag · Kaynak blog_post_tags
GET /api/v1/blog_post_tagsGET /api/v1/blog_post_tags/{id}
| Sütun | Tür | Boş olabilir | İzin verilen değerler | Bağlı olduğu tablo |
|---|---|---|---|---|
organization_id | string (uuid) · uuid | organization | ||
workspace_id | string (uuid) · uuid | workspace | ||
post_id | string (uuid) · uuid | blog_post | ||
tag_id | string (uuid) · uuid | blog_tag |
Birincil anahtar: post_id, tag_id
BlogPost
Tablo blog_post · Kaynak blog_posts
GET /api/v1/blog_postsGET /api/v1/blog_posts/{id}
| Sütun | Tür | Boş olabilir | İzin verilen değerler | Bağlı olduğu tablo |
|---|---|---|---|---|
id | string (uuid) · uuid | |||
organization_id | string (uuid) · uuid | organization | ||
workspace_id | string (uuid) · uuid | workspace | ||
site_id | string (uuid) · uuid | site | ||
title | string · text | |||
slug | string · text | |||
excerpt | string · text | evet | ||
content | object · jsonb | |||
status | string · text | draft, published, archived | ||
published_at | string (date-time) · timestamptz | evet | ||
author_id | string (uuid) · uuid | evet | blog_author | |
category_id | string (uuid) · uuid | evet | blog_category | |
meta_title | string · text | evet | ||
meta_description | string · text | evet | ||
meta_keywords | string · text | evet | ||
view_count | integer · int4 | |||
is_featured | boolean · bool | |||
featured_image | string (uuid) · uuid | evet | file | |
created_at | string (date-time) · timestamptz | |||
updated_at | string (date-time) · timestamptz | |||
scheduled_at | string (date-time) · timestamptz | evet |
Birincil anahtar: id
Tekil: site_id, slug
Denetimler:
CHECK ((jsonb_typeof(content) = 'object'::text))CHECK ((view_count >= 0))
BlogTag
Tablo blog_tag · Kaynak blog_tags
GET /api/v1/blog_tagsGET /api/v1/blog_tags/{id}PATCH /api/v1/blog_tags/{id}→site.save_blog_tag
| Sütun | Tür | Boş olabilir | İzin verilen değerler | Bağlı olduğu tablo |
|---|---|---|---|---|
id | string (uuid) · uuid | |||
organization_id | string (uuid) · uuid | organization | ||
workspace_id | string (uuid) · uuid | workspace | ||
site_id | string (uuid) · uuid | site | ||
name | string · text | |||
slug | string · text | |||
usage_count | integer · int4 | |||
is_public | boolean · bool | |||
created_at | string (date-time) · timestamptz |
Birincil anahtar: id
Tekil: site_id, slug
Denetimler:
CHECK ((usage_count >= 0))
ClientReference
Tablo client_reference · Kaynak client_references
GET /api/v1/client_referencesGET /api/v1/client_references/{id}
| Sütun | Tür | Boş olabilir | İzin verilen değerler | Bağlı olduğu tablo |
|---|---|---|---|---|
id | string (uuid) · uuid | |||
organization_id | string (uuid) · uuid | organization | ||
workspace_id | string (uuid) · uuid | workspace | ||
site_id | string (uuid) · uuid | site | ||
client_name | string · text | |||
client_sector | string · text | evet | ||
client_logo | string (uuid) · uuid | evet | file | |
project_title | string · text | evet | ||
project_description | string · text | evet | ||
project_images | string[] · uuid[] | |||
project_url | string · text | evet | ||
testimonial | string · text | evet | ||
testimonial_author | string · text | evet | ||
testimonial_position | string · text | evet | ||
is_featured | boolean · bool | |||
is_public | boolean · bool | |||
sort_order | integer · int4 | |||
created_at | string (date-time) · timestamptz | |||
updated_at | string (date-time) · timestamptz |
Birincil anahtar: id
ContactInfo
Tablo contact_info · Kaynak contact_infos
GET /api/v1/contact_infosGET /api/v1/contact_infos/{id}
| Sütun | Tür | Boş olabilir | İzin verilen değerler | Bağlı olduğu tablo |
|---|---|---|---|---|
id | string (uuid) · uuid | |||
organization_id | string (uuid) · uuid | organization | ||
workspace_id | string (uuid) · uuid | workspace | ||
site_id | string (uuid) · uuid | site | ||
email | string · text | evet | ||
phone | string · text | evet | ||
address | string · text | evet | ||
instagram_url | string · text | evet | ||
tiktok_url | string · text | evet | ||
linkedin_url | string · text | evet | ||
facebook_url | string · text | evet | ||
youtube_url | string · text | evet | ||
twitter_url | string · text | evet | ||
is_public | boolean · bool | |||
created_at | string (date-time) · timestamptz | |||
updated_at | string (date-time) · timestamptz |
Birincil anahtar: id
Tekil: site_id
ContactSubmission
Tablo contact_submission · Kaynak contact_submissions
GET /api/v1/contact_submissionsGET /api/v1/contact_submissions/{id}
| Sütun | Tür | Boş olabilir | İzin verilen değerler | Bağlı olduğu tablo |
|---|---|---|---|---|
id | string (uuid) · uuid | |||
organization_id | string (uuid) · uuid | organization | ||
workspace_id | string (uuid) · uuid | workspace | ||
site_id | string (uuid) · uuid | site | ||
fullname | string · text | |||
company | string · text | evet | ||
email | string · text | |||
phone | string · text | evet | ||
country_code | integer · int2 | evet | ||
subject | string · text | |||
project_details | string · text | evet | ||
user_agent | string · text | evet | ||
status | string · text | new, read, replied, archived, spam | ||
created_at | string (date-time) · timestamptz | |||
updated_at | string (date-time) · timestamptz |
Birincil anahtar: id
Domain
Tablo domain · Kaynak domains
GET /api/v1/domainsGET /api/v1/domains/{id}POST /api/v1/domains→site.add_domain
| Sütun | Tür | Boş olabilir | İzin verilen değerler | Bağlı olduğu tablo |
|---|---|---|---|---|
id | string (uuid) · uuid | |||
organization_id | string (uuid) · uuid | organization | ||
workspace_id | string (uuid) · uuid | workspace | ||
site_id | string (uuid) · uuid | site | ||
host | string · text | |||
kind | string · text | |||
is_primary | boolean · bool | |||
status | string · text | |||
ssl_status | string · text | |||
created_at | string (date-time) · timestamptz | |||
verified_at | string (date-time) · timestamptz | evet |
Birincil anahtar: id
Tekil: host
FaqCategory
Tablo faq_category · Kaynak faq_categories
GET /api/v1/faq_categoriesGET /api/v1/faq_categories/{id}PATCH /api/v1/faq_categories/{id}→site.save_faq_categoryDELETE /api/v1/faq_categories/{id}→site.delete_faq_category
| Sütun | Tür | Boş olabilir | İzin verilen değerler | Bağlı olduğu tablo |
|---|---|---|---|---|
id | string (uuid) · uuid | |||
organization_id | string (uuid) · uuid | organization | ||
workspace_id | string (uuid) · uuid | workspace | ||
site_id | string (uuid) · uuid | site | ||
name | string · text | |||
slug | string · text | |||
description | string · text | evet | ||
icon | string · text | evet | ||
sort_order | integer · int4 | |||
is_active | boolean · bool | |||
created_at | string (date-time) · timestamptz | |||
updated_at | string (date-time) · timestamptz |
Birincil anahtar: id
Tekil: site_id, slug
FaqItem
Tablo faq_item · Kaynak faq_items
GET /api/v1/faq_itemsGET /api/v1/faq_items/{id}PATCH /api/v1/faq_items/{id}→site.save_faq_itemDELETE /api/v1/faq_items/{id}→site.delete_faq_item
| Sütun | Tür | Boş olabilir | İzin verilen değerler | Bağlı olduğu tablo |
|---|---|---|---|---|
id | string (uuid) · uuid | |||
organization_id | string (uuid) · uuid | organization | ||
workspace_id | string (uuid) · uuid | workspace | ||
site_id | string (uuid) · uuid | site | ||
category_id | string (uuid) · uuid | evet | faq_category | |
question | string · text | |||
answer | string · text | |||
sort_order | integer · int4 | |||
is_active | boolean · bool | |||
created_at | string (date-time) · timestamptz | |||
updated_at | string (date-time) · timestamptz |
Birincil anahtar: id
News
Tablo news · Kaynak newses
GET /api/v1/newsesGET /api/v1/newses/{id}PATCH /api/v1/newses/{id}→site.save_news
| Sütun | Tür | Boş olabilir | İzin verilen değerler | Bağlı olduğu tablo |
|---|---|---|---|---|
id | string (uuid) · uuid | |||
organization_id | string (uuid) · uuid | organization | ||
workspace_id | string (uuid) · uuid | workspace | ||
site_id | string (uuid) · uuid | site | ||
title | string · text | |||
slug | string · text | |||
description | string · text | evet | ||
content | object · jsonb | |||
status | string · text | draft, published, archived | ||
published_at | string (date-time) · timestamptz | evet | ||
created_by | string (uuid) · uuid | evet | app_user | |
updated_by | string (uuid) · uuid | evet | app_user | |
meta_title | string · text | evet | ||
meta_description | string · text | evet | ||
view_count | integer · int4 | |||
is_featured | boolean · bool | |||
featured_image | string (uuid) · uuid | evet | file | |
created_at | string (date-time) · timestamptz | |||
updated_at | string (date-time) · timestamptz | |||
scheduled_at | string (date-time) · timestamptz | evet |
Birincil anahtar: id
Tekil: site_id, slug
Denetimler:
CHECK ((jsonb_typeof(content) = 'object'::text))CHECK ((view_count >= 0))
PageRedirect
Tablo page_redirect · Kaynak page_redirects
GET /api/v1/page_redirectsGET /api/v1/page_redirects/{id}
| Sütun | Tür | Boş olabilir | İzin verilen değerler | Bağlı olduğu tablo |
|---|---|---|---|---|
id | string (uuid) · uuid | |||
organization_id | string (uuid) · uuid | organization | ||
workspace_id | string (uuid) · uuid | workspace | ||
site_id | string (uuid) · uuid | site | ||
from_path | string · text | |||
to_path | string · text | |||
status_code | integer · int4 | |||
note | string · text | evet | ||
is_public | boolean · bool | |||
created_at | string (date-time) · timestamptz | |||
updated_at | string (date-time) · timestamptz |
Birincil anahtar: id
Tekil: site_id, from_path
Denetimler:
CHECK ((from_path ~~ '/%'::text))CHECK ((from_path <> to_path))CHECK ((status_code = ANY (ARRAY[301, 302, 307, 308])))CHECK ((to_path ~~ '/%'::text))
Page
Tablo page · Kaynak pages
GET /api/v1/pagesGET /api/v1/pages/{id}PATCH /api/v1/pages/{id}→site.update_pageDELETE /api/v1/pages/{id}→site.delete_page
| Sütun | Tür | Boş olabilir | İzin verilen değerler | Bağlı olduğu tablo |
|---|---|---|---|---|
id | string (uuid) · uuid | |||
organization_id | string (uuid) · uuid | organization | ||
workspace_id | string (uuid) · uuid | workspace | ||
site_id | string (uuid) · uuid | site | ||
title | string · text | |||
slug | string · text | |||
meta_title | string · text | evet | ||
meta_description | string · text | evet | ||
meta_keywords | string · text | evet | ||
status | string · text | draft, published, archived | ||
parent_id | string (uuid) · uuid | evet | page | |
sort_order | integer · int4 | |||
is_homepage | boolean · bool | |||
show_in_header | boolean · bool | |||
show_in_footer | boolean · bool | |||
is_default | boolean · bool | |||
created_at | string (date-time) · timestamptz | |||
updated_at | string (date-time) · timestamptz |
Birincil anahtar: id
Tekil: site_id, slug
Policy
Tablo policy · Kaynak policies
GET /api/v1/policiesGET /api/v1/policies/{id}
| Sütun | Tür | Boş olabilir | İzin verilen değerler | Bağlı olduğu tablo |
|---|---|---|---|---|
id | string (uuid) · uuid | |||
organization_id | string (uuid) · uuid | organization | ||
workspace_id | string (uuid) · uuid | workspace | ||
site_id | string (uuid) · uuid | site | ||
policy_type | string · text | cookie_policy, privacy_policy, terms_of_service | ||
title | string · text | |||
content | string · text | |||
is_active | boolean · bool | |||
created_at | string (date-time) · timestamptz | |||
updated_at | string (date-time) · timestamptz |
Birincil anahtar: id
Tekil: site_id, policy_type
SiteCodeTheme
Tablo site_code_theme · Kaynak site_code_themes
GET /api/v1/site_code_themesGET /api/v1/site_code_themes/{id}
| Sütun | Tür | Boş olabilir | İzin verilen değerler | Bağlı olduğu tablo |
|---|---|---|---|---|
id | string (uuid) · uuid | |||
organization_id | string (uuid) · uuid | organization | ||
workspace_id | string (uuid) · uuid | workspace | ||
site_id | string (uuid) · uuid | site | ||
name | string · text | |||
manifest | object · jsonb | |||
version | integer · int4 | |||
imported_by | string (uuid) · uuid | evet | app_user | |
created_at | string (date-time) · timestamptz | |||
updated_at | string (date-time) · timestamptz |
Birincil anahtar: id
Tekil: site_id
Denetimler:
CHECK ((jsonb_typeof(manifest) = 'object'::text))CHECK (((length(name) >= 1) AND (length(name) <= 200)))
SiteContent
Tablo site_content · Kaynak site_contents
GET /api/v1/site_contentsGET /api/v1/site_contents/{id}
| Sütun | Tür | Boş olabilir | İzin verilen değerler | Bağlı olduğu tablo |
|---|---|---|---|---|
id | string (uuid) · uuid | |||
organization_id | string (uuid) · uuid | organization | ||
workspace_id | string (uuid) · uuid | workspace | ||
site_id | string (uuid) · uuid | site | ||
key | string · text | |||
kind | string · text | text, rich_text, image, link, hours, list, number, boolean, json | ||
section | string · text | |||
label | string · text | |||
help | string · text | evet | ||
value | object · jsonb | |||
sort_order | integer · int4 | |||
is_public | boolean · bool | |||
updated_by | string (uuid) · uuid | evet | app_user | |
created_at | string (date-time) · timestamptz | |||
updated_at | string (date-time) · timestamptz |
Birincil anahtar: id
Tekil: site_id, key
Denetimler:
CHECK (((help IS NULL) OR (length(help) <= 500)))CHECK ((key ~ '^[a-z0-9][a-z0-9_.-]{0,99}$'::text))CHECK (((length(label) >= 1) AND (length(label) <= 200)))CHECK ((section ~ '^[a-z0-9][a-z0-9_-]{0,49}$'::text))CHECK ((jsonb_typeof(value) = 'object'::text))
SiteDeploy
Tablo site_deploy · Kaynak site_deploys
GET /api/v1/site_deploysGET /api/v1/site_deploys/{id}
| Sütun | Tür | Boş olabilir | İzin verilen değerler | Bağlı olduğu tablo |
|---|---|---|---|---|
id | string (uuid) · uuid | |||
organization_id | string (uuid) · uuid | organization | ||
workspace_id | string (uuid) · uuid | workspace | ||
site_id | string (uuid) · uuid | site | ||
version | integer · int4 | |||
kind | string · text | static, theme | ||
provider | string · text | cloudflare, local | ||
status | string · text | uploading, live, failed, superseded, removed | ||
url | string · text | evet | ||
host | string · text | evet | ||
script_name | string · text | evet | ||
provider_version_id | string · text | evet | ||
source | string · text | api, cli, desktop, chat, screen, rollback | ||
rollback_of | string (uuid) · uuid | evet | site_deploy | |
file_count | integer · int4 | |||
total_bytes | string (int64) · int8 | |||
has_worker | boolean · bool | |||
manifest | object · jsonb | |||
log | object · jsonb | |||
error | string · text | evet | ||
note | string · text | evet | ||
created_by | string (uuid) · uuid | evet | app_user | |
created_at | string (date-time) · timestamptz | |||
finished_at | string (date-time) · timestamptz | evet |
Birincil anahtar: id
Tekil: site_id, version
SiteInfo
Tablo site_info · Kaynak site_infos
GET /api/v1/site_infosGET /api/v1/site_infos/{id}
| Sütun | Tür | Boş olabilir | İzin verilen değerler | Bağlı olduğu tablo |
|---|---|---|---|---|
id | string (uuid) · uuid | |||
organization_id | string (uuid) · uuid | organization | ||
workspace_id | string (uuid) · uuid | workspace | ||
site_id | string (uuid) · uuid | site | ||
company_name | string · text | |||
company_description | string · text | evet | ||
slogan | string · text | evet | ||
founded_year | integer · int4 | evet | ||
footer_text | string · text | evet | ||
footer_copyright | string · text | evet | ||
website_url | string · text | evet | ||
meta_description | string · text | evet | ||
meta_keywords | string[] · text[] | |||
logo_light | string (uuid) · uuid | evet | file | |
logo_dark | string (uuid) · uuid | evet | file | |
favicon | string (uuid) · uuid | evet | file | |
is_public | boolean · bool | |||
created_at | string (date-time) · timestamptz | |||
updated_at | string (date-time) · timestamptz |
Birincil anahtar: id
Tekil: site_id
Denetimler:
CHECK (((founded_year IS NULL) OR ((founded_year >= 1800) AND ((founded_year)::numeric <= EXTRACT(year FROM CURRENT_DATE)))))
Site
Tablo site · Kaynak sites
GET /api/v1/sitesGET /api/v1/sites/{id}POST /api/v1/sites→site.create_site
| Sütun | Tür | Boş olabilir | İzin verilen değerler | Bağlı olduğu tablo |
|---|---|---|---|---|
id | string (uuid) · uuid | |||
organization_id | string (uuid) · uuid | organization | ||
workspace_id | string (uuid) · uuid | workspace | ||
type | string · site_type | business, commerce, landing, portal | ||
name | string · text | |||
slug | string · text | |||
locales | string[] · text[] | |||
default_locale | string · text | |||
auth_mode | string · text | |||
published | boolean · bool | |||
created_at | string (date-time) · timestamptz | |||
updated_at | string (date-time) · timestamptz |
Birincil anahtar: id
Tekil: workspace_id, slug
ThemeSnapshot
Tablo theme_snapshot · Kaynak theme_snapshots
GET /api/v1/theme_snapshotsGET /api/v1/theme_snapshots/{id}
| Sütun | Tür | Boş olabilir | İzin verilen değerler | Bağlı olduğu tablo |
|---|---|---|---|---|
id | string (uuid) · uuid | |||
organization_id | string (uuid) · uuid | organization | ||
workspace_id | string (uuid) · uuid | workspace | ||
site_id | string (uuid) · uuid | site | ||
theme_id | string (uuid) · uuid | theme | ||
kind | string · text | auto, manual, before | ||
label | string · text | evet | ||
config | object · jsonb | |||
section_count | integer · int4 | |||
created_by | string (uuid) · uuid | evet | app_user | |
created_at | string (date-time) · timestamptz |
Birincil anahtar: id
Theme
Tablo theme · Kaynak themes
GET /api/v1/themesGET /api/v1/themes/{id}
| Sütun | Tür | Boş olabilir | İzin verilen değerler | Bağlı olduğu tablo |
|---|---|---|---|---|
id | string (uuid) · uuid | |||
organization_id | string (uuid) · uuid | organization | ||
workspace_id | string (uuid) · uuid | workspace | ||
site_id | string (uuid) · uuid | site | ||
name | string · text | |||
status | string · text | |||
version | integer · int4 | |||
config | object · jsonb | |||
schema_version | string · text | |||
parent_id | string (uuid) · uuid | evet | theme | |
custom_css | string · text | evet | ||
created_at | string (date-time) · timestamptz | |||
published_at | string (date-time) · timestamptz | evet | ||
updated_at | string (date-time) · timestamptz | |||
scheduled_at | string (date-time) · timestamptz | evet |
Birincil anahtar: id
Olaylar
İş akışları ve webhook'lar bu olaylara tepki verir.
| Olay | Ne olur | Taşıdığı alanlar |
|---|---|---|
site.auth_mode_changed | Bir site ziyaretçi giriş modunu değiştirdi. | site_id, auth_mode |
site.blocks_changed | Bir sayfa düzeni bir taslak temaya kaydedildi. | site_id, theme_id, page_id, blocks |
site.blog_taxonomy_changed | Bir blog kategorisi, etiketi ya da yazarı değişti. | id, kind |
site.contact_info_changed | İletişim bilgileri değişti. | id, siteId |
site.contact_submitted | Biri iletişim formunu doldurdu. Gelen kutusu bunun için bir konuşma açar. | id, siteId, email |
site.content_changed | Bir sitenin düzenlenebilir içeriği değişti (yeniden derleme kancası dinleyebilir). | site_id, keys |
site.created | Bir site oluşturuldu. | site_id, type, host |
site.deploy_failed | Bir sitenin yayını başarısız oldu. | site_id, deploy_id, version, error |
site.deploy_removed | Yayındaki bir site kaldırıldı. | site_id, deploy_id |
site.deploy_started | Bir sitenin yeni sürümü yüklenmeye başladı. | site_id, deploy_id, version |
site.deployed | Bir sitenin bir sürümü yayına girdi. | site_id, deploy_id, version, url |
site.domain_added | Bir site için bir adres alındı. | domain_id, site_id, host |
site.domain_removed | Bir alan adı siteden kaldırıldı. | domain_id, host |
site.domain_verified | Özel bir alan adı doğrulamayı geçti. | domain_id, host |
site.faq_changed | Bir soru, grup ya da sıralama değişti. | id, kind |
site.homepage_changed | Farklı bir sayfa ana sayfa oldu. | id, siteId |
site.info_changed | Şirket bilgileri değişti. | id, siteId |
site.links_shared | Biri (ya da Era) sitelerin nereden görüleceğini sordu. | count |
site.locale_changed | Bir sitenin varsayılan ya da sunduğu diller değişti. | site_id, default_locale, locales |
site.navigation_changed | Üst ya da alt menü değişti. | id, siteId |
site.news_published | Bir haberin durumu değişti. | id, status |
site.news_saved | Bir haber yazıldı ya da düzenlendi. | id, siteId, slug |
site.page_created | Bir sayfa eklendi. | id, siteId, slug |
site.page_deleted | Bir sayfa silindi. | id, siteId |
site.page_moved | Bir sayfa sayfa ağacında taşındı. | id, parentId |
site.page_status_changed | Bir sayfa yayımlandı, taslağa alındı ya da arşivlendi. | id, status |
site.page_updated | Bir sayfa düzenlendi. | id, slug, redirectedFrom |
site.policy_changed | Bir yasal sayfa değişti. | id, siteId, policyType |
site.post_published | Bir blog yazısı yayına girdi. | id, siteId |
site.post_saved | Bir blog yazısı yazıldı ya da düzenlendi. | id, siteId, slug |
site.post_tagged | Bir yazıya etiket eklendi ya da kaldırıldı. | postId, tagId |
site.post_unpublished | Bir blog yazısı yayından kalktı. | id, status |
site.primary_domain_changed | Farklı bir adres birincil oldu. | domain_id, host |
site.published | Bir site yayına girdi. | site_id |
site.redirect_changed | Bir yönlendirme yazıldı ya da kaldırıldı. | id, siteId, fromPath |
site.reference_deleted | Bir referans kaldırıldı. | id, siteId |
site.reference_saved | Bir referans yazıldı ya da düzenlendi. | id, siteId |
site.submission_marked | Bir mesaj okundu, yanıtlandı, arşivlendi ya da istenmeyen olarak işaretlendi. | id, status |
site.theme_changed | Bir taslak temanın görünümü değiştirildi. | site_id, theme_id |
site.theme_draft_created | Yayındaki temadan bir taslak tema türetildi. | site_id, theme_id, forked_from |
site.theme_imported | A code site’s theme manifest (era.theme.json) was imported. | site_id, version, sections |
site.theme_published | Bir tema taslağı yayımlandı. | site_id, theme_id |
site.theme_scheduled | Bir tema taslağı yayına zamanlandı ya da zamanlaması iptal edildi. | site_id, theme_id, publish_at |
site.unpublished | Bir site yayından kaldırıldı. | site_id |