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

KaynakTabloListeleme ve okumaPOSTPATCHDELETE
blog_authorsblog_author/api/v1/blog_authorssite.save_blog_author
blog_categoriesblog_category/api/v1/blog_categoriessite.save_blog_category
blog_post_tagsblog_post_tag/api/v1/blog_post_tags
blog_postsblog_post/api/v1/blog_posts
blog_tagsblog_tag/api/v1/blog_tagssite.save_blog_tag
client_referencesclient_reference/api/v1/client_references
contact_infoscontact_info/api/v1/contact_infos
contact_submissionscontact_submission/api/v1/contact_submissions
domainsdomain/api/v1/domainssite.add_domain
faq_categoriesfaq_category/api/v1/faq_categoriessite.save_faq_categorysite.delete_faq_category
faq_itemsfaq_item/api/v1/faq_itemssite.save_faq_itemsite.delete_faq_item
newsesnews/api/v1/newsessite.save_news
page_redirectspage_redirect/api/v1/page_redirects
pagespage/api/v1/pagessite.update_pagesite.delete_page
policiespolicy/api/v1/policies
site_code_themessite_code_theme/api/v1/site_code_themes
site_contentssite_content/api/v1/site_contents
site_deployssite_deploy/api/v1/site_deploys
site_infossite_info/api/v1/site_infos
sitessite/api/v1/sitessite.create_site
theme_snapshotstheme_snapshot/api/v1/theme_snapshots
themestheme/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

İşlemGereken izinNe yapar
site.add_domainsite:manageAdres ekle
site.add_page_blocksite:writeSayfaya bölüm ekle
site.add_sectionsite:writeSayfaya bölüm ekle
site.assign_imagessite:writeGörsel ata
site.cancel_scheduled_contentsite:writeZamanlanmış yayımlamayı iptal et
site.cancel_theme_schedulesite:manageTema zamanlamasını iptal et
site.create_pagesite:writeSayfa ekle
site.create_sitesite:manageSite oluştur
site.create_theme_draftsite:manageTaslak başlat
site.define_contentsite:manageSitenin kullandığı içeriği tanımla
site.delete_blog_taxonomysite:manageBlog kategorisini, etiketini veya yazarını sil
site.delete_contentsite:manageİçeriği kaldır
site.delete_faq_categorysite:deleteSSS grubunu kaldır
site.delete_faq_itemsite:deleteSSS sorusunu kaldır
site.delete_pagesite:deleteSayfayı sil
site.delete_redirectsite:manageYönlendirmeyi kaldır
site.delete_referencesite:deleteReferansı kaldır
site.edit_page_blocksite:writeSayfa bölümünü düzenle
site.edit_sectionsite:writeBölümü düzenle
site.finish_deploysite:manageYayın sonucunu kaydet
site.import_themesite:manageImport a code site’s theme
site.mark_submissionsite:writeMesajı işaretle
site.move_pagesite:writeSayfayı taşı
site.move_page_blocksite:writeSayfa bölümünü taşı
site.move_sectionsite:writeBölümü taşı
site.publishsite:manageSiteyi yayına al
site.publish_draftsite:manageDeğişiklikleri yayımla
site.publish_postsite:writeYazıyı yayımla
site.publish_themesite:manageTemayı yayımla
site.remove_deploysite:manageYayındaki siteyi kaldır
site.remove_domainsite:manageAdresi kaldır
site.remove_page_blocksite:writeSayfa bölümünü kaldır
site.remove_sectionsite:writeBölümü kaldır
site.reorder_blog_categoriessite:manageBlog kategorilerini yeniden sırala
site.reorder_faqsite:writeSoruları sırala
site.restore_theme_snapshotsite:writeSitenin bir sürümünü geri yükle
site.restylesite:writeSitenin stilini değiştir
site.rollback_themesite:manageTemaya geri dön
site.save_blog_authorsite:manageYazarı kaydet
site.save_blog_categorysite:manageBlog kategorisini kaydet
site.save_blog_tagsite:manageBlog etiketini kaydet
site.save_faq_categorysite:manageSSS grubunu kaydet
site.save_faq_itemsite:writeSoruyu kaydet
site.save_newssite:writeHaber yaz
site.save_postsite:writeYazı yaz
site.save_referencesite:writeReferansı kaydet
site.save_theme_draftsite:writeTema taslağını kaydet
site.schedule_contentsite:writeYayımlamayı zamanla
site.schedule_theme_publishsite:manageTemayı zamanla
site.set_auth_modesite:manageZiyaretçi girişini değiştir
site.set_chromesite:writeÜst ve alt bilgiyi ayarla
site.set_contact_infosite:manageİletişim bilgilerini kaydet
site.set_contentsite:manageSite içeriğini değiştir
site.set_homepagesite:writeAna sayfa yap
site.set_localesite:manageSite dillerini belirle
site.set_news_statussite:writeHaberi yayımla veya arşivle
site.set_page_blockssite:writeSayfa düzenini kaydet
site.set_page_navsite:writeMenüyü değiştir
site.set_page_statussite:writeSayfayı yayımla veya arşivle
site.set_policysite:manageYasal sayfayı kaydet
site.set_primary_domainsite:manageAdresi birincil yap
site.set_redirectsite:manageYönlendirme ekle
site.set_site_infosite:manageŞirket bilgilerini kaydet
site.set_site_widgetssite:writeSite eklentilerini ayarla
site.set_theme_seosite:writeArama bilgilerini ayarla
site.set_theme_tokenssite:writeTemayı yeniden biçimlendir
site.share_linkssite:readSiteme bak
site.snapshot_themesite:manageSite sürümünü kaydet
site.start_deploysite:manageSiteyi yayınla
site.submit_contactsite:writeMesaj gönder
site.tag_postsite:writeYazıyı etiketle
site.unpublishsite:manageSiteyi yayından kaldır
site.unpublish_postsite:writeYazıyı yayından kaldır
site.untag_postsite:writeEtiketi kaldır
site.update_pagesite:writeSayfayı düzenle
site.verify_domainsite:manageAdresi 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

POSThttps://app.getera.io/api/v1/domains/actions/add_domain
API anahtarı ya da OAuth token · site:manage
  • REST kısayolu: POST /api/v1/domains
  • Asıl adres: POST /api/v1/actions/site.add_domain

Girdi

