hosting
POST /v1/sites/{siteId}/wordpress/themes
Install a theme on a site's WordPress.
Аутентификација
Пошаљите API кључ као bearer токен. Кључ мора имати дозволу sites.view; кључ без ње се одбија уз 403, а не 404.
Ова крајња тачка не прихвата id организације. Ваш кључ већ идентификује организацију којој припада, а одговор је ограничен на њу.
Испробајте
Замените све што је у угластим заградама сопственим вредностима, а чувар места кључа кључем са своје контролне табле.
curl -X POST https://api.zinndigital.com/v1/sites/{siteId}/wordpress/themes \
-H "Authorization: Bearer zdk_live_…" \
-H "Content-Type: application/json" \
-d '{ }'Пријављени сте? API конзола на вашој контролној табли попуњава ваш прави id организације и ваш сопствени кључ, и покреће захтев према живом API-ју како бисте могли да видите стварни одговор. Отворите ову крајњу тачку у API конзоли
Детаљи
Installs a theme, from the wordpress.org directory by slug (what searchWordPressThemeDirectory returns) or from a zip the customer uploads. ⛔⛔ This did not exist until W22-D, and its absence is the whole of the owner's complaint on 2026-08-16: "no way in this or the main site manager bit to add new theme or uplaod one". The platform could list, activate and delete a theme and had no way to put one on a site, so a customer could only ever choose among the three themes WordPress ships with — and could delete two of them. ⛔ Exactly one of slug and zip — never both, refused rather than resolved by precedence. ⛔ activate defaults to false here and to true on the plugin path, and the asymmetry is deliberate. Activating a plugin adds behaviour; activating a theme replaces what every visitor sees, immediately, on a live site. A customer uploading a theme to look at it must not have their shop re-skinned as a side effect of the upload. ⚠️ An uploaded zip is the customer's own code running on their own site, and we do not review it. It is size-capped at 256 MB (see the plugin install for how the limit is enforced and why a file must be sent as multipart/form-data) and rejected unless it is a valid archive containing a single top-level directory whose style.css carries a Theme Name: header, which is what WordPress itself requires. Note that a theme is not validated the way a plugin is: a block theme can legitimately contain no PHP at all, so a PHP-file check would refuse valid modern themes. ⛔ Fleet only. this platform exposes no theme-install endpoint at any path, and its own control panel offers no install control on its Themes page either — both measured 2026-08-16. So this is refused on the managed hosting line, where wp_theme_install is false; the capability map on getSiteWordPress says so up front rather than letting the customer discover it by pressing the button. Requires sites.view and sites.panel_access.
Параметри
| Назив | Тип | Обавезно | Шта је ово |
|---|---|---|---|
siteId (path) | Uuid | Да | Site ID (UUIDv7). |
Тело захтева
| Назив | Тип | Обавезно | Шта је ово |
|---|---|---|---|
slug | string | Не | A wordpress.org directory slug. Lower-case, digits and hyphens — the directory's own alphabet, enforced here so a path separator or a URL can never reach the box as a "slug". |
zip | string | Не | A base64-encoded theme zip, for small files only: the whole JSON body is capped at 32 MB, so this carries at most ~24 MB decoded and a larger body is refused 413. Send anything… |
activate | boolean | Не | Make this the site's active theme after installing. Defaults to false — see the asymmetry with the plugin path above. |
Одговор
| Назив | Тип | Обавезно | Шта је ово |
|---|---|---|---|
data | SiteWordPressTheme[] | Да | The installed themes. |
Грешке које ова крајња тачка може вратити
401 · 403 · 404 · 413 · 422 · 429 · 503