AlanTürZorunluAçıklama
siteIduuidevetSite · kimliği: site
hoststringevetAna bilgisayar adı · en çok 253

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
site_not_foundSite bu çalışma alanında bulunmalı.
invalid_hostBir alan adı olmalı — şema, yol veya port olmadan.
platform_domainPlatform adresleri siteyle birlikte verilir.
host_takenAlan 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"}'
Yanıt
{
  "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"
tools/call
{
  "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

POSThttps://app.getera.io/api/v1/themes/{id}/actions/add_page_block
API anahtarı ya da OAuth token · site:write
  • Asıl adres: POST /api/v1/actions/site.add_page_block

Girdi

AlanTürZorunluAçıklama
themeIduuidevetDoldurulduğu yer: adresteki {id} · Tema · kimliği: theme
pageIduuidevetSayfa · kimliği: page
blockIdstringevetBölüm · en çok 120
typestringevetBlok türü · en çok 120
dataobject / arrayevetBlok verisi
enabledbooleanGörünür
toIndexnumberKonum · en az 0

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
theme_not_foundTema bu çalışma alanında bulunmalı.
theme_is_publishedYayındaki bir tema yerinde düzenlenemez.
archivedArşivlenmiş bir tema düzenlenemez.
page_not_foundSayfa temanın sitesinde olmalı.
invalid_blocksHer 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":{}}'
Yanıt
{
  "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":{}}'
tools/call
{
  "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

POSThttps://app.getera.io/api/v1/theme_snapshots/actions/add_section
API anahtarı ya da OAuth token · site:write
  • Asıl adres: POST /api/v1/actions/site.add_section

Girdi

AlanTürZorunluAçıklama
sitestringSite · Kimlik, adres ya da ad. Boş = en son düzenlenen site. · en çok 200
pagestringSayfa · Kimlik, adres (/about), başlık ya da "home". Boş = ana sayfa. · en çok 255
typestringevetBölüm türü · hero, features_grid, testimonials, faq, pricing, gallery, cta, contact_form, text, image, stats, team … · en çok 80
dataobject / arrayMetinleri ve ayarları · { "title": "…", "subtitle": "…", "items": [ … ] }
positionnumberSırası (1’den başlayarak) · en az 1
afterstringŞu bölümden sonra · en çok 200
hiddenbooleanGizli olarak ekle

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
site_not_foundSite bu çalışma alanında bulunmalı.
page_not_foundSayfa o sitede olmalı.
unknown_block_typeBölüm türü sitenin çizebildiği bir tür olmalı.
block_not_found“Sonra” sayfadaki bir bölümü göstermeli.
invalid_blocksBö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"}'
Yanıt
{
  "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"
tools/call
{
  "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

POSThttps://app.getera.io/api/v1/blog_posts/actions/assign_images
API anahtarı ya da OAuth token · site:write
  • Asıl adres: POST /api/v1/actions/site.assign_images

Girdi

AlanTürZorunluAçıklama
idsobject / arrayevetSeçili kayıtlar
fileIduuidevetGörsel · kimliği: file
contentTypestring (enum)evetİçerik · İzin verilen değerler: blog, news, reference

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
no_items1 ila 500 kayıt seçin.
file_not_foundBu dosya çalışma alanında erişilebilir değil.
image_requiredBir görsel seçin.
not_foundSeç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"}'
Yanıt
{
  "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"}'
tools/call
{
  "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

POSThttps://app.getera.io/api/v1/blog_posts/actions/cancel_scheduled_content
API anahtarı ya da OAuth token · site:write
  • Asıl adres: POST /api/v1/actions/site.cancel_scheduled_content

Girdi

AlanTürZorunluAçıklama
iduuidevetMakale
kindstring (enum)evetTür · İzin verilen değerler: post, news

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_scheduledBu 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"}'
Yanıt
{
  "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"
tools/call
{
  "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

POSThttps://app.getera.io/api/v1/themes/{id}/actions/cancel_theme_schedule
API anahtarı ya da OAuth token · site:manage
  • Asıl adres: POST /api/v1/actions/site.cancel_theme_schedule

Girdi

AlanTürZorunluAçıklama
themeIduuidevetDoldurulduğu yer: adresteki {id} · Tema · kimliği: theme

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_scheduledBu 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 '{}'
Yanıt
{
  "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
tools/call
{
  "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

POSThttps://app.getera.io/api/v1/pages/{id}/actions/create_page
API anahtarı ya da OAuth token · site:write
  • Asıl adres: POST /api/v1/actions/site.create_page

Girdi

AlanTürZorunluAçıklama
siteIduuidevetSite · kimliği: site
titlestringevetBaşlık · en çok 255
slugstringAdres · Başlıktan alınması için boş bırakın. · en çok 255
parentIduuidDoldurulduğu yer: adresteki {id} · Altında · kimliği: page
showInHeaderbooleanÜst menüde göster
showInFooterbooleanAlt bilgi menüsünde göster
sortOrdernumberKonum · en az 0

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
site_not_foundSite bu çalışma alanında bulunmalı.
slug_takenAdres 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"}'
Yanıt
{
  "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"
tools/call
{
  "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

POSThttps://app.getera.io/api/v1/sites/actions/create_site
API anahtarı ya da OAuth token · site:manage
  • REST kısayolu: POST /api/v1/sites
  • Asıl adres: POST /api/v1/actions/site.create_site

Girdi

AlanTürZorunluAçıklama
typestring (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
namestringevetAd · en çok 120
slugstringAdres · Addan almak için boş bırakın. · en çok 63
defaultLocalestringVarsayılan dil · en çok 12
authModestring (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:

KodNe zaman reddedilir
invalid_slugAd kullanılabilir bir adres üretmeli.
slug_takenBu çalışma alanında bu adreste zaten bir site var.
host_takenPlatform 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"}'
Yanıt
{
  "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"
tools/call
{
  "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

POSThttps://app.getera.io/api/v1/themes/actions/create_theme_draft
API anahtarı ya da OAuth token · site:manage
  • Asıl adres: POST /api/v1/actions/site.create_theme_draft

Girdi

AlanTürZorunluAçıklama
siteIduuidevetSite · kimliği: site
namestringAd · en çok 120

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
site_not_foundSite bu çalışma alanında bulunmalı.
draft_existsBir 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"}'
Yanıt
{
  "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"
tools/call
{
  "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

POSThttps://app.getera.io/api/v1/site_contents/actions/define_content
API anahtarı ya da OAuth token · site:manage
  • Asıl adres: POST /api/v1/actions/site.define_content

Girdi

AlanTürZorunluAçıklama
siteIduuidevetSite · kimliği: site
entriesobject / arrayevetKayı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.
overwritebooleanReplace values the owner changed

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
site_not_foundSite bu çalışma alanında bulunmalı.
invalid_contentHer 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":{}}'
Yanıt
{
  "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":{}}'
tools/call
{
  "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

POSThttps://app.getera.io/api/v1/blog_categories/actions/delete_blog_taxonomy
API anahtarı ya da OAuth token · site:manage
  • Asıl adres: POST /api/v1/actions/site.delete_blog_taxonomy

Girdi

AlanTürZorunluAçıklama
iduuidevetKayıt
kindstring (enum)evetTür · İzin verilen değerler: category, tag, author

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
category_not_foundKategori bulunamadı.
tag_not_foundEtiket bulunamadı.
author_not_foundYazar bulunamadı.
blog_category_in_useYazılara atanmış bir kategori silinemez.
blog_tag_in_useYazılara atanmış bir etiket silinemez.
blog_author_in_useYazı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"}'
Yanıt
{
  "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"
tools/call
{
  "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

POSThttps://app.getera.io/api/v1/site_contents/actions/delete_content
API anahtarı ya da OAuth token · site:manage
  • Asıl adres: POST /api/v1/actions/site.delete_content

Girdi

AlanTürZorunluAçıklama
siteIduuidevetSite · kimliği: site
keystringevetKayıt · en çok 100

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
site_not_foundSite 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"}'
Yanıt
{
  "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"
tools/call
{
  "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

POSThttps://app.getera.io/api/v1/faq_categories/{id}/actions/delete_faq_category
API anahtarı ya da OAuth token · site:delete
  • REST kısayolu: DELETE /api/v1/faq_categories/{id}
  • Asıl adres: POST /api/v1/actions/site.delete_faq_category

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Grup · kimliği: faq_category

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
category_not_foundGrup 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 '{}'
Yanıt
{
  "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
tools/call
{
  "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

POSThttps://app.getera.io/api/v1/faq_items/{id}/actions/delete_faq_item
API anahtarı ya da OAuth token · site:delete
  • REST kısayolu: DELETE /api/v1/faq_items/{id}
  • Asıl adres: POST /api/v1/actions/site.delete_faq_item

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Soru · kimliği: faq_item

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
faq_item_not_foundSoru 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 '{}'
Yanıt
{
  "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
tools/call
{
  "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

POSThttps://app.getera.io/api/v1/pages/{id}/actions/delete_page
API anahtarı ya da OAuth token · site:delete
  • REST kısayolu: DELETE /api/v1/pages/{id}
  • Asıl adres: POST /api/v1/actions/site.delete_page

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Sayfa · kimliği: page

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
page_not_foundSayfa bu çalışma alanında bulunmalı.
page_is_defaultVarsayılan bir sayfa yalnızca arşivlenebilir.
homepage_must_stay_publishedAna sayfa silinemez.
has_childrenAlt 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 '{}'
Yanıt
{
  "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
tools/call
{
  "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

POSThttps://app.getera.io/api/v1/page_redirects/{id}/actions/delete_redirect
API anahtarı ya da OAuth token · site:manage
  • Asıl adres: POST /api/v1/actions/site.delete_redirect

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Yönlendirme · kimliği: page_redirect

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
redirect_not_foundYö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 '{}'
Yanıt
{
  "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
tools/call
{
  "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

POSThttps://app.getera.io/api/v1/client_references/{id}/actions/delete_reference
API anahtarı ya da OAuth token · site:delete
  • Asıl adres: POST /api/v1/actions/site.delete_reference

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Referans · kimliği: client_reference

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
reference_not_foundReferans 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 '{}'
Yanıt
{
  "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
tools/call
{
  "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

POSThttps://app.getera.io/api/v1/themes/{id}/actions/edit_page_block
API anahtarı ya da OAuth token · site:write
  • Asıl adres: POST /api/v1/actions/site.edit_page_block

Girdi

AlanTürZorunluAçıklama
themeIduuidevetDoldurulduğu yer: adresteki {id} · Tema · kimliği: theme
pageIduuidevetSayfa · kimliği: page
blockIdstringevetBölüm · en çok 120
typestringBlok türü · en çok 120
dataobject / arrayBlok verisi
enabledbooleanGörünür

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
theme_not_foundTema bu çalışma alanında bulunmalı.
theme_is_publishedYayındaki bir tema yerinde düzenlenemez.
archivedArşivlenmiş bir tema düzenlenemez.
page_not_foundSayfa temanın sitesinde olmalı.
block_not_foundBu bölüm sayfada bulunamadı.
invalid_blocksHer 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"}'
Yanıt
{
  "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"
tools/call
{
  "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

POSThttps://app.getera.io/api/v1/theme_snapshots/actions/edit_section
API anahtarı ya da OAuth token · site:write
  • Asıl adres: POST /api/v1/actions/site.edit_section

Girdi

AlanTürZorunluAçıklama
sitestringSite · Kimlik, adres ya da ad. Boş = en son düzenlenen site. · en çok 200
pagestringSayfa · Kimlik, adres (/about), başlık ya da "home". Boş = ana sayfa. · en çok 255
sectionstringevetBölüm · Kimliği, 1’den başlayan sırası, türü (hero) ya da başlığından sözcükler. · en çok 200
textobject / arrayMetinler · { "title": "…", "subtitle": "…", "items.0.title": "…" }
imagestringGörsel bağlantısı · Yüklenmiş, üretilmiş ya da hazır bir görsel: https://… ya da /… · en çok 2000
imageFieldstringHangi görsel · Boş = bölümün ana görseli; tek bir kart için items.2.imageUrl. · en çok 200
dataobject / arrayBirleştirilecek ayarlar
visiblebooleanGörünür
hideOnobject / arrayŞurada gizle · ["phone"], ["tablet"], ["desktop"]
showOnobject / arrayŞurada yeniden göster
localestringMetinlerin dili · Boş = sitenin kendi dili. · en çok 12

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
site_not_foundSite bu çalışma alanında bulunmalı.
page_not_foundSayfa o sitede olmalı.
block_not_foundBu bölüm sayfada bulunamadı.
invalid_pathYazılar bölümün alanlarına metin olarak girer.
invalid_imageGörsel, https:// ya da / ile başlayan bir bağlantıdır.
invalid_deviceCihaz telefon, tablet ya da masaüstüdür.
invalid_blocksBölüm çizilebilir kalmalı.
nothing_to_changeBir ş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"}'
Yanıt
{
  "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"
tools/call
{
  "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)

POSThttps://app.getera.io/api/v1/site_deploys/{id}/actions/finish_deploy
API anahtarı ya da OAuth token · site:manage
  • Asıl adres: POST /api/v1/actions/site.finish_deploy

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Yayına al · kimliği: site_deploy
okbooleanevetBaşarılı
urlstringAdres · en çok 500
hoststringSunucu · en çok 253
scriptNamestringSüreç · en çok 63
providerVersionIdstringUç sunucu sürümü · en çok 100
logobject / arrayAdımlar
errorstringHata · en çok 2000

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
deploy_not_foundYayın bu çalışma alanında olmalı.
not_uploadingYalnı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}'
Yanıt
{
  "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
tools/call
{
  "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

POSThttps://app.getera.io/api/v1/site_code_themes/actions/import_theme
API anahtarı ya da OAuth token · site:manage
  • Asıl adres: POST /api/v1/actions/site.import_theme

Girdi

AlanTürZorunluAçıklama
siteIduuidevetSite · kimliği: site
manifestobject / arrayevetera.theme.json
dryRunbooleanOnly check it
prunebooleanRemove settings the theme no longer declares

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
site_not_foundSite bu çalışma alanında bulunmalı.
invalid_themeThe manifest needs a name and sections with ids, labels and settings of known types.
invalid_contentEvery 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":{}}'
Yanıt
{
  "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":{}}'
tools/call
{
  "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

POSThttps://app.getera.io/api/v1/contact_submissions/{id}/actions/mark_submission
API anahtarı ya da OAuth token · site:write
  • Asıl adres: POST /api/v1/actions/site.mark_submission

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Mesaj · kimliği: contact_submission
statusstring (enum)evetDurum · İzin verilen değerler: new, read, replied, archived, spam

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
submission_not_foundMesaj bu çalışma alanında bulunmalı.
no_changeZaten 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"}'
Yanıt
{
  "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"
tools/call
{
  "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

POSThttps://app.getera.io/api/v1/pages/{id}/actions/move_page
API anahtarı ya da OAuth token · site:write
  • Asıl adres: POST /api/v1/actions/site.move_page

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Sayfa · kimliği: page
parentIduuidAltında · kimliği: page

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
page_not_foundSayfa bu çalışma alanında bulunmalı.
parent_not_foundYeni üst sayfa aynı sitede olmalı.
cannot_parent_to_selfBir sayfa kendi üstü olamaz.
would_create_cycleBir 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"}'
Yanıt
{
  "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"
tools/call
{
  "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

POSThttps://app.getera.io/api/v1/themes/{id}/actions/move_page_block
API anahtarı ya da OAuth token · site:write
  • Asıl adres: POST /api/v1/actions/site.move_page_block

Girdi

AlanTürZorunluAçıklama
themeIduuidevetDoldurulduğu yer: adresteki {id} · Tema · kimliği: theme
pageIduuidevetSayfa · kimliği: page
blockIdstringevetBölüm · en çok 120
toIndexnumberevetKonum · en az 0

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
theme_not_foundTema bu çalışma alanında bulunmalı.
theme_is_publishedYayındaki bir tema yerinde düzenlenemez.
archivedArşivlenmiş bir tema düzenlenemez.
page_not_foundSayfa temanın sitesinde olmalı.
block_not_foundBu bölüm sayfada bulunamadı.
invalid_blocksHer 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}'
Yanıt
{
  "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
tools/call
{
  "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

POSThttps://app.getera.io/api/v1/theme_snapshots/actions/move_section
API anahtarı ya da OAuth token · site:write
  • Asıl adres: POST /api/v1/actions/site.move_section

Girdi

AlanTürZorunluAçıklama
sitestringSite · Kimlik, adres ya da ad. Boş = en son düzenlenen site. · en çok 200
pagestringSayfa · Kimlik, adres (/about), başlık ya da "home". Boş = ana sayfa. · en çok 255
sectionstringevetBölüm · Kimliği, 1’den başlayan sırası, türü (hero) ya da başlığından sözcükler. · en çok 200
positionnumberYeni sırası (1’den başlayarak) · en az 1
directionstring (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:

KodNe zaman reddedilir
site_not_foundSite bu çalışma alanında bulunmalı.
page_not_foundSayfa o sitede olmalı.
block_not_foundBu bölüm sayfada bulunamadı.
no_positionBir sıra ya da yön verilmeli.
nothing_to_changeZaten 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"}'
Yanıt
{
  "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"
tools/call
{
  "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)

POSThttps://app.getera.io/api/v1/sites/{id}/actions/publish
API anahtarı ya da OAuth token · site:manage
  • Asıl adres: POST /api/v1/actions/site.publish

Girdi

AlanTürZorunluAçıklama
siteIduuidevetDoldurulduğu yer: adresteki {id} · Site · kimliği: site

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
site_not_foundSite bu çalışma alanında bulunmalı.
no_changeZaten yayında olmamalı.
no_verified_domainEn 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 '{}'
Yanıt
{
  "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
tools/call
{
  "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

POSThttps://app.getera.io/api/v1/themes/actions/publish_draft
API anahtarı ya da OAuth token · site:manage
  • Asıl adres: POST /api/v1/actions/site.publish_draft

Girdi

AlanTürZorunluAçıklama
sitestringSite · 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:

KodNe zaman reddedilir
site_not_foundSite bu çalışma alanında bulunmalı.
no_draftYayı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"}'
Yanıt
{
  "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"
tools/call
{
  "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)

POSThttps://app.getera.io/api/v1/blog_posts/{id}/actions/publish_post
API anahtarı ya da OAuth token · site:write
  • Asıl adres: POST /api/v1/actions/site.publish_post

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Yazı · kimliği: blog_post
scheduledOnlybooleanPlanlı çalıştırma

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
post_not_foundYazı bu çalışma alanında bulunmalı.
no_changeZaten yayımlanmış olmamalı.
empty_contentBoş bir yazı yayımlanamaz.
not_scheduledOtomatik 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}'
Yanıt
{
  "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
tools/call
{
  "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)

POSThttps://app.getera.io/api/v1/themes/{id}/actions/publish_theme
API anahtarı ya da OAuth token · site:manage
  • Asıl adres: POST /api/v1/actions/site.publish_theme

Girdi

AlanTürZorunluAçıklama
themeIduuidevetDoldurulduğu yer: adresteki {id} · Tema · kimliği: theme

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
theme_not_foundTema bu çalışma alanında bulunmalı.
already_publishedZaten yayında olmamalı.
archivedArş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 '{}'
Yanıt
{
  "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
tools/call
{
  "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

POSThttps://app.getera.io/api/v1/site_deploys/actions/remove_deploy
API anahtarı ya da OAuth token · site:manage
  • Asıl adres: POST /api/v1/actions/site.remove_deploy

Girdi

AlanTürZorunluAçıklama
siteIduuidevetSite · kimliği: site

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_deployedSitenin 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"}'
Yanıt
{
  "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"
tools/call
{
  "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

POSThttps://app.getera.io/api/v1/domains/{id}/actions/remove_domain
API anahtarı ya da OAuth token · site:manage
  • Asıl adres: POST /api/v1/actions/site.remove_domain

Girdi

AlanTürZorunluAçıklama
domainIduuidevetDoldurulduğu yer: adresteki {id} · Adres · kimliği: domain
forcebooleanYine de kaldır

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
domain_not_foundAdres burada kayıtlı olmalı.
is_primaryBaşka adresler varken birincil adres kaldırılamaz.
last_domainYayı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}'
Yanıt
{
  "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
tools/call
{
  "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

POSThttps://app.getera.io/api/v1/themes/{id}/actions/remove_page_block
API anahtarı ya da OAuth token · site:write
  • Asıl adres: POST /api/v1/actions/site.remove_page_block

Girdi

AlanTürZorunluAçıklama
themeIduuidevetDoldurulduğu yer: adresteki {id} · Tema · kimliği: theme
pageIduuidevetSayfa · kimliği: page
blockIdstringevetBölüm · en çok 120

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
theme_not_foundTema bu çalışma alanında bulunmalı.
theme_is_publishedYayındaki bir tema yerinde düzenlenemez.
archivedArşivlenmiş bir tema düzenlenemez.
page_not_foundSayfa temanın sitesinde olmalı.
block_not_foundBu bölüm sayfada bulunamadı.
invalid_blocksHer 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"}'
Yanıt
{
  "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"
tools/call
{
  "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

POSThttps://app.getera.io/api/v1/theme_snapshots/actions/remove_section
API anahtarı ya da OAuth token · site:write
  • Asıl adres: POST /api/v1/actions/site.remove_section

Girdi

AlanTürZorunluAçıklama
sitestringSite · Kimlik, adres ya da ad. Boş = en son düzenlenen site. · en çok 200
pagestringSayfa · Kimlik, adres (/about), başlık ya da "home". Boş = ana sayfa. · en çok 255
sectionstringevetBö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:

KodNe zaman reddedilir
site_not_foundSite bu çalışma alanında bulunmalı.
page_not_foundSayfa o sitede olmalı.
block_not_foundBu 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"}'
Yanıt
{
  "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"
tools/call
{
  "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

POSThttps://app.getera.io/api/v1/blog_categories/actions/reorder_blog_categories
API anahtarı ya da OAuth token · site:manage
  • Asıl adres: POST /api/v1/actions/site.reorder_blog_categories

Girdi

AlanTürZorunluAçıklama
siteIduuidevetSite · kimliği: site
idsobject / arrayevetSıralı kategoriler

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
site_not_foundSite bu çalışma alanında bulunmalı.
invalid_blog_category_orderHer 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":{}}'
Yanıt
{
  "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":{}}'
tools/call
{
  "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

POSThttps://app.getera.io/api/v1/faq_items/actions/reorder_faq
API anahtarı ya da OAuth token · site:write
  • Asıl adres: POST /api/v1/actions/site.reorder_faq

Girdi

AlanTürZorunluAçıklama
siteIduuidevetSite · kimliği: site
idsobject / arrayevetYeni sipariş

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
site_not_foundSite bu çalışma alanında bulunmalı.
invalid_orderYeni sıra soru kimliklerinden oluşan bir liste olmalı.
unknown_faq_itemHer 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":{}}'
Yanıt
{
  "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":{}}'
tools/call
{
  "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

POSThttps://app.getera.io/api/v1/themes/actions/restore_theme_snapshot
API anahtarı ya da OAuth token · site:write
  • Asıl adres: POST /api/v1/actions/site.restore_theme_snapshot

Girdi

AlanTürZorunluAçıklama
snapshotIduuidevetSürüm

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
snapshot_not_foundKaydedilmiş sürüm bu çalışma alanında bulunmalı.
no_draftSitenin, 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"}'
Yanıt
{
  "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"
tools/call
{
  "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

POSThttps://app.getera.io/api/v1/themes/actions/restyle
API anahtarı ya da OAuth token · site:write
  • Asıl adres: POST /api/v1/actions/site.restyle

Girdi

AlanTürZorunluAçıklama
sitestringSite · Kimlik, adres ya da ad. Boş = en son düzenlenen site. · en çok 200
brandColorstringMarka rengi · #1f6feb — düğmeler, bağlantılar ve vurgular buna uyar. · en çok 9
colorsobject / arrayRenkler · background, foreground, primary, primaryForeground, secondary, secondaryForeground, accent, accentForeground, muted, mutedForeground, border, input, ring, card, cardForeground, destructive, destructiveForeground değerlerinden herhangi biri, #rrggbb biçiminde.
darkColorsobject / arrayKoyu mod renkleri · Aynı değerler, koyu tema için.
headingFontstringBaşlık yazı tipi · inter, geist, system, serif, mono, playfair, poppins, montserrat, dm-serif, roboto, fraunces, manrope · en çok 40
bodyFontstringMetin yazı tipi · en çok 40
baseSizenumberMetin boyutu (px)
radiusnumberKöşe yuvarlaklığı (0–2)
spacingstring (enum)Boşluk · İzin verilen değerler: compact, default, relaxed
containerWidthstring (enum)İçerik genişliği · İzin verilen değerler: narrow, default, wide, full
buttonStylestring (enum)Düğmeler · İzin verilen değerler: default, pill, square
darkbooleanKoyu mod

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
site_not_foundSite bu çalışma alanında bulunmalı.
invalid_colorRenkler, temanın bilinen renkleri olarak #rrggbb biçiminde verilir.
unknown_fontYazı tipi sitenin yüklediklerinden biri olmalı.
invalid_tokensBoyutlar ve seçimler izin verilen aralıkta olmalı.
nothing_to_changeBir ş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"}'
Yanıt
{
  "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"
tools/call
{
  "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

POSThttps://app.getera.io/api/v1/themes/{id}/actions/rollback_theme
API anahtarı ya da OAuth token · site:manage
  • Asıl adres: POST /api/v1/actions/site.rollback_theme

Girdi

AlanTürZorunluAçıklama
themeIduuidevetDoldurulduğu yer: adresteki {id} · Tema · kimliği: theme

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
theme_not_foundTema bu çalışma alanında bulunmalı.
already_publishedZaten yayında olmamalı.
not_archivedGeri 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 '{}'
Yanıt
{
  "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
tools/call
{
  "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

POSThttps://app.getera.io/api/v1/blog_authors/{id}/actions/save_blog_author
API anahtarı ya da OAuth token · site:manage
  • REST kısayolu: PATCH /api/v1/blog_authors/{id}
  • Asıl adres: POST /api/v1/actions/site.save_blog_author

Girdi

AlanTürZorunluAçıklama
siteIduuidevetSite · kimliği: site
iduuidDoldurulduğu yer: adresteki {id} · Yazar · kimliği: blog_author
userIduuidevetKişi · kimliği: app_user
displayNamestringevetŞöyle gösterilir · en çok 120
biostringGiriş · en çok 4000
isPublicbooleanSitede görünür

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
site_not_foundSite bu çalışma alanında bulunmalı.
user_not_foundKişi bu organizasyonda olmalı.
author_existsBir kişinin her sitede yalnızca bir yazar kaydı olabilir.
author_not_foundDü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"}'
Yanıt
{
  "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"
tools/call
{
  "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

POSThttps://app.getera.io/api/v1/blog_categories/{id}/actions/save_blog_category
API anahtarı ya da OAuth token · site:manage
  • REST kısayolu: PATCH /api/v1/blog_categories/{id}
  • Asıl adres: POST /api/v1/actions/site.save_blog_category

Girdi

AlanTürZorunluAçıklama
siteIduuidevetSite · kimliği: site
iduuidDoldurulduğu yer: adresteki {id} · Kategori · kimliği: blog_category
namestringevetAd · en çok 100
slugstringAdres · en çok 100
descriptionstringAçıklama · en çok 2000
colorstringRenk · en çok 7
iconstringSimge · en çok 50
sortOrdernumberKonum · en az 0
isActivebooleanKullanımda

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
site_not_foundSite bu çalışma alanında bulunmalı.
invalid_slugAd kullanılabilir bir adres üretmeli.
slug_takenAdres bu sitede boşta olmalı.
invalid_colourRenk altı haneli bir onaltılık değer olmalı.
category_not_foundDü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"}'
Yanıt
{
  "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"
tools/call
{
  "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

POSThttps://app.getera.io/api/v1/blog_tags/{id}/actions/save_blog_tag
API anahtarı ya da OAuth token · site:manage
  • REST kısayolu: PATCH /api/v1/blog_tags/{id}
  • Asıl adres: POST /api/v1/actions/site.save_blog_tag

Girdi

AlanTürZorunluAçıklama
siteIduuidevetSite · kimliği: site
iduuidDoldurulduğu yer: adresteki {id} · Etiket · kimliği: blog_tag
namestringevetAd · en çok 50
slugstringAdres · en çok 50
isPublicbooleanSitede görünür

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
site_not_foundSite bu çalışma alanında bulunmalı.
invalid_slugAd kullanılabilir bir adres üretmeli.
slug_takenAdres bu sitede boşta olmalı.
tag_not_foundDü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"}'
Yanıt
{
  "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"
tools/call
{
  "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

POSThttps://app.getera.io/api/v1/faq_categories/{id}/actions/save_faq_category
API anahtarı ya da OAuth token · site:manage
  • REST kısayolu: PATCH /api/v1/faq_categories/{id}
  • Asıl adres: POST /api/v1/actions/site.save_faq_category

Girdi

AlanTürZorunluAçıklama
siteIduuidevetSite · kimliği: site
iduuidDoldurulduğu yer: adresteki {id} · Grup · kimliği: faq_category
namestringevetAd · en çok 100
slugstringAdres · en çok 100
descriptionstringAçıklama · en çok 2000
iconstringSimge · en çok 50
sortOrdernumberKonum · en az 0
isActivebooleanSitede gösterilir

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
site_not_foundSite bu çalışma alanında bulunmalı.
invalid_slugAd kullanılabilir bir adres üretmeli.
slug_takenAdres bu sitede boşta olmalı.
category_not_foundDü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"}'
Yanıt
{
  "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"
tools/call
{
  "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

POSThttps://app.getera.io/api/v1/faq_items/{id}/actions/save_faq_item
API anahtarı ya da OAuth token · site:write
  • REST kısayolu: PATCH /api/v1/faq_items/{id}
  • Asıl adres: POST /api/v1/actions/site.save_faq_item

Girdi

AlanTürZorunluAçıklama
siteIduuidevetSite · kimliği: site
iduuidDoldurulduğu yer: adresteki {id} · Soru · kimliği: faq_item
categoryIduuidGrup · kimliği: faq_category
questionstringevetSoru · en çok 1000
answerstringevetYanıt · en çok 20000
sortOrdernumberKonum · en az 0
isActivebooleanSitede gösterilir

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
site_not_foundSite bu çalışma alanında bulunmalı.
category_not_foundGrup aynı sitede olmalı.
faq_item_not_foundDü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"}'
Yanıt
{
  "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"
tools/call
{
  "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

POSThttps://app.getera.io/api/v1/newses/{id}/actions/save_news
API anahtarı ya da OAuth token · site:write
  • REST kısayolu: PATCH /api/v1/newses/{id}
  • Asıl adres: POST /api/v1/actions/site.save_news

Girdi

AlanTürZorunluAçıklama
siteIduuidevetSite · kimliği: site
iduuidDoldurulduğu yer: adresteki {id} · Haber · kimliği: news
titlestringevetBaşlık · en çok 255
slugstringAdres · en çok 255
descriptionstringÖzet · en çok 2000
contentobject / arrayGövde
metaTitlestringArama başlığı · en çok 255
metaDescriptionstringArama açıklaması · en çok 2000
isFeaturedbooleanÖne çıkan
featuredImageIduuidKapak görseli · kimliği: file
publishedAtdateYayın tarihi

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
site_not_foundSite bu çalışma alanında bulunmalı.
invalid_slugBaşlık kullanılabilir bir adres üretmeli.
slug_takenAdres bu sitede boşta olmalı.
news_not_foundDü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"}'
Yanıt
{
  "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"
tools/call
{
  "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

POSThttps://app.getera.io/api/v1/blog_posts/{id}/actions/save_post
API anahtarı ya da OAuth token · site:write
  • Asıl adres: POST /api/v1/actions/site.save_post

Girdi

AlanTürZorunluAçıklama
siteIduuidevetSite · kimliği: site
iduuidDoldurulduğu yer: adresteki {id} · Yazı · kimliği: blog_post
titlestringevetBaşlık · en çok 255
slugstringAdres · en çok 255
excerptstringÖzet · en çok 2000
contentobject / arrayGövde
categoryIduuidKategori · kimliği: blog_category
authorIduuidYazar · kimliği: blog_author
metaTitlestringArama başlığı · en çok 255
metaDescriptionstringArama açıklaması · en çok 2000
metaKeywordsstringAnahtar kelimeler · en çok 500
isFeaturedbooleanÖne çıkan
featuredImageIduuidKapak görseli · kimliği: file

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
site_not_foundSite bu çalışma alanında bulunmalı.
invalid_slugBaşlık kullanılabilir bir adres üretmeli.
slug_takenAdres bu sitede boşta olmalı.
category_not_foundKategori aynı sitede olmalı.
author_not_foundYazar aynı sitede olmalı.
post_not_foundDü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"}'
Yanıt
{
  "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"
tools/call
{
  "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

POSThttps://app.getera.io/api/v1/client_references/{id}/actions/save_reference
API anahtarı ya da OAuth token · site:write
  • Asıl adres: POST /api/v1/actions/site.save_reference

Girdi

AlanTürZorunluAçıklama
siteIduuidevetSite · kimliği: site
iduuidDoldurulduğu yer: adresteki {id} · Referans · kimliği: client_reference
clientNamestringevetMüşteri · en çok 255
clientSectorstringSektör · en çok 100
clientLogoIduuidLogo · kimliği: file
projectTitlestringProje · en çok 255
projectDescriptionstringNe yaptınız · en çok 8000
projectImagesobject / arrayProje görselleri
projectUrlstringBağlantı · en çok 500
testimonialstringTeklif · en çok 4000
testimonialAuthorstringSöyleyen · en çok 255
testimonialPositionstringRolü · en çok 100
isFeaturedbooleanÖne çıkan
isPublicbooleanSitede gösterilir
sortOrdernumberKonum · en az 0

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
site_not_foundSite bu çalışma alanında bulunmalı.
client_name_requiredReferansın bir müşteri adı olmalı.
reference_not_foundDüzenleme var olan bir referansı belirtmeli.
invalid_reference_imagesProje görselleri dosya kimliklerinden oluşan bir liste olmalı.
reference_file_not_foundHer 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"}'
Yanıt
{
  "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"
tools/call
{
  "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

POSThttps://app.getera.io/api/v1/themes/{id}/actions/save_theme_draft
API anahtarı ya da OAuth token · site:write
  • Asıl adres: POST /api/v1/actions/site.save_theme_draft

Girdi

AlanTürZorunluAçıklama
themeIduuidevetDoldurulduğu yer: adresteki {id} · Tema · kimliği: theme
configobject / arrayevetTema yapılandırması

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
theme_not_foundTema bu çalışma alanında bulunmalı.
theme_is_publishedYayındaki bir tema yerinde düzenlenemez.
archivedArşivlenmiş bir tema düzenlenemez.
invalid_themeDüzenleyici sürümlü tek bir tema yapılandırması gönderir.
missing_colour_tokenPalet on yedi değerin hepsini taşır.
unknown_fontYazı tipi, sitenin yüklediği yazı tiplerinden biri olmalı.
invalid_tokensTema değerleri ve boyutları site sözleşmesine uymalı.
invalid_chromeÜst ve alt bilgi blokları ve konumları geçerli biçimde olmalı.
unknown_variantEski üst/alt bilgi, çizilebilen bir düzen kullanmalı.
page_not_foundHer sayfa düzeni bu siteye ait olmalı.
invalid_blocksHer sayfa gövdesi çizilebilir bloklardan oluşan bir liste olmalı.
duplicate_block_idBir sayfadaki iki blok aynı kimliği paylaşamaz.
invalid_seoSEO bölümleri sayfaya göre anahtarlanmış nesnelerdir.
meta_title_too_longMeta 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":{}}'
Yanıt
{
  "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":{}}'
tools/call
{
  "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

POSThttps://app.getera.io/api/v1/blog_posts/actions/schedule_content
API anahtarı ya da OAuth token · site:write
  • Asıl adres: POST /api/v1/actions/site.schedule_content

Girdi

AlanTürZorunluAçıklama
iduuidevetMakale
kindstring (enum)evetTür · İzin verilen değerler: post, news
publishAtdate-timeevetYayımlanma zamanı

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
post_not_foundBlog yazısı bulunamadı.
news_not_foundHaber bulunamadı.
empty_contentYazının içeriği olmalı.
publish_time_in_pastYayı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"}'
Yanıt
{
  "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"
tools/call
{
  "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)

POSThttps://app.getera.io/api/v1/themes/{id}/actions/schedule_theme_publish
API anahtarı ya da OAuth token · site:manage
  • Asıl adres: POST /api/v1/actions/site.schedule_theme_publish

Girdi

AlanTürZorunluAçıklama
themeIduuidevetDoldurulduğu yer: adresteki {id} · Tema · kimliği: theme
publishAtdate-timeevetYayımlanma zamanı

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
theme_not_foundTema bu çalışma alanında bulunmalı.
not_a_draftYalnızca taslak bir tema zamanlanabilir.
publish_time_in_pastSaat 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"}'
Yanıt
{
  "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"
tools/call
{
  "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

POSThttps://app.getera.io/api/v1/sites/{id}/actions/set_auth_mode
API anahtarı ya da OAuth token · site:manage
  • Asıl adres: POST /api/v1/actions/site.set_auth_mode

Girdi

AlanTürZorunluAçıklama
siteIduuidevetDoldurulduğu yer: adresteki {id} · Site · kimliği: site
authModestring (enum)evetZiyaretç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:

KodNe zaman reddedilir
site_not_foundSite 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"}'
Yanıt
{
  "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"
tools/call
{
  "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

POSThttps://app.getera.io/api/v1/themes/{id}/actions/set_chrome
API anahtarı ya da OAuth token · site:write
  • Asıl adres: POST /api/v1/actions/site.set_chrome

Girdi

AlanTürZorunluAçıklama
themeIduuidevetDoldurulduğu yer: adresteki {id} · Tema · kimliği: theme
headerobject / arrayÜst bilgi
footerobject / arrayAlt bilgi
headerPositionnumberÜst bilginin konumu · en az 0
footerPositionnumberAlt bilginin konumu · en az 0

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
theme_not_foundTema bu çalışma alanında bulunmalı.
theme_is_publishedYayındaki bir tema yerinde düzenlenemez.
invalid_chromeÜst ve alt bilgi nesnedir; konumlar sıra numarasıdır.
unknown_variantDü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":{}}'
Yanıt
{
  "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":{}}'
tools/call
{
  "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

POSThttps://app.getera.io/api/v1/contact_infos/actions/set_contact_info
API anahtarı ya da OAuth token · site:manage
  • Asıl adres: POST /api/v1/actions/site.set_contact_info

Girdi

AlanTürZorunluAçıklama
siteIduuidevetSite · kimliği: site
emailemailE-posta · en çok 255
phonephoneTelefon · en çok 50
addressstringAdres · en çok 1000
instagramUrlstringInstagram · en çok 500
tiktokUrlstringTikTok · en çok 500
linkedinUrlstringLinkedIn · en çok 500
facebookUrlstringFacebook · en çok 500
youtubeUrlstringYouTube · en çok 500
twitterUrlstringX · en çok 500

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
site_not_foundSite bu çalışma alanında bulunmalı.
invalid_urlHer 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"}'
Yanıt
{
  "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"
tools/call
{
  "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

POSThttps://app.getera.io/api/v1/site_contents/actions/set_content
API anahtarı ya da OAuth token · site:manage
  • Asıl adres: POST /api/v1/actions/site.set_content

Girdi

AlanTürZorunluAçıklama
siteIduuidevetSite · kimliği: site
keystringevetKayıt · en çok 100
valueobject / arrayevetDeğer
localestringDil · Only this language (tr, en …); leave empty to send every language. · en çok 5
labelstringAd · en çok 200
isPublicbooleanSitede gösterilir

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
site_not_foundSite bu çalışma alanında bulunmalı.
content_not_foundİçerik sitede tanımlı olmalı (site.define_content ile).
invalid_contentDeğ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":{}}'
Yanıt
{
  "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":{}}'
tools/call
{
  "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

POSThttps://app.getera.io/api/v1/pages/{id}/actions/set_homepage
API anahtarı ya da OAuth token · site:write
  • Asıl adres: POST /api/v1/actions/site.set_homepage

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Sayfa · kimliği: page

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
page_not_foundSayfa bu çalışma alanında bulunmalı.
no_changeZaten ana sayfa olmamalı.
page_not_publishedYalnı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 '{}'
Yanıt
{
  "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
tools/call
{
  "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

POSThttps://app.getera.io/api/v1/sites/{id}/actions/set_locale
API anahtarı ya da OAuth token · site:manage
  • Asıl adres: POST /api/v1/actions/site.set_locale

Girdi

AlanTürZorunluAçıklama
siteIduuidevetDoldurulduğu yer: adresteki {id} · Site · kimliği: site
defaultLocalestringevetVarsayılan dil · en çok 16
localesobject / arrayKullanılabilir diller

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
site_not_foundSite bu çalışma alanında bulunmalı.
invalid_localeVarsayı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"}'
Yanıt
{
  "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"
tools/call
{
  "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

POSThttps://app.getera.io/api/v1/newses/{id}/actions/set_news_status
API anahtarı ya da OAuth token · site:write
  • Asıl adres: POST /api/v1/actions/site.set_news_status

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Haber · kimliği: news
statusstring (enum)evetDurum · İzin verilen değerler: draft, published, archived
scheduledOnlybooleanPlanlı çalıştırma

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
news_not_foundÖğe bu çalışma alanında bulunmalı.
no_changeZaten bu durumda olmamalı.
empty_contentBoş bir öğe yayımlanamaz.
not_scheduledOtomatik 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"}'
Yanıt
{
  "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"
tools/call
{
  "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

POSThttps://app.getera.io/api/v1/themes/{id}/actions/set_page_blocks
API anahtarı ya da OAuth token · site:write
  • Asıl adres: POST /api/v1/actions/site.set_page_blocks

Girdi

AlanTürZorunluAçıklama
themeIduuidevetDoldurulduğu yer: adresteki {id} · Tema · kimliği: theme
pageIduuidevetSayfa · kimliği: page
blocksobject / arrayevetBloklar

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
theme_not_foundTema bu çalışma alanında bulunmalı.
theme_is_publishedYayındaki bir tema yerinde düzenlenemez.
archivedArşivlenmiş bir tema düzenlenemez.
page_not_foundSayfa temanın sitesinde olmalı.
invalid_blocksHer 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":{}}'
Yanıt
{
  "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":{}}'
tools/call
{
  "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

POSThttps://app.getera.io/api/v1/pages/{id}/actions/set_page_nav
API anahtarı ya da OAuth token · site:write
  • Asıl adres: POST /api/v1/actions/site.set_page_nav

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Sayfa · kimliği: page
showInHeaderbooleanÜst menü
showInFooterbooleanAlt bilgi menüsü
sortOrdernumberKonum · en az 0

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
page_not_foundSayfa 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}'
Yanıt
{
  "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
tools/call
{
  "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

POSThttps://app.getera.io/api/v1/pages/{id}/actions/set_page_status
API anahtarı ya da OAuth token · site:write
  • Asıl adres: POST /api/v1/actions/site.set_page_status

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Sayfa · kimliği: page
statusstring (enum)evetDurum · İzin verilen değerler: draft, published, archived

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
page_not_foundSayfa bu çalışma alanında bulunmalı.
no_changeZaten bu durumda olmamalı.
homepage_must_stay_publishedAna 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"}'
Yanıt
{
  "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"
tools/call
{
  "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

POSThttps://app.getera.io/api/v1/policies/actions/set_policy
API anahtarı ya da OAuth token · site:manage
  • Asıl adres: POST /api/v1/actions/site.set_policy

Girdi

AlanTürZorunluAçıklama
siteIduuidevetSite · kimliği: site
policyTypestring (enum)evetHangisi · İzin verilen değerler: privacy_policy, terms_of_service, cookie_policy
titlestringevetBaşlık · en çok 255
contentstringevetMetin · en çok 200000
isActivebooleanSitede gösterilir

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
site_not_foundSite 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"}'
Yanıt
{
  "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"
tools/call
{
  "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

POSThttps://app.getera.io/api/v1/domains/{id}/actions/set_primary_domain
API anahtarı ya da OAuth token · site:manage
  • Asıl adres: POST /api/v1/actions/site.set_primary_domain

Girdi

AlanTürZorunluAçıklama
domainIduuidevetDoldurulduğu yer: adresteki {id} · Adres · kimliği: domain

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
domain_not_foundAdres burada kayıtlı olmalı.
not_verifiedYalnızca doğrulanmış bir adres birincil olabilir.
already_primaryZaten 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 '{}'
Yanıt
{
  "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
tools/call
{
  "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

POSThttps://app.getera.io/api/v1/page_redirects/actions/set_redirect
API anahtarı ya da OAuth token · site:manage
  • Asıl adres: POST /api/v1/actions/site.set_redirect

Girdi

AlanTürZorunluAçıklama
siteIduuidevetSite · kimliği: site
fromPathstringevetEski adres · en çok 500
toPathstringevetGittiği yer · en çok 500
statusCodenumberTür · Kalıcı taşıma için 301, henüz karar vermediyseniz 302. · en az 301 · en çok 308
notestringNeden · en çok 300

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
site_not_foundSite bu çalışma alanında bulunmalı.
invalid_pathİki taraf da bu sitede bir yol olmalı.
redirect_loopBir 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"}'
Yanıt
{
  "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"
tools/call
{
  "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

POSThttps://app.getera.io/api/v1/site_infos/actions/set_site_info
API anahtarı ya da OAuth token · site:manage
  • Asıl adres: POST /api/v1/actions/site.set_site_info

Girdi

AlanTürZorunluAçıklama
siteIduuidevetSite · kimliği: site
companyNamestringevetŞirket adı · en çok 255
companyDescriptionstringHakkında · en çok 8000
sloganstringSlogan · en çok 255
foundedYearnumberKuruluş · en az 1800
footerTextstringAlt bilgi metni · en çok 2000
footerCopyrightstringTelif hakkı satırı · en çok 255
websiteUrlstringWeb sitesi · en çok 500
metaDescriptionstringArama açıklaması · en çok 2000
metaKeywordsstringAnahtar kelimeler · en çok 500
logoLightIduuidLogo (açık) · kimliği: file
logoDarkIduuidLogo (koyu) · kimliği: file
faviconIduuidSite simgesi · kimliği: file

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
site_not_foundSite bu çalışma alanında bulunmalı.
invalid_founded_yearKuruluş yılı 1800 ile bu yıl arasındadır.
file_not_foundHer 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"}'
Yanıt
{
  "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"
tools/call
{
  "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

POSThttps://app.getera.io/api/v1/themes/{id}/actions/set_site_widgets
API anahtarı ya da OAuth token · site:write
  • Asıl adres: POST /api/v1/actions/site.set_site_widgets

Girdi

AlanTürZorunluAçıklama
themeIduuidevetDoldurulduğu yer: adresteki {id} · Tema · kimliği: theme
widgetsobject / arrayevetBileşenler

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
theme_not_foundTema bu çalışma alanında bulunmalı.
theme_is_publishedYayındaki bir tema yerinde düzenlenemez.
archivedArşivlenmiş bir tema düzenlenemez.
invalid_widgetsYalnı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":{}}'
Yanıt
{
  "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":{}}'
tools/call
{
  "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

POSThttps://app.getera.io/api/v1/themes/{id}/actions/set_theme_seo
API anahtarı ya da OAuth token · site:write
  • Asıl adres: POST /api/v1/actions/site.set_theme_seo

Girdi

AlanTürZorunluAçıklama
themeIduuidevetDoldurulduğu yer: adresteki {id} · Tema · kimliği: theme
seoobject / arraySite varsayılanları
pageIduuidSayfa · kimliği: page
pageSeoobject / arraySayfaya özel ayarlar

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
theme_not_foundTema bu çalışma alanında bulunmalı.
theme_is_publishedYayındaki bir tema yerinde düzenlenemez.
page_not_foundSayfa ayarları bu sitede bir sayfa gerektirir.
invalid_seoSEO bölümleri nesnedir.
meta_title_too_longMeta 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":{}}'
Yanıt
{
  "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":{}}'
tools/call
{
  "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

POSThttps://app.getera.io/api/v1/themes/{id}/actions/set_theme_tokens
API anahtarı ya da OAuth token · site:write
  • Asıl adres: POST /api/v1/actions/site.set_theme_tokens

Girdi

AlanTürZorunluAçıklama
themeIduuidevetDoldurulduğu yer: adresteki {id} · Tema · kimliği: theme
colorsobject / arrayPalet
typographyobject / arrayTipografi
layoutobject / arrayDüzen
darkModeobject / arrayKoyu mod
motionobject / arrayHareket

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
theme_not_foundTema bu çalışma alanında bulunmalı.
theme_is_publishedYayındaki bir tema yerinde düzenlenemez.
missing_colour_tokenPalet on yedi değerin hepsini taşır.
unknown_fontYazı tipi, sitenin yüklediği yazı tiplerinden biri olmalı.
invalid_tokensBoyutlar, ö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":{}}'
Yanıt
{
  "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":{}}'
tools/call
{
  "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

Siteme bak — Sitelerin canlı adresleri ve taslak/yayında durumu — telefonda açılan bağlantılar.

Gereken izin site:read · yalnız okur

POSThttps://app.getera.io/api/v1/actions/site.share_links
API anahtarı ya da OAuth token · site:read
AlanTürZorunluAçıklama
siteIduuidSite · Boş = her site. · kimliği: site

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
site_not_foundBu 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"}'
Yanıt
{
  "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"
tools/call
{
  "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

POSThttps://app.getera.io/api/v1/theme_snapshots/actions/snapshot_theme
API anahtarı ya da OAuth token · site:manage
  • Asıl adres: POST /api/v1/actions/site.snapshot_theme

Girdi

AlanTürZorunluAçıklama
themeIduuidevetTema · kimliği: theme
kindstring (enum)Tür · İzin verilen değerler: auto, manual, before
labelstringAd · en çok 120

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
theme_not_foundTema bu çalışma alanında bulunmalı.
label_requiredAdlandı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"}'
Yanıt
{
  "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"
tools/call
{
  "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)

POSThttps://app.getera.io/api/v1/site_deploys/{id}/actions/start_deploy
API anahtarı ya da OAuth token · site:manage
  • Asıl adres: POST /api/v1/actions/site.start_deploy

Girdi

AlanTürZorunluAçıklama
siteIduuidevetSite · kimliği: site
kindstring (enum)Tür · İzin verilen değerler: static, theme
providerstring (enum)Koşul · İzin verilen değerler: cloudflare, local
sourcestring (enum)Nereden · İzin verilen değerler: api, cli, desktop, chat, screen, rollback
fileCountnumberDosyalar · en az 0
totalBytesnumberBayt cinsinden boyut · en az 0
hasWorkerbooleanWorker girişi var
manifestobject / arrayDosyalar ve özetleri
notestringNot · en çok 300
rollbackOfuuidDoldurulduğ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:

KodNe zaman reddedilir
site_not_foundSite bu çalışma alanında bulunmalı.
bundle_too_largePaket yayın sınırlarına sığmalı (20.000 dosya, 500 MB).
deploy_in_progressBir sitenin aynı anda yalnızca bir yayını çalışır.
version_not_foundGeri 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"}'
Yanıt
{
  "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"
tools/call
{
  "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)

Bir web sitesi işlemi: siteniz bunu site API’si üzerinden çağırır (/api/site/v1/{siteId}, örneğin @getera/storefront ile). API anahtarı ya da token ile istek reddedilir (403 site_only).
POSThttps://app.getera.io/api/v1/contact_submissions/actions/submit_contact
API anahtarı ya da OAuth token · site:write
  • Asıl adres: POST /api/v1/actions/site.submit_contact

Girdi

AlanTürZorunluAçıklama
siteIduuidevetSite · kimliği: site
fullnamestringevetAd · en çok 255
emailemailevetE-posta · en çok 255
subjectstringevetKonu · en çok 500
companystringŞirket · en çok 255
phonephoneTelefon · en çok 50
countryCodenumberÜlke kodu · en az 1 · en çok 999
projectDetailsstringMesaj · en çok 20000
userAgentstringTarayıcı · en çok 500
websitestringWeb sitesi · Bunu boş bırakın. · en çok 255

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
site_not_foundSite bulunmalı.
honeypotTuzak alan boş olmalı.
missing_detailsAd ve konu zorunludur.
rate_limitedAynı 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

POSThttps://app.getera.io/api/v1/blog_tags/{id}/actions/tag_post
API anahtarı ya da OAuth token · site:write
  • Asıl adres: POST /api/v1/actions/site.tag_post

Girdi

AlanTürZorunluAçıklama
postIduuidevetYazı · kimliği: blog_post
tagIduuidevetDoldurulduğu yer: adresteki {id} · Etiket · kimliği: blog_tag

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
post_not_foundYazı bu çalışma alanında bulunmalı.
tag_not_foundEtiket aynı sitede olmalı.
already_taggedYazı 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"}'
Yanıt
{
  "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"
tools/call
{
  "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

POSThttps://app.getera.io/api/v1/sites/{id}/actions/unpublish
API anahtarı ya da OAuth token · site:manage
  • Asıl adres: POST /api/v1/actions/site.unpublish

Girdi

AlanTürZorunluAçıklama
siteIduuidevetDoldurulduğu yer: adresteki {id} · Site · kimliği: site

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
site_not_foundSite 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 '{}'
Yanıt
{
  "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
tools/call
{
  "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)

POSThttps://app.getera.io/api/v1/blog_posts/{id}/actions/unpublish_post
API anahtarı ya da OAuth token · site:write
  • Asıl adres: POST /api/v1/actions/site.unpublish_post

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Yazı · kimliği: blog_post
statusstring (enum)Durum · İzin verilen değerler: draft, archived

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
post_not_foundYazı bu çalışma alanında bulunmalı.
no_changeZaten 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"}'
Yanıt
{
  "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"
tools/call
{
  "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

POSThttps://app.getera.io/api/v1/blog_tags/{id}/actions/untag_post
API anahtarı ya da OAuth token · site:write
  • Asıl adres: POST /api/v1/actions/site.untag_post

Girdi

AlanTürZorunluAçıklama
postIduuidevetYazı · kimliği: blog_post
tagIduuidevetDoldurulduğu yer: adresteki {id} · Etiket · kimliği: blog_tag

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
post_not_foundYazı bu çalışma alanında bulunmalı.
not_taggedYazı 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"}'
Yanıt
{
  "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"
tools/call
{
  "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

POSThttps://app.getera.io/api/v1/pages/{id}/actions/update_page
API anahtarı ya da OAuth token · site:write
  • REST kısayolu: PATCH /api/v1/pages/{id}
  • Asıl adres: POST /api/v1/actions/site.update_page

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Sayfa · kimliği: page
titlestringBaşlık · en çok 255
slugstringAdres · en çok 255
metaTitlestringArama başlığı · en çok 255
metaDescriptionstringArama açıklaması · en çok 2000
metaKeywordsstringAnahtar kelimeler · en çok 500
sortOrdernumberKonum · en az 0

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
page_not_foundSayfa bu çalışma alanında bulunmalı.
slug_takenYeni 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"}'
Yanıt
{
  "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"
tools/call
{
  "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

POSThttps://app.getera.io/api/v1/domains/{id}/actions/verify_domain
API anahtarı ya da OAuth token · site:manage
  • Asıl adres: POST /api/v1/actions/site.verify_domain

Girdi

AlanTürZorunluAçıklama
domainIduuidevetDoldurulduğu yer: adresteki {id} · Adres · kimliği: domain
observedTxtstringevetGö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:

KodNe zaman reddedilir
domain_not_foundAdres burada kayıtlı olmalı.
already_verifiedZaten doğrulanmış olmamalı.
no_tokenAranacak bir doğrulama kaydı olmalı.
token_not_foundKayı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"}'
Yanıt
{
  "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"
tools/call
{
  "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_authors
  • GET /api/v1/blog_authors/{id}
  • PATCH /api/v1/blog_authors/{id} → site.save_blog_author
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
site_idstring (uuid) · uuidsite
user_idstring (uuid) · uuidapp_user
display_namestring · text
biostring · textevet
is_publicboolean · bool
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz

Birincil anahtar: id

Tekil: site_id, user_id

BlogCategory

Tablo blog_category · Kaynak blog_categories

  • GET /api/v1/blog_categories
  • GET /api/v1/blog_categories/{id}
  • PATCH /api/v1/blog_categories/{id} → site.save_blog_category
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
site_idstring (uuid) · uuidsite
namestring · text
slugstring · text
descriptionstring · textevet
colorstring · textevet
iconstring · textevet
sort_orderinteger · int4
is_activeboolean · bool
created_atstring (date-time) · timestamptz
updated_atstring (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_tags
  • GET /api/v1/blog_post_tags/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
post_idstring (uuid) · uuidblog_post
tag_idstring (uuid) · uuidblog_tag

Birincil anahtar: post_id, tag_id

BlogPost

Tablo blog_post · Kaynak blog_posts

  • GET /api/v1/blog_posts
  • GET /api/v1/blog_posts/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
site_idstring (uuid) · uuidsite
titlestring · text
slugstring · text
excerptstring · textevet
contentobject · jsonb
statusstring · textdraft, published, archived
published_atstring (date-time) · timestamptzevet
author_idstring (uuid) · uuidevetblog_author
category_idstring (uuid) · uuidevetblog_category
meta_titlestring · textevet
meta_descriptionstring · textevet
meta_keywordsstring · textevet
view_countinteger · int4
is_featuredboolean · bool
featured_imagestring (uuid) · uuidevetfile
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz
scheduled_atstring (date-time) · timestamptzevet

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_tags
  • GET /api/v1/blog_tags/{id}
  • PATCH /api/v1/blog_tags/{id} → site.save_blog_tag
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
site_idstring (uuid) · uuidsite
namestring · text
slugstring · text
usage_countinteger · int4
is_publicboolean · bool
created_atstring (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_references
  • GET /api/v1/client_references/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
site_idstring (uuid) · uuidsite
client_namestring · text
client_sectorstring · textevet
client_logostring (uuid) · uuidevetfile
project_titlestring · textevet
project_descriptionstring · textevet
project_imagesstring[] · uuid[]
project_urlstring · textevet
testimonialstring · textevet
testimonial_authorstring · textevet
testimonial_positionstring · textevet
is_featuredboolean · bool
is_publicboolean · bool
sort_orderinteger · int4
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz

Birincil anahtar: id

ContactInfo

Tablo contact_info · Kaynak contact_infos

  • GET /api/v1/contact_infos
  • GET /api/v1/contact_infos/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
site_idstring (uuid) · uuidsite
emailstring · textevet
phonestring · textevet
addressstring · textevet
instagram_urlstring · textevet
tiktok_urlstring · textevet
linkedin_urlstring · textevet
facebook_urlstring · textevet
youtube_urlstring · textevet
twitter_urlstring · textevet
is_publicboolean · bool
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz

Birincil anahtar: id

Tekil: site_id

ContactSubmission

Tablo contact_submission · Kaynak contact_submissions

  • GET /api/v1/contact_submissions
  • GET /api/v1/contact_submissions/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
site_idstring (uuid) · uuidsite
fullnamestring · text
companystring · textevet
emailstring · text
phonestring · textevet
country_codeinteger · int2evet
subjectstring · text
project_detailsstring · textevet
user_agentstring · textevet
statusstring · textnew, read, replied, archived, spam
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz

Birincil anahtar: id

Domain

Tablo domain · Kaynak domains

  • GET /api/v1/domains
  • GET /api/v1/domains/{id}
  • POST /api/v1/domains → site.add_domain
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
site_idstring (uuid) · uuidsite
hoststring · text
kindstring · text
is_primaryboolean · bool
statusstring · text
ssl_statusstring · text
created_atstring (date-time) · timestamptz
verified_atstring (date-time) · timestamptzevet

Birincil anahtar: id

Tekil: host

FaqCategory

Tablo faq_category · Kaynak faq_categories

SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
site_idstring (uuid) · uuidsite
namestring · text
slugstring · text
descriptionstring · textevet
iconstring · textevet
sort_orderinteger · int4
is_activeboolean · bool
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz

Birincil anahtar: id

Tekil: site_id, slug

FaqItem

Tablo faq_item · Kaynak faq_items

SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
site_idstring (uuid) · uuidsite
category_idstring (uuid) · uuidevetfaq_category
questionstring · text
answerstring · text
sort_orderinteger · int4
is_activeboolean · bool
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz

Birincil anahtar: id

News

Tablo news · Kaynak newses

  • GET /api/v1/newses
  • GET /api/v1/newses/{id}
  • PATCH /api/v1/newses/{id} → site.save_news
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
site_idstring (uuid) · uuidsite
titlestring · text
slugstring · text
descriptionstring · textevet
contentobject · jsonb
statusstring · textdraft, published, archived
published_atstring (date-time) · timestamptzevet
created_bystring (uuid) · uuidevetapp_user
updated_bystring (uuid) · uuidevetapp_user
meta_titlestring · textevet
meta_descriptionstring · textevet
view_countinteger · int4
is_featuredboolean · bool
featured_imagestring (uuid) · uuidevetfile
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz
scheduled_atstring (date-time) · timestamptzevet

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_redirects
  • GET /api/v1/page_redirects/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
site_idstring (uuid) · uuidsite
from_pathstring · text
to_pathstring · text
status_codeinteger · int4
notestring · textevet
is_publicboolean · bool
created_atstring (date-time) · timestamptz
updated_atstring (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

SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
site_idstring (uuid) · uuidsite
titlestring · text
slugstring · text
meta_titlestring · textevet
meta_descriptionstring · textevet
meta_keywordsstring · textevet
statusstring · textdraft, published, archived
parent_idstring (uuid) · uuidevetpage
sort_orderinteger · int4
is_homepageboolean · bool
show_in_headerboolean · bool
show_in_footerboolean · bool
is_defaultboolean · bool
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz

Birincil anahtar: id

Tekil: site_id, slug

Policy

Tablo policy · Kaynak policies

  • GET /api/v1/policies
  • GET /api/v1/policies/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
site_idstring (uuid) · uuidsite
policy_typestring · textcookie_policy, privacy_policy, terms_of_service
titlestring · text
contentstring · text
is_activeboolean · bool
created_atstring (date-time) · timestamptz
updated_atstring (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_themes
  • GET /api/v1/site_code_themes/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
site_idstring (uuid) · uuidsite
namestring · text
manifestobject · jsonb
versioninteger · int4
imported_bystring (uuid) · uuidevetapp_user
created_atstring (date-time) · timestamptz
updated_atstring (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_contents
  • GET /api/v1/site_contents/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
site_idstring (uuid) · uuidsite
keystring · text
kindstring · texttext, rich_text, image, link, hours, list, number, boolean, json
sectionstring · text
labelstring · text
helpstring · textevet
valueobject · jsonb
sort_orderinteger · int4
is_publicboolean · bool
updated_bystring (uuid) · uuidevetapp_user
created_atstring (date-time) · timestamptz
updated_atstring (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_deploys
  • GET /api/v1/site_deploys/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
site_idstring (uuid) · uuidsite
versioninteger · int4
kindstring · textstatic, theme
providerstring · textcloudflare, local
statusstring · textuploading, live, failed, superseded, removed
urlstring · textevet
hoststring · textevet
script_namestring · textevet
provider_version_idstring · textevet
sourcestring · textapi, cli, desktop, chat, screen, rollback
rollback_ofstring (uuid) · uuidevetsite_deploy
file_countinteger · int4
total_bytesstring (int64) · int8
has_workerboolean · bool
manifestobject · jsonb
logobject · jsonb
errorstring · textevet
notestring · textevet
created_bystring (uuid) · uuidevetapp_user
created_atstring (date-time) · timestamptz
finished_atstring (date-time) · timestamptzevet

Birincil anahtar: id

Tekil: site_id, version

SiteInfo

Tablo site_info · Kaynak site_infos

  • GET /api/v1/site_infos
  • GET /api/v1/site_infos/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
site_idstring (uuid) · uuidsite
company_namestring · text
company_descriptionstring · textevet
sloganstring · textevet
founded_yearinteger · int4evet
footer_textstring · textevet
footer_copyrightstring · textevet
website_urlstring · textevet
meta_descriptionstring · textevet
meta_keywordsstring[] · text[]
logo_lightstring (uuid) · uuidevetfile
logo_darkstring (uuid) · uuidevetfile
faviconstring (uuid) · uuidevetfile
is_publicboolean · bool
created_atstring (date-time) · timestamptz
updated_atstring (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/sites
  • GET /api/v1/sites/{id}
  • POST /api/v1/sites → site.create_site
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
typestring · site_typebusiness, commerce, landing, portal
namestring · text
slugstring · text
localesstring[] · text[]
default_localestring · text
auth_modestring · text
publishedboolean · bool
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz

Birincil anahtar: id

Tekil: workspace_id, slug

ThemeSnapshot

Tablo theme_snapshot · Kaynak theme_snapshots

  • GET /api/v1/theme_snapshots
  • GET /api/v1/theme_snapshots/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
site_idstring (uuid) · uuidsite
theme_idstring (uuid) · uuidtheme
kindstring · textauto, manual, before
labelstring · textevet
configobject · jsonb
section_countinteger · int4
created_bystring (uuid) · uuidevetapp_user
created_atstring (date-time) · timestamptz

Birincil anahtar: id

Theme

Tablo theme · Kaynak themes

  • GET /api/v1/themes
  • GET /api/v1/themes/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
site_idstring (uuid) · uuidsite
namestring · text
statusstring · text
versioninteger · int4
configobject · jsonb
schema_versionstring · text
parent_idstring (uuid) · uuidevettheme
custom_cssstring · textevet
created_atstring (date-time) · timestamptz
published_atstring (date-time) · timestamptzevet
updated_atstring (date-time) · timestamptz
scheduled_atstring (date-time) · timestamptzevet

Birincil anahtar: id

Olaylar

İş akışları ve webhook'lar bu olaylara tepki verir.

OlayNe olurTaşıdığı alanlar
site.auth_mode_changedBir site ziyaretçi giriş modunu değiştirdi.site_id, auth_mode
site.blocks_changedBir sayfa düzeni bir taslak temaya kaydedildi.site_id, theme_id, page_id, blocks
site.blog_taxonomy_changedBir 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_submittedBiri iletişim formunu doldurdu. Gelen kutusu bunun için bir konuşma açar.id, siteId, email
site.content_changedBir sitenin düzenlenebilir içeriği değişti (yeniden derleme kancası dinleyebilir).site_id, keys
site.createdBir site oluşturuldu.site_id, type, host
site.deploy_failedBir sitenin yayını başarısız oldu.site_id, deploy_id, version, error
site.deploy_removedYayındaki bir site kaldırıldı.site_id, deploy_id
site.deploy_startedBir sitenin yeni sürümü yüklenmeye başladı.site_id, deploy_id, version
site.deployedBir sitenin bir sürümü yayına girdi.site_id, deploy_id, version, url
site.domain_addedBir site için bir adres alındı.domain_id, site_id, host
site.domain_removedBir 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_changedBir soru, grup ya da sıralama değişti.id, kind
site.homepage_changedFarklı bir sayfa ana sayfa oldu.id, siteId
site.info_changedŞirket bilgileri değişti.id, siteId
site.links_sharedBiri (ya da Era) sitelerin nereden görüleceğini sordu.count
site.locale_changedBir 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_publishedBir haberin durumu değişti.id, status
site.news_savedBir haber yazıldı ya da düzenlendi.id, siteId, slug
site.page_createdBir sayfa eklendi.id, siteId, slug
site.page_deletedBir sayfa silindi.id, siteId
site.page_movedBir sayfa sayfa ağacında taşındı.id, parentId
site.page_status_changedBir sayfa yayımlandı, taslağa alındı ya da arşivlendi.id, status
site.page_updatedBir sayfa düzenlendi.id, slug, redirectedFrom
site.policy_changedBir yasal sayfa değişti.id, siteId, policyType
site.post_publishedBir blog yazısı yayına girdi.id, siteId
site.post_savedBir blog yazısı yazıldı ya da düzenlendi.id, siteId, slug
site.post_taggedBir yazıya etiket eklendi ya da kaldırıldı.postId, tagId
site.post_unpublishedBir blog yazısı yayından kalktı.id, status
site.primary_domain_changedFarklı bir adres birincil oldu.domain_id, host
site.publishedBir site yayına girdi.site_id
site.redirect_changedBir yönlendirme yazıldı ya da kaldırıldı.id, siteId, fromPath
site.reference_deletedBir referans kaldırıldı.id, siteId
site.reference_savedBir referans yazıldı ya da düzenlendi.id, siteId
site.submission_markedBir mesaj okundu, yanıtlandı, arşivlendi ya da istenmeyen olarak işaretlendi.id, status
site.theme_changedBir taslak temanın görünümü değiştirildi.site_id, theme_id
site.theme_draft_createdYayındaki temadan bir taslak tema türetildi.site_id, theme_id, forked_from
site.theme_importedA code site’s theme manifest (era.theme.json) was imported.site_id, version, sections
site.theme_publishedBir tema taslağı yayımlandı.site_id, theme_id
site.theme_scheduledBir tema taslağı yayına zamanlandı ya da zamanlaması iptal edildi.site_id, theme_id, publish_at
site.unpublishedBir site yayından kaldırıldı.site_id
Bu sayfa yardımcı oldu mu?