# uCoz API (uAPI) — Full Reference > REST API for full management of websites hosted on the uCoz platform. Provides programmatic access to all site modules: content, users, e-commerce, design, templates, settings, security, and tools. Suitable for automation, integrations, and AI agents. Documentation: https://api.ucoz.net/ This file is generated from the English OpenAPI specs (`en/*-openapi.yaml`) and lists **every** documented path, method, parameter, and request-body field. ## Authentication All requests require a Bearer JWT token: ``` Authorization: Bearer ``` Tokens are created in the site control panel under **Site → uAPI**. Pass the token in the `Authorization` header of every request. ## Base URL ``` https://{yoursite}/uapi ``` Example: `https://mysite.ucoz.ru/uapi` All paths below are relative to this base URL. Prefer `application/x-www-form-urlencoded` for write bodies unless a method says otherwise. > **For AI agents**: the [uCoz MCP server](https://api.ucoz.net/mcp.html) (`npx ucoz-mcp@latest`) is recommended for templates, whole-site design, menus, forms, modules, and FTP. --- ## Model Context Protocol (MCP) Documentation: https://api.ucoz.net/mcp.html Production-ready MCP server for AI agents (`npx ucoz-mcp@latest`). Ten tools: `templates_tool`, `tmaker_tool`, `content_tool`, `shop_tool`, `subscriptions_tool`, `users_tool`, `ftp_tool`, `modules_tool`, `skills_tool`, `docs_tool`. Everyday single-template edits use `templates_tool`; whole-site design publishing uses `tmaker_tool`. Requires Node.js 18+. ### Setup ```json { "mcpServers": { "ucoz-mcp": { "command": "npx", "args": ["-y", "ucoz-mcp@latest"], "env": { "UCOZ_API_TOKEN": "YOUR_UCOZ_API_TOKEN", "UCOZ_SITE_URL": "https://your-site.ucoz.net/", "UCOZ_FTP_HOST": "your-site.ucoz.net", "UCOZ_FTP_USER": "your-ftp-login", "UCOZ_FTP_PASS": "your-ftp-password" } } } } ``` Add this config to: - **Cursor**: Settings → Customize → MCPs → New MCP Server - **Claude Desktop** (macOS): `~/Library/Application Support/Claude/claude_desktop_config.json` - **Claude Desktop** (Windows): `%APPDATA%/Claude/claude_desktop_config.json` - **Codex / Antigravity / other stdio clients**: command `npx`, args `-y ucoz-mcp@latest`, same env **Token**: site control panel → Site → uAPI. For full MCP access, a key with Control Panel settings access is recommended (whole-site design, module install, FTP password changes, some subscription admin actions). **FTP credentials**: site control panel → FTP (activation may take up to 15 minutes). Optional: `UCOZ_WORKSPACE` — project root for skill installs. ### Tool: `templates_tool` Single-template edits, backups, global blocks, menus, mail forms, pages. Auto-backup before save. Key actions: `list_modules`, `get_variables`, `read_template`, `patch_template` (preferred for edits), `update_template` (full rewrite), `validate_template`, `list_backups`, `create_backup`, `delete_backup`, `restore_backup`, `gblock_create`, `gblock_delete`, `menu_*`, `mail_*`, `page_*`, `get_reference`, `get_guide`, `get_backup_guide`. ### Tool: `tmaker_tool` Whole-site design / HTML frame (skeleton). Publishes one frame into all site templates. Requires Control Panel settings access. Key actions: `skeleton_guide`, `skeleton_rules`, `designs_list` / `design_get`, `project_list` / `project_get`, `skeleton_validate`, `project_save`, `project_save_active`, `project_delete`, `skeleton_archive`, `skeleton_publish` (`confirm=true` required). ### Tool: `content_tool` Content modules via `module` + `action`: news, blog, publ, board, photo, video, faq, dir, load, gb, stuff, forum, mchat, polls. Entry CRUD, categories, comments, forum sections/topics/posts. ### Tool: `shop_tool` Online shop: categories, goods, images, variations (`variation_dict` → `variation_gen` with `var_*` fields), stock, basket, checkout, orders, balance. ### Tool: `subscriptions_tool` Plans, user subscriptions, payments, access checks. Admin actions need Control Panel settings access. ### Tool: `users_tool` Users, groups, ranks, profile fields: `list`/`get`/`add`/`register`/`update`/`delete`, `group_*`, `groups_rights`, `ranks`, `fields`, `chlogin`/`chgroup`/`chpass`. ### Tool: `ftp_tool` FTP file ops + FTP password via uAPI. Params: `path`, `filepath` (read/write), `source`/`destination` (rename), `ftp_password` (set/change). Actions: `list`, `read`, `write`, `mkdir`, `delete`, `rename`, `upload`, `ftp_password_*`. ### Tool: `modules_tool` Module install/uninstall, uAPI toggles, quarantine: `modules_list`, `module_status`, `module_install`, `module_uninstall`, `active_mods`, `module_enable_uapi`, `module_disable_uapi`, `quarantine_status`, `quarantine_unlock`. ### Tool: `skills_tool` Official skill routing: `resolve`, `catalog`, `status`, `install`, `register_usage`. ### Tool: `docs_tool` OpenAPI fallback on api.ucoz.net: `search`, `list`, `fetch_spec`. --- ## API modules covered Generated from 27 OpenAPI files. ## Users Module OpenAPI: https://api.ucoz.net/user-openapi.yaml | Method | Path | Summary | |---|---|---| | `GET` | `/users` | Get user list | | `POST` | `/users` | Add user | | `PUT` | `/users` | Edit user | | `DELETE` | `/users` | Delete user | | `GET` | `/users/groups` | Get user groups | | `POST` | `/users/groups` | Create user group | | `PUT` | `/users/groups` | Update user group | | `DELETE` | `/users/groups` | Delete user group | | `GET` | `/users/groups/rights` | Get user group permissions | | `GET` | `/users/groups/permissions` | Get user group permissions | | `GET` | `/users/rank` | Get user ranks | | `POST` | `/users/chlogin` | Change user login | | `POST` | `/users/chgroup` | Change user group | | `POST` | `/users/chpass` | Change user password | | `GET` | `/users/fields` | Get module field settings | ### `GET` `/users` — Get user list Get a list of all site users. The number of users per page depends on module settings. **Parameters:** - `page` (query, optional, integer): Page number - `user` (query, optional, string): User nickname or email (to fetch a specific user) - `user_id` (query, optional, integer): User ID (to fetch a specific user) ### `POST` `/users` — Add user Register a new user **Request body** (`application/x-www-form-urlencoded`): - `user` (required, string): User nickname - `password` (required, string): User password - `email` (required, string): User email - `name` (required, string): User full name - `telegram` (optional, object): Telegram - `whatsapp` (optional, object): WhatsApp - `viber` (optional, object): Viber - `discord` (optional, object): Discord - `instagram` (optional, object): Instagram - `fb` (optional, object): Facebook - `city` (optional, object): City ### `PUT` `/users` — Edit user Edit user information **Parameters:** - `user_id` (query, required, integer): User ID **Request body** (`application/x-www-form-urlencoded`): - `name` (optional, string): User full name - `email` (optional, string): User email - `home_page` (optional, string): Home page (website) - `signature` (optional, string): User signature - `icq` (optional, string): ICQ - `options` (optional, string): User options (comma-separated) - `telegram` (optional, object): Telegram - `whatsapp` (optional, object): WhatsApp - `viber` (optional, object): Viber - `discord` (optional, object): Discord - `instagram` (optional, object): Instagram - `fb` (optional, object): Facebook - `city` (optional, object): City ### `DELETE` `/users` — Delete user **Parameters:** - `user` (query, required, string): User nickname ### `GET` `/users/groups` — Get user groups Get all user groups ### `POST` `/users/groups` — Create user group Create a user group by providing its basic settings and access permissions. Use GET /users/groups/rights to retrieve all available permission codes. **Request body** (`application/x-www-form-urlencoded`): - `name` (required, string): Group name - `icon` (optional, string): Group icon URL - `regsel` (optional, integer enum[0, 1]): Whether the group can be selected during registration - `comadd` (optional, integer enum[0, 1]): Permission to add comments - `comedit` (optional, integer enum[0, 1]): Permission to edit comments - `comdel` (optional, integer enum[0, 1]): Permission to delete comments - `nwadd` (optional, integer enum[0, 1]): Permission to add entries in Site News - `nwedit` (optional, integer enum[0, 1]): Permission to edit entries in Site News - `nwdel` (optional, integer enum[0, 1]): Permission to delete entries in Site News - `bladd` (optional, integer enum[0, 1]): Permission to add blog posts - `bledit` (optional, integer enum[0, 1]): Permission to edit blog posts - `bldel` (optional, integer enum[0, 1]): Permission to delete blog posts - `ldadd` (optional, integer enum[0, 1]): Permission to add entries in File Catalog - `ldedit` (optional, integer enum[0, 1]): Permission to edit entries in File Catalog - `lddel` (optional, integer enum[0, 1]): Permission to delete entries in File Catalog - `puadd` (optional, integer enum[0, 1]): Permission to add entries in Article Catalog - `puedit` (optional, integer enum[0, 1]): Permission to edit entries in Article Catalog - `pudel` (optional, integer enum[0, 1]): Permission to delete entries in Article Catalog ### `PUT` `/users/groups` — Update user group Update the basic settings and access permissions of an existing group. Use GET /users/groups/rights to retrieve all available permission codes. **Request body** (`application/x-www-form-urlencoded`): - `id` (required, integer): Group ID - `name` (required, string): New group name - `icon` (optional, string): New group icon URL. An empty value clears the icon; omit the parameter to preserve it. - `regsel` (optional, integer enum[0, 1]): Whether the group can be selected during registration. Omit the parameter to preserve its current value. - `comadd` (optional, integer enum[0, 1]): Permission to add comments - `comedit` (optional, integer enum[0, 1]): Permission to edit comments - `comdel` (optional, integer enum[0, 1]): Permission to delete comments - `nwadd` (optional, integer enum[0, 1]): Permission to add entries in Site News - `nwedit` (optional, integer enum[0, 1]): Permission to edit entries in Site News - `nwdel` (optional, integer enum[0, 1]): Permission to delete entries in Site News - `bladd` (optional, integer enum[0, 1]): Permission to add blog posts - `bledit` (optional, integer enum[0, 1]): Permission to edit blog posts - `bldel` (optional, integer enum[0, 1]): Permission to delete blog posts - `ldadd` (optional, integer enum[0, 1]): Permission to add entries in File Catalog - `ldedit` (optional, integer enum[0, 1]): Permission to edit entries in File Catalog - `lddel` (optional, integer enum[0, 1]): Permission to delete entries in File Catalog - `puadd` (optional, integer enum[0, 1]): Permission to add entries in Article Catalog - `puedit` (optional, integer enum[0, 1]): Permission to edit entries in Article Catalog - `pudel` (optional, integer enum[0, 1]): Permission to delete entries in Article Catalog ### `DELETE` `/users/groups` — Delete user group Delete a user group and move its members to the specified group. **Parameters:** - `id` (query, required, integer): ID of the group to delete — the group_id value returned by GET /users/groups - `nid` (query, optional, integer): ID of the group to move members to — the group_id value returned by GET /users/groups ### `GET` `/users/groups/rights` — Get user group permissions Get access permissions for all user groups ### `GET` `/users/groups/permissions` — Get user group permissions Get a group configuration and the complete set of its available permissions in a format suitable for PUT /users/groups. **Parameters:** - `id` (query, required, integer): Group ID — the group_id value returned by GET /users/groups ### `GET` `/users/rank` — Get user ranks Get all user ranks ### `POST` `/users/chlogin` — Change user login Change the user login (nickname) **Request body** (`application/x-www-form-urlencoded`): - `user_id` (required, integer): User ID - `login` (required, string): New login (nickname) ### `POST` `/users/chgroup` — Change user group Change the user group **Request body** (`application/x-www-form-urlencoded`): - `user_id` (required, integer): User ID - `gid` (required, integer): New group ID ### `POST` `/users/chpass` — Change user password Change the user password **Request body** (`application/x-www-form-urlencoded`): - `user_id` (required, integer): User ID - `password` (required, string): New password ### `GET` `/users/fields` — Get module field settings Profile form settings in the control panel: available registration and profile edit fields (including `telegram`, `whatsapp`, `viber`, `discord`, `instagram`, `fb`, `city`, and others). --- ## Pages Module OpenAPI: https://api.ucoz.net/pages-openapi.yaml | Method | Path | Summary | |---|---|---| | `GET` | `/pages` | Get site pages | | `POST` | `/pages` | Add page | | `PUT` | `/pages` | Edit page | | `DELETE` | `/pages/{id}` | Delete page | ### `GET` `/pages` — Get site pages With the `id` parameter — returns full data for one page, including content, images, and parent page data. Without `id` — returns a paginated flat list of pages with full data for each. List items do not include a nested `parent` object — use a single request (`?id=`) to fetch parent page data. Supports `page` and `per_page`. Requires permission to view or edit site pages. **Parameters:** - `id` (query, optional, integer): Page ID. If set — one page is returned; if omitted — a list. - `page` (query, optional, integer): Page number (list mode only, default 1) - `per_page` (query, optional, integer): Items per page (list mode only, default 50, max 100) ### `POST` `/pages` — Add page Create a new site page. Any omitted optional fields use default values. To upload images, use `Content-Type: multipart/form-data` — add fields `file1`, `file2`, … (binary parts). Without images, `application/x-www-form-urlencoded` is enough. `del_imgN` flags are usually not needed when adding a new page (no slots yet). Requires permission to add site pages. **Request body** (`application/x-www-form-urlencoded / multipart/form-data`): - `name` (required, string): Page title - `message` (required, string): Page content (HTML) - `parent_id` (optional, integer): Parent page ID (0 — root page; default 0) - `pending` (optional, integer enum[0, 1]): Status: 1 — pending activation, 0 — active - `owntmpl` (optional, integer enum[0, 1]): Use custom template: 1 — yes, 0 — no - `tmpl` (optional, string): Custom template content (send together with `owntmpl=1`). If a non-empty `tmpl` is sent with `owntmpl=1`, the template markup must include the `$POWERED_BY$` placeholder. Otherwise the API returns `code`: `VALIDATION_ERROR` and `num`: `2`. - `ownurl` (optional, string): Page custom URL (SEO-friendly) - `access_all` (optional, integer enum[0, 1]): Access for all groups: 1 — allowed, 0 — restricted (default 1) - `access_group_ids` (optional, array): Group IDs allowed access (when access_all=0; repeat the parameter for each ID) - `meta_title` (optional, string): Meta Title - `meta_description` (optional, string): Meta Description - `meta_keywords` (optional, string): Meta Keywords - `other1` (optional, string): Additional field 1 - `other2` (optional, string): Additional field 2 - `other3` (optional, string): Additional field 3 - `other4` (optional, string): Additional field 4 - `other5` (optional, string): Additional field 5 - `del_img1` (optional, integer enum[0, 1]): 1 — remove image in slot 1; 0 or omit — do not remove via this flag - `del_img2` (optional, integer enum[0, 1]): 1 — remove image in slot 2 - `del_img3` (optional, integer enum[0, 1]): 1 — remove image in slot 3 (use del_img4, del_img5, … up to site limit the same way) - `file1` (optional, string(binary)): Embedded image in page content (when enabled in module settings; then `file2`, `file3`, … up to site limit). - `file2` (optional, string(binary)): Image - `file3` (optional, string(binary)): Image - `images_title` (optional, array): Image captions — one value per `fileN` in upload order. Repeat the parameter: `images_title=First&images_title=Second&…` - `images_alt` (optional, array): Image alt texts — one value per `fileN` in upload order. Repeat the parameter: `images_alt=Photo&images_alt=Second+photo&…` ### `PUT` `/pages` — Edit page Edit an existing page. Uses **PATCH semantics**: fields omitted from the request keep their current database values. Exceptions: access groups (`access_all` / `access_group_ids`) and SEO meta fields (`meta_title`, `meta_description`, `meta_keywords`) — updated only when at least one related parameter is sent. **Images:** if `file1`…`fileN` are omitted — all attached images are kept unchanged (PATCH semantics). To upload or replace, use `Content-Type: multipart/form-data` and binary parts `file1`, `file2`, …. To remove an image in slot N, send `del_imgN=1` (in the same `multipart/form-data` or `application/x-www-form-urlencoded`). Requires permission to edit site pages. **Request body** (`application/x-www-form-urlencoded / multipart/form-data`): - `id` (required, integer): ID of page being edited - `name` (optional, string): Page title - `message` (optional, string): Page content (HTML) - `parent_id` (optional, integer): Parent page ID (0 — root). Omit the field to keep the current value. - `pending` (optional, integer enum[0, 1]): Status: 1 — pending activation, 0 — active - `owntmpl` (optional, integer enum[0, 1]): Use custom template: 1 — yes, 0 — no (0 removes the custom template) - `tmpl` (optional, string): Custom template content (send together with `owntmpl=1`). If a non-empty `tmpl` is sent with `owntmpl=1`, the template markup must include the `$POWERED_BY$` placeholder. Otherwise the API returns `code`: `VALIDATION_ERROR` and `num`: `2`. - `ownurl` (optional, string): Page custom URL (SEO-friendly). Omit the field to keep the current URL. - `access_all` (optional, integer enum[0, 1]): Access for all groups: 1 — allowed, 0 — restricted - `access_group_ids` (optional, array): Group IDs allowed access (when access_all=0; repeat for each ID). Omit both access_all and access_group_ids to keep current access rights. - `meta_title` (optional, string): Meta Title - `meta_description` (optional, string): Meta Description - `meta_keywords` (optional, string): Meta Keywords - `other1` (optional, string): Additional field 1 - `other2` (optional, string): Additional field 2 - `other3` (optional, string): Additional field 3 - `other4` (optional, string): Additional field 4 - `other5` (optional, string): Additional field 5 - `del_img1` (optional, integer enum[0, 1]): 1 — remove image in slot 1; 0 or omit — do not remove via this flag - `del_img2` (optional, integer enum[0, 1]): 1 — remove image in slot 2 - `del_img3` (optional, integer enum[0, 1]): 1 — remove image in slot 3 (use del_img4, del_img5, … up to site limit the same way) - `file1` (optional, string(binary)): Embedded image in page content (when enabled in module settings; then `file2`, `file3`, … up to site limit). - `file2` (optional, string(binary)): Image - `file3` (optional, string(binary)): Image - `images_title` (optional, array): Image captions — one value per `fileN` in upload order. Repeat the parameter: `images_title=First&images_title=Second&…` - `images_alt` (optional, array): Image alt texts — one value per `fileN` in upload order. Repeat the parameter: `images_alt=Photo&images_alt=Second+photo&…` ### `DELETE` `/pages/{id}` — Delete page Delete a site page by ID. Prefer passing the ID in the path (`/pages/{id}`). Alternative with the same result: `DELETE /pages` with query parameter `id`. The site home page (ID = 1) cannot be deleted — an error is returned. Child pages remain in the system attached to the root (`pid` set to 0). Requires permission to delete site pages. **Parameters:** - `id` (path, required, integer): ID of page to delete --- ## News Module OpenAPI: https://api.ucoz.net/news-openapi.yaml | Method | Path | Summary | |---|---|---| | `GET` | `/news` | Get all module entries | | `POST` | `/news` | Add entry | | `PUT` | `/news` | Edit entry | | `DELETE` | `/news/posts` | Delete entry | | `POST` | `/news/tags` | Add/update entry tags | | `GET` | `/news/category` | Get category list | | `POST` | `/news/category` | Add category | | `PUT` | `/news/category` | Edit category | | `DELETE` | `/news/category` | Delete category | | `GET` | `/news/comments` | Get entry comments | | `POST` | `/news/comments` | Add comment | | `PUT` | `/news/comments` | Edit comment | | `DELETE` | `/news/comments` | Delete comment | | `GET` | `/news/filter` | Get filter list | | `POST` | `/news/filter` | Add filter | | `PUT` | `/news/filter` | Update filter | | `DELETE` | `/news/filter` | Delete filter | | `GET` | `/news/fields` | Get module field settings | ### `GET` `/news` — Get all module entries Get a list of all entries in the "Site news" module. The number of entries per page depends on module settings. **Parameters:** - `page` (query, optional, integer): Request page. Applies to list requests; ignored when requesting an entry by ID - `per_page` (query, optional, integer): Entries per request (list page size), 100 at most - `date` (query, optional, string): Filter by date as yyyy-mm-dd or yyyy - `id` (query, optional, integer): ID of a specific entry - `category` (query, optional, integer): Filter by category ID (non-existing category — `NOT_FOUND`) - `user_id` (query, optional, integer): Filter by numeric ID of the entry author - `pending` (query, optional, integer): Non-zero value — return only entries pending activation (premoderation) ### `POST` `/news` — Add entry Add a new entry to the "Site news" module. Text fields can be sent in `application/x-www-form-urlencoded`. File fields (`cover`, `file1`…`fileN`, `file`) are sent only in `multipart/form-data` (text fields may go in the same request). **Request body** (`application/x-www-form-urlencoded / multipart/form-data`): - `category` (required, integer | string): Category ID or a comma-separated list of IDs (`3` or `3,4`). A list works only when the module option "Allow an entry to belong to multiple categories" is enabled (`options_other_categories` / `other_categories` in `/setup`). The primary category is determined by the category order in the control panel, not by the order of IDs in the submitted list. Parameters `ocat`, `ocats`, `categories`, and `… - `title` (required, string): Entry title. Up to 150 characters - error when exceeded - `description` (optional, string): Short description. Up to 1030 characters (up to 10000 - for groups with the right to edit all entries) - `message` (optional, string): Full description. The maximum length is limited by the site plan - `description_type` (optional, string enum['plain', 'bb', 'html']): Short description text format: `plain` - plain text (default), `bb` - BB codes, `html` - HTML - `message_type` (optional, string enum['plain', 'bb', 'html']): Full description text format: `plain` - plain text (default), `bb` - BB codes, `html` - HTML - `comments` (optional, integer enum[1, 0]): Allow comments on the entry. Default - enabled. Legacy `yes`/`no` values are also supported - `ontop` (optional, integer enum[1, 0]): Always show the entry at the top. Default - disabled. Legacy `yes`/`no` values are also supported - `pending` (optional, integer enum[1, 0]): Put the entry into pending activation (premoderation). Default - disabled. Legacy `yes`/`no` values are also supported - `includehtml_desc` (optional, integer enum[1, 0]): Allow HTML in the short description. Default - enabled. Legacy `yes`/`no` values are also supported - `includehtml_msg` (optional, integer enum[1, 0]): Allow HTML in the full description. Default - enabled. Legacy `yes`/`no` values are also supported - `end2br_desc` (optional, integer enum[1, 0]): Convert line breaks to `
` in the short description. Default - disabled. Legacy `yes`/`no` values are also supported - `end2br_msg` (optional, integer enum[1, 0]): Convert line breaks to `
` in the full description. Default - disabled. Legacy `yes`/`no` values are also supported - `subscribe` (optional, integer enum[1, 0]): Subscribe to entry comments. Default - disabled. Legacy `yes`/`no` values are also supported - `show_attach` (optional, integer enum[1, 0]): Show the attached file in the entry. Default - disabled. Legacy `yes`/`no` values are also supported - `uto` (optional, integer enum[1, 0]): Replace external links using the u.to service. Default - disabled. Legacy `yes`/`no` values are also supported - `cover` (optional, string(binary)): Entry cover - `jpg`/`jpeg`/`jpe`/`png`/`gif`/`webp` image. Sent only in `multipart/form-data`. Maximum size - the module cover setting (KB). Works when the "Entry cover" field is enabled. - `file1` (optional, string(binary)): Embedded image in entry text - slots `file1`, `file2`, ... up to the module settings limit (up to 50 - for groups with the right to edit all entries). Extensions: `jpg`, `jpeg`, `jpe`, `png`, `gif`, `webp`; maximum size - module setting (KB). Sent only in `multipart/form-data`. Works when the "Images" field is enabled. Uploaded images are returned in the `files` array of responses. - `file` (optional, string(binary)): Attached file (the "Attach file" field) - an arbitrary file downloadable from the entry page. Sent only in `multipart/form-data`. Maximum size is limited by the site plan. Works when the "Attach file" field is enabled in module settings. - `add_date` (optional, string): Entry publication date and time as `yyyy-mm-dd hh:mm`. Works if the "add date" option is enabled in the control panel - `meta_title` (optional, string): Meta Title - `meta_description` (optional, string): Meta Description - `meta_keywords` (optional, string): Meta Keywords - `ownurl` (optional, string): Entry custom URL (SEO-friendly) - `other1` (optional, string): Additional field 1 (max length - site plan limit) - `other2` (optional, string): Additional field 2 - `other3` (optional, string): Additional field 3 - `other4` (optional, string): Additional field 4 - `other5` (optional, string): Additional field 5 - `author` (optional, string): Existing user nickname. Deprecated - use `author_id`. Available to module administrators and editors only. - `author_id` (optional, integer): User ID - publish entry on their behalf. Takes priority over `author`. Available to module administrators and editors only. - `tags` (optional, string): Entry tags, comma-separated (tag1,tag2,tag3) ### `PUT` `/news` — Edit entry Edit an existing entry. PATCH semantics apply: omitted fields `title`, `pending`, `ontop`, `comments`, `author`, `show_attach`, `subscribe`, `hgu_title`, `other1`…`other5` keep their current values. File fields (`cover`, `file1`…`fileN`, `file`) are sent only in `multipart/form-data`. **Parameters:** - `id` (query, required, integer): Entry ID **Request body** (`application/x-www-form-urlencoded / multipart/form-data`): - `category` (optional, integer | string): Category ID or a comma-separated list of IDs (`3` or `3,4`). When sent, fully replaces the entry's current category set (e.g. entry was in 3 and 4; after `category=4` it remains only in 4). A list works only when the module option "Allow an entry to belong to multiple categories" is enabled. The primary category is determined by the category order in the control panel, not by the order of IDs in… - `title` (optional, string): Entry title. Up to 150 characters - `description` (optional, string): Short description. Up to 1030 characters (up to 10000 - for groups with the right to edit all entries) - `message` (optional, string): Full description. The maximum length is limited by the site plan - `description_type` (optional, string enum['plain', 'bb', 'html']): Short description text format: `plain` - plain text (default), `bb` - BB codes, `html` - HTML - `message_type` (optional, string enum['plain', 'bb', 'html']): Full description text format: `plain` - plain text (default), `bb` - BB codes, `html` - HTML - `comments` (optional, integer enum[1, 0]): Allow comments. Omitted - the current value is kept. Legacy `yes`/`no` values are also supported - `ontop` (optional, integer enum[1, 0]): Always show the entry at the top. Omitted - the current value is kept. Legacy `yes`/`no` values are also supported - `pending` (optional, integer enum[1, 0]): Pending activation (premoderation). Omitted - the current value is kept. Legacy `yes`/`no` values are also supported - `includehtml_desc` (optional, integer enum[1, 0]): Allow HTML in the short description. Default - enabled. Legacy `yes`/`no` values are also supported - `includehtml_msg` (optional, integer enum[1, 0]): Allow HTML in the full description. Default - enabled. Legacy `yes`/`no` values are also supported - `end2br_desc` (optional, integer enum[1, 0]): Convert line breaks to `
` in the short description. Default - disabled. Legacy `yes`/`no` values are also supported - `end2br_msg` (optional, integer enum[1, 0]): Convert line breaks to `
` in the full description. Default - disabled. Legacy `yes`/`no` values are also supported - `subscribe` (optional, integer enum[1, 0]): Subscription to comments. Omitted - the current value is kept. Legacy `yes`/`no` values are also supported - `show_attach` (optional, integer enum[1, 0]): Show the attached file. Omitted - the current value is kept. Legacy `yes`/`no` values are also supported - `uto` (optional, integer enum[1, 0]): Replace external links using the u.to service. Default - disabled. Legacy `yes`/`no` values are also supported - `hgu_title` (optional, string): Entry SEO-friendly URL. Omitted - the current value is kept - `cover` (optional, string(binary)): Entry cover - `jpg`/`jpeg`/`jpe`/`png`/`gif`/`webp` image. Sent only in `multipart/form-data`; replaces the current cover. Maximum size - the module cover setting (KB). - `cover_delete` (optional, integer enum[0, 1]): 1 — remove the current cover when editing (if one was uploaded); 0 — keep it - `file1` (optional, string(binary)): Embedded image in entry text - slots `file1`, `file2`, ... up to the module settings limit. Extensions: `jpg`, `jpeg`, `jpe`, `png`, `gif`, `webp`. Sent only in `multipart/form-data`. PATCH semantics: a slot without an uploaded file keeps its current image. Remove a slot with `del_imgN=1`. - `del_img1` (optional, integer enum[0, 1]): 1 - remove embedded image in slot 1 (when embedded images are enabled). Same for `del_img2`, `del_img3`, ... - `file` (optional, string(binary)): Attached file (the "Attach file" field). Sent only in `multipart/form-data`; replaces the current file. Maximum size is limited by the site plan. Works when the "Attach file" field is enabled. - `meta_title` (optional, string): Meta Title - `meta_description` (optional, string): Meta Description - `meta_keywords` (optional, string): Meta Keywords - `ownurl` (optional, string): Entry custom URL (SEO-friendly) - `other1` (optional, string): Additional field 1 (max length - site plan limit) - `other2` (optional, string): Additional field 2 - `other3` (optional, string): Additional field 3 - `other4` (optional, string): Additional field 4 - `other5` (optional, string): Additional field 5 - `author` (optional, string): Existing user nickname. Deprecated - use `author_id`. Available to module administrators and editors only. - `author_id` (optional, integer): User ID - republish entry on their behalf. Takes priority over `author`. Available to module administrators and editors only. - `add_date` (optional, string): Entry publication date and time as yyyy-mm-dd hh:mm. Works if "add date" is enabled in the control panel - `uplastmod` (optional, integer enum[0, 1]): 1 — write the current server time into the entry modification date. 0 or omitted — leave the modification date unchanged even if the entry was edited. An arbitrary date cannot be set with this field. The parameter only works for users with full edit rights for the module; for everyone else it is silently ignored. The result appears in the `mod_date` / `mod_date_ts` fields of the module list respo… ### `DELETE` `/news/posts` — Delete entry Delete entry from module **Parameters:** - `id` (query, required, integer): Entry ID ### `POST` `/news/tags` — Add/update entry tags Add, update, or remove entry tags. - To remove all tags, send an empty request - To edit tags, send the full list of tags to keep - To add tags, send existing tags plus new ones Tags are comma-separated. **Request body** (`application/x-www-form-urlencoded`): - `id` (required, integer): Entry ID - `tags` (optional, string): Comma-separated tag list ### `GET` `/news/category` — Get category list Get all categories in the "Site news" module **Parameters:** - `id` (query, optional, integer): ID of a specific category ### `POST` `/news/category` — Add category Add new category **Request body** (`application/x-www-form-urlencoded / multipart/form-data`): - `name` (required, string): Category name - `description` (optional, string): Category description - `hgu_title` (optional, string): Category SEO-friendly URL - `ownurl` (optional, string): Custom category slug (without domain) - `position` (optional, integer): Category position in the list - `access2category` (optional, string): Comma-separated group IDs allowed to view the category. System groups: 1 Users, 2 Verified, 3 Moderators, 4 Administrators, 251 Friends, 255 Blocked, 999 Guests - `access2add` (optional, string): Comma-separated group IDs allowed to add entries to the category. System groups: 1 Users, 2 Verified, 3 Moderators, 4 Administrators, 251 Friends, 255 Blocked, 999 Guests - `access2page` (optional, string): Comma-separated group IDs allowed to view the category page. System groups: 1 Users, 2 Verified, 3 Moderators, 4 Administrators, 251 Friends, 255 Blocked, 999 Guests - `file` (optional, string(binary)): Category image ### `PUT` `/news/category` — Edit category Edit existing category **Parameters:** - `id` (query, required, integer): Category ID **Request body** (`application/x-www-form-urlencoded / multipart/form-data`): - `name` (optional, string) - `description` (optional, string) - `hgu_title` (optional, string) - `ownurl` (optional, string): Custom category slug (without domain) - `position` (optional, integer) - `access2category` (optional, string): Comma-separated group IDs allowed to view the category. System groups: 1 Users, 2 Verified, 3 Moderators, 4 Administrators, 251 Friends, 255 Blocked, 999 Guests - `access2add` (optional, string): Comma-separated group IDs allowed to add entries to the category. System groups: 1 Users, 2 Verified, 3 Moderators, 4 Administrators, 251 Friends, 255 Blocked, 999 Guests - `access2page` (optional, string): Comma-separated group IDs allowed to view the category page. System groups: 1 Users, 2 Verified, 3 Moderators, 4 Administrators, 251 Friends, 255 Blocked, 999 Guests - `file` (optional, string(binary)): Category image ### `DELETE` `/news/category` — Delete category **Parameters:** - `id` (query, required, integer): Category ID ### `GET` `/news/comments` — Get entry comments Get all comments for a specific entry **Parameters:** - `id` (query, required, integer): Entry ID ### `POST` `/news/comments` — Add comment Add comment to entry **Request body** (`application/x-www-form-urlencoded`): - `entry_id` (required, integer): Entry ID - `message` (required, string): Comment text - `pros` (optional, string): Entry pros - `cons` (optional, string): Entry cons - `parent_id` (optional, integer): Parent comment ID (for replies) - `user_id` (optional, integer): User ID on whose behalf the comment is added. Works only when called by a user with permission to edit all comments. - `subscribe_to_replies` (optional, string): Subscribe the authenticated user to replies for the entry after adding the comment. Value 0/no does not create a subscription; 1/yes creates a subscription. By default, the subscription is created. ### `PUT` `/news/comments` — Edit comment Edit existing comment **Parameters:** - `id` (query, required, integer): Comment ID **Request body** (`application/x-www-form-urlencoded`): - `message` (optional, string): Comment text - `pros` (optional, string): Entry pros - `cons` (optional, string): Entry cons ### `DELETE` `/news/comments` — Delete comment **Parameters:** - `id` (query, required, integer): Comment ID ### `GET` `/news/filter` — Get filter list Get all module filters **Parameters:** - `filter_id` (query, optional, integer): Filter ID ### `POST` `/news/filter` — Add filter Add new filter **Request body** (`application/x-www-form-urlencoded`): - `filter_num` (required, integer enum[1, 2, 3]): Filter number (1, 2, or 3) - `name` (required, string): Filter name - `items` (required, string): Values separated by | - `multiselect` (optional, string enum[True, False]): Multiple selection (yes/no) - `multi4userdisabled` (optional, string enum[True, False]): Disable multiple selection for regular users (yes/no) ### `PUT` `/news/filter` — Update filter Update existing filter **Request body** (`application/x-www-form-urlencoded`): - `filter_num` (required, integer enum[1, 2, 3]): Filter number (1, 2, or 3) - `name` (optional, string): New filter name - `items` (optional, string): New values separated by | - `multiselect` (optional, string enum[True, False]) - `multi4userdisabled` (optional, string enum[True, False]) ### `DELETE` `/news/filter` — Delete filter Delete module filter **Parameters:** - `filter_num` (query, required, integer enum[1, 2, 3]): Filter number (1, 2, or 3) ### `GET` `/news/fields` — Get module field settings Shows available module fields --- ## Blog Module OpenAPI: https://api.ucoz.net/blog-openapi.yaml | Method | Path | Summary | |---|---|---| | `GET` | `/blog` | Get all module entries | | `POST` | `/blog` | Add entry | | `PUT` | `/blog` | Edit entry | | `DELETE` | `/blog/posts` | Delete entry | | `POST` | `/blog/tags` | Add/update entry tags | | `GET` | `/blog/category` | Get category list | | `POST` | `/blog/category` | Add category | | `PUT` | `/blog/category` | Edit category | | `DELETE` | `/blog/category` | Delete category | | `GET` | `/blog/comments` | Get entry comments | | `POST` | `/blog/comments` | Add comment | | `PUT` | `/blog/comments` | Edit comment | | `DELETE` | `/blog/comments` | Delete comment | | `GET` | `/blog/filter` | Get filter list | | `POST` | `/blog/filter` | Add filter | | `PUT` | `/blog/filter` | Update filter | | `DELETE` | `/blog/filter` | Delete filter | | `GET` | `/blog/fields` | Get module field settings | ### `GET` `/blog` — Get all module entries Get a list of all entries in the "Blog" module **Parameters:** - `page` (query, optional, integer): Page number. - `per_page` (query, optional, integer): Number of entries per page. - `id` (query, optional, integer): ID of a specific entry - `date` (query, optional, string): Filter by date in yyyy-mm-dd or yyyy format - `category` (query, optional, integer): Filter by category ID (non-existing category — `NOT_FOUND`) - `user_id` (query, optional, integer): Filter by numeric ID of the entry author - `pending` (query, optional, integer): Non-zero value — return only entries pending activation (premoderation) ### `POST` `/blog` — Add entry Add a new entry to the "Blog" module Text fields can be sent in `application/x-www-form-urlencoded`. File fields (`cover`, `file1`…`fileN`) are sent only in `multipart/form-data` (text fields may go in the same request). **Request body** (`application/x-www-form-urlencoded / multipart/form-data`): - `category` (required, integer | string): Category ID or a comma-separated list of IDs (`3` or `3,4`). A list works only when the module option "Allow an entry to belong to multiple categories" is enabled (`options_other_categories` / `other_categories` in `/setup`). The primary category is determined by the category order in the control panel, not by the order of IDs in the submitted list. Parameters `ocat`, `ocats`, `categories`, and `… - `title` (required, string): Entry title - `description` (optional, string): Short entry description - `message` (optional, string): Full entry description - `description_type` (optional, string enum['plain', 'bb', 'html']): Short description text format: `plain` — plain text (default), `bb` — BB codes, `html` — HTML - `message_type` (optional, string enum['plain', 'bb', 'html']): Full description text format: `plain` — plain text (default), `bb` — BB codes, `html` — HTML - `comments` (optional, integer enum[1, 0]): Allow comments on the entry Default — enabled. Legacy `yes`/`no` values are also supported - `ontop` (optional, integer enum[1, 0]): Always show the entry at the top Default — disabled. Legacy `yes`/`no` values are also supported - `pending` (optional, integer enum[1, 0]): Put the entry into pending activation (premoderation) Default — disabled. Legacy `yes`/`no` values are also supported - `includehtml_desc` (optional, integer enum[1, 0]): Allow HTML in the short description Default — enabled. Legacy `yes`/`no` values are also supported - `includehtml_msg` (optional, integer enum[1, 0]): Allow HTML in the full description Default — enabled. Legacy `yes`/`no` values are also supported - `end2br_desc` (optional, integer enum[1, 0]): Convert line breaks to `
` in the short description Default — disabled. Legacy `yes`/`no` values are also supported - `end2br_msg` (optional, integer enum[1, 0]): Convert line breaks to `
` in the full description Default — disabled. Legacy `yes`/`no` values are also supported - `subscribe` (optional, integer enum[1, 0]): Subscribe to entry comments Default — disabled. Legacy `yes`/`no` values are also supported - `uto` (optional, integer enum[1, 0]): Replace external links using the u.to service Default — disabled. Legacy `yes`/`no` values are also supported - `show_attach` (optional, integer enum[1, 0]): Show the attached file in the entry Default — disabled. Legacy `yes`/`no` values are also supported - `cover` (optional, string(binary)): Entry cover — `jpg`, `jpeg`, `jpe`, `png`, `gif`, `webp` image. Sent only in `multipart/form-data`. Maximum size — the cover setting (KB) - `file1` (optional, string(binary)): Embedded image in entry text — slots `file1`, `file2`, … up to the module settings limit. Extensions: `jpg`, `jpeg`, `jpe`, `png`, `gif`, `webp`; maximum size — module setting (KB). Sent only in `multipart/form-data`. Uploaded images are returned in the `files` array of responses. - `add_date` (optional, string): Publication date and time as `yyyy-mm-dd hh:mm`. Works if the "add date" option is enabled in the control panel - `meta_title` (optional, string): Meta Title - `meta_description` (optional, string): Meta Description - `meta_keywords` (optional, string): Meta Keywords - `ownurl` (optional, string): Entry custom URL (SEO-friendly) - `other1` (optional, string): Additional field 1 (max length — site plan limit) - `other2` (optional, string): Additional field 2 (max length — site plan limit) - `other3` (optional, string): Additional field 3 (max length — site plan limit) - `other4` (optional, string): Additional field 4 (max length — site plan limit) - `other5` (optional, string): Additional field 5 (max length — site plan limit) - `author` (optional, string): Existing user nickname. Deprecated — use `author_id`. Available to module administrators and editors only. - `author_id` (optional, integer): User ID — publish entry on their behalf. Takes priority over `author`. Available to module administrators and editors only. - `tags` (optional, string): Entry tags, comma-separated (tag1,tag2,tag3) ### `PUT` `/blog` — Edit entry Edit an existing entry PATCH semantics apply: omitted fields keep their current values. File fields (`cover`, `file1`…`fileN`) are sent only in `multipart/form-data`. **Parameters:** - `id` (query, required, integer): Entry ID **Request body** (`application/x-www-form-urlencoded / multipart/form-data`): - `category` (optional, integer | string): Category ID or a comma-separated list of IDs (`3` or `3,4`). When sent, fully replaces the entry's current category set (e.g. entry was in 3 and 4; after `category=4` it remains only in 4). A list works only when the module option "Allow an entry to belong to multiple categories" is enabled. The primary category is determined by the category order in the control panel, not by the order of IDs in… - `title` (optional, string): Entry title - `description` (optional, string): Short entry description - `message` (optional, string): Full entry description - `description_type` (optional, string enum['plain', 'bb', 'html']): Short description text format: `plain` — plain text (default), `bb` — BB codes, `html` — HTML - `message_type` (optional, string enum['plain', 'bb', 'html']): Full description text format: `plain` — plain text (default), `bb` — BB codes, `html` — HTML - `comments` (optional, integer enum[1, 0]): Allow comments on the entry Omitted — the current value is kept. Legacy `yes`/`no` values are also supported - `ontop` (optional, integer enum[1, 0]): Always show the entry at the top Omitted — the current value is kept. Legacy `yes`/`no` values are also supported - `pending` (optional, integer enum[1, 0]): Put the entry into pending activation (premoderation) Omitted — the current value is kept. Legacy `yes`/`no` values are also supported - `includehtml_desc` (optional, integer enum[1, 0]): Allow HTML in the short description Default — enabled. Legacy `yes`/`no` values are also supported - `includehtml_msg` (optional, integer enum[1, 0]): Allow HTML in the full description Default — enabled. Legacy `yes`/`no` values are also supported - `end2br_desc` (optional, integer enum[1, 0]): Convert line breaks to `
` in the short description Default — disabled. Legacy `yes`/`no` values are also supported - `end2br_msg` (optional, integer enum[1, 0]): Convert line breaks to `
` in the full description Default — disabled. Legacy `yes`/`no` values are also supported - `subscribe` (optional, integer enum[1, 0]): Subscribe to entry comments Omitted — the current value is kept. Legacy `yes`/`no` values are also supported - `uto` (optional, integer enum[1, 0]): Replace external links using the u.to service Default — disabled. Legacy `yes`/`no` values are also supported - `show_attach` (optional, integer enum[1, 0]): Show the attached file in the entry Omitted — the current value is kept. Legacy `yes`/`no` values are also supported - `hgu_title` (optional, string): Entry SEO-friendly URL. Omitted — the current value is kept - `cover` (optional, string(binary)): Entry cover — `jpg`, `jpeg`, `jpe`, `png`, `gif`, `webp` image. Sent only in `multipart/form-data`. Maximum size — the cover setting (KB) - `cover_delete` (optional, integer enum[0, 1]): 1 — remove the current cover when editing (if one was uploaded); 0 — keep it - `file1` (optional, string(binary)): Embedded image — slots `file1`, `file2`, …; `multipart/form-data` only. PATCH semantics: a slot without an uploaded file keeps its current image. Remove a slot with `del_imgN=1`. - `del_img1` (optional, integer enum[0, 1]): 1 — remove embedded image in slot 1. Same for `del_img2`, `del_img3`, … - `add_date` (optional, string): Publication date and time as `yyyy-mm-dd hh:mm`. Works if the "add date" option is enabled in the control panel - `uplastmod` (optional, integer enum[0, 1]): 1 — write the current server time into the entry modification date. 0 or omitted — leave the modification date unchanged even if the entry was edited. An arbitrary date cannot be set with this field. The parameter only works for users with full edit rights for the module; for everyone else it is silently ignored. The result appears in the `mod_date` / `mod_date_ts` fields of the module list respo… - `meta_title` (optional, string): Meta Title - `meta_description` (optional, string): Meta Description - `meta_keywords` (optional, string): Meta Keywords - `ownurl` (optional, string): Entry custom URL (SEO-friendly) - `other1` (optional, string): Additional field 1 (max length — site plan limit) - `other2` (optional, string): Additional field 2 (max length — site plan limit) - `other3` (optional, string): Additional field 3 (max length — site plan limit) - `other4` (optional, string): Additional field 4 (max length — site plan limit) - `other5` (optional, string): Additional field 5 (max length — site plan limit) - `author` (optional, string): Existing user nickname. Deprecated — use `author_id`. Available to module administrators and editors only. - `author_id` (optional, integer): User ID — publish entry on their behalf. Takes priority over `author`. Available to module administrators and editors only. ### `DELETE` `/blog/posts` — Delete entry Delete an entry from the module **Parameters:** - `id` (query, required, integer): Entry ID ### `POST` `/blog/tags` — Add/update entry tags Add, change, or remove tags for an entry **Request body** (`application/x-www-form-urlencoded`): - `id` (required, integer): Entry ID - `tags` (optional, string): Comma-separated list of tags ### `GET` `/blog/category` — Get category list Get all module categories **Parameters:** - `id` (query, optional, integer): ID of a specific category ### `POST` `/blog/category` — Add category Add a new category **Request body** (`application/x-www-form-urlencoded / multipart/form-data`): - `name` (required, string): Category name - `description` (optional, string) - `hgu_title` (optional, string) - `ownurl` (optional, string): Custom category slug (without domain) - `position` (optional, integer) - `access2category` (optional, string): Comma-separated group IDs allowed to view the category. System groups: 1 Users, 2 Verified, 3 Moderators, 4 Administrators, 251 Friends, 255 Blocked, 999 Guests - `access2add` (optional, string): Comma-separated group IDs allowed to add entries to the category. System groups: 1 Users, 2 Verified, 3 Moderators, 4 Administrators, 251 Friends, 255 Blocked, 999 Guests - `access2page` (optional, string): Comma-separated group IDs allowed to view the category page. System groups: 1 Users, 2 Verified, 3 Moderators, 4 Administrators, 251 Friends, 255 Blocked, 999 Guests - `file` (optional, string(binary)): Category image ### `PUT` `/blog/category` — Edit category Edit an existing category **Parameters:** - `id` (query, required, integer): Category ID **Request body** (`application/x-www-form-urlencoded / multipart/form-data`): - `name` (optional, string) - `description` (optional, string) - `hgu_title` (optional, string) - `ownurl` (optional, string): Custom category slug (without domain) - `position` (optional, integer) - `access2category` (optional, string): Comma-separated group IDs allowed to view the category. System groups: 1 Users, 2 Verified, 3 Moderators, 4 Administrators, 251 Friends, 255 Blocked, 999 Guests - `access2add` (optional, string): Comma-separated group IDs allowed to add entries to the category. System groups: 1 Users, 2 Verified, 3 Moderators, 4 Administrators, 251 Friends, 255 Blocked, 999 Guests - `access2page` (optional, string): Comma-separated group IDs allowed to view the category page. System groups: 1 Users, 2 Verified, 3 Moderators, 4 Administrators, 251 Friends, 255 Blocked, 999 Guests - `file` (optional, string(binary)): Category image ### `DELETE` `/blog/category` — Delete category **Parameters:** - `id` (query, required, integer): Category ID ### `GET` `/blog/comments` — Get entry comments Get all comments for a specific entry **Parameters:** - `id` (query, required, integer): Entry ID ### `POST` `/blog/comments` — Add comment Add a comment to an entry **Request body** (`application/x-www-form-urlencoded`): - `entry_id` (required, integer): Entry ID - `message` (required, string): Comment text - `pros` (optional, string): Entry pros - `cons` (optional, string): Entry cons - `parent_id` (optional, integer): Parent comment ID - `user_id` (optional, integer): User ID on whose behalf the comment is added. Works only when called by a user with permission to edit all comments. - `subscribe_to_replies` (optional, string): Subscribe the authenticated user to replies for the entry after adding the comment. Value 0/no does not create a subscription; 1/yes creates a subscription. By default, the subscription is created. ### `PUT` `/blog/comments` — Edit comment Edit an existing comment **Parameters:** - `id` (query, required, integer): Comment ID **Request body** (`application/x-www-form-urlencoded`): - `message` (optional, string) - `pros` (optional, string): Entry pros - `cons` (optional, string): Entry cons ### `DELETE` `/blog/comments` — Delete comment **Parameters:** - `id` (query, required, integer): Comment ID ### `GET` `/blog/filter` — Get filter list Get all module filters **Parameters:** - `filter_id` (query, optional, integer): Filter ID ### `POST` `/blog/filter` — Add filter Add a new filter **Request body** (`application/x-www-form-urlencoded`): - `filter_num` (required, integer enum[1, 2, 3]): Filter number (1, 2, or 3) - `name` (required, string): Filter name - `items` (required, string): Values separated by | - `multiselect` (optional, string enum[True, False]): Multiple selection (yes/no) - `multi4userdisabled` (optional, string enum[True, False]): Multiple selection for regular users ### `PUT` `/blog/filter` — Update filter Update an existing filter **Request body** (`application/x-www-form-urlencoded`): - `filter_num` (required, integer enum[1, 2, 3]): Filter number (1, 2, or 3) - `name` (optional, string): New filter name - `items` (optional, string): New values separated by | - `multiselect` (optional, string enum[True, False]) - `multi4userdisabled` (optional, string enum[True, False]) ### `DELETE` `/blog/filter` — Delete filter Delete a module filter **Parameters:** - `filter_num` (query, required, integer enum[1, 2, 3]): Filter number (1, 2, or 3) ### `GET` `/blog/fields` — Get module field settings Shows available module fields --- ## Publ Module OpenAPI: https://api.ucoz.net/publ-openapi.yaml | Method | Path | Summary | |---|---|---| | `GET` | `/publ` | Get all module entries | | `POST` | `/publ` | Add entry | | `PUT` | `/publ` | Edit entry | | `DELETE` | `/publ/posts` | Delete entry | | `POST` | `/publ/tags` | Add/update entry tags | | `GET` | `/publ/category` | Get category/section list | | `POST` | `/publ/category` | Add category/section | | `PUT` | `/publ/category` | Edit category/section | | `DELETE` | `/publ/category` | Delete category/section | | `GET` | `/publ/comments` | Get entry comments | | `POST` | `/publ/comments` | Add comment | | `PUT` | `/publ/comments` | Edit comment | | `DELETE` | `/publ/comments` | Delete comment | | `GET` | `/publ/filter` | Get filter list | | `POST` | `/publ/filter` | Add filter | | `PUT` | `/publ/filter` | Update filter | | `DELETE` | `/publ/filter` | Delete filter | | `GET` | `/publ/fields` | Get module field settings | ### `GET` `/publ` — Get all module entries Get a list of all entries in the "Publisher" module **Parameters:** - `page` (query, optional, integer): Page number. - `per_page` (query, optional, integer): Entries per page. - `id` (query, optional, integer): ID of a specific entry - `category` (query, optional, integer): Category ID - `user_id` (query, optional, integer): Filter by numeric ID of the entry author - `pending` (query, optional, integer): Non-zero value — return only entries pending activation (premoderation) ### `POST` `/publ` — Add entry Add a new entry to the "Publisher" module Text fields can be sent in `application/x-www-form-urlencoded`. File fields (`cover`, `file1`…`fileN`) are sent only in `multipart/form-data` (text fields may go in the same request). **Request body** (`application/x-www-form-urlencoded / multipart/form-data`): - `category` (required, integer | string): Category ID or a comma-separated list of IDs (`3` or `3,4`). A list works only when the module option "Allow an entry to belong to multiple categories" is enabled (`options_other_categories` / `other_categories` in `/setup`). The primary category is determined by the category order in the control panel, not by the order of IDs in the submitted list. Parameters `ocat`, `ocats`, `categories`, and `… - `title` (required, string): Entry title - `description` (optional, string): Short entry description - `message` (optional, string): Full entry description - `description_type` (optional, string enum['plain', 'bb', 'html']): Short description text format: `plain` — plain text (default), `bb` — BB codes, `html` — HTML - `message_type` (optional, string enum['plain', 'bb', 'html']): Full description text format: `plain` — plain text (default), `bb` — BB codes, `html` — HTML - `comments` (optional, integer enum[1, 0]): Allow comments on the entry Default — enabled. Legacy `yes`/`no` values are also supported - `ontop` (optional, integer enum[1, 0]): Always show the entry at the top Default — disabled. Legacy `yes`/`no` values are also supported - `pending` (optional, integer enum[1, 0]): Put the entry into pending activation (premoderation) Default — disabled. Legacy `yes`/`no` values are also supported - `includehtml_desc` (optional, integer enum[1, 0]): Allow HTML in the short description Default — enabled. Legacy `yes`/`no` values are also supported - `includehtml_msg` (optional, integer enum[1, 0]): Allow HTML in the full description Default — enabled. Legacy `yes`/`no` values are also supported - `end2br_desc` (optional, integer enum[1, 0]): Convert line breaks to `
` in the short description Default — disabled. Legacy `yes`/`no` values are also supported - `end2br_msg` (optional, integer enum[1, 0]): Convert line breaks to `
` in the full description Default — disabled. Legacy `yes`/`no` values are also supported - `subscribe` (optional, integer enum[1, 0]): Subscribe to entry comments Default — disabled. Legacy `yes`/`no` values are also supported - `uto` (optional, integer enum[1, 0]): Replace external links using the u.to service Default — disabled. Legacy `yes`/`no` values are also supported - `name` (optional, string): Display name of the entry author (the "Author name" field). Not to be confused with `author` — a user nickname - `author_email` (optional, string): Author e-mail - `author_site` (optional, string): Author website - `link2source` (optional, string): Link to the entry source - `cover` (optional, string(binary)): Entry cover — `jpg`, `jpeg`, `jpe`, `png`, `gif`, `webp` image. Sent only in `multipart/form-data`. Maximum size — the cover setting (KB) - `file1` (optional, string(binary)): Embedded image in entry text — slots `file1`, `file2`, … up to the module settings limit. Extensions: `jpg`, `jpeg`, `jpe`, `png`, `gif`, `webp`; maximum size — module setting (KB). Sent only in `multipart/form-data`. Uploaded images are returned in the `files` array of responses. - `add_date` (optional, string): Publication date and time as `yyyy-mm-dd hh:mm`. Works if the "add date" option is enabled in the control panel - `meta_title` (optional, string): Meta Title - `meta_description` (optional, string): Meta Description - `meta_keywords` (optional, string): Meta Keywords - `ownurl` (optional, string): Entry custom URL (SEO-friendly) - `other1` (optional, string): Additional field 1 (max length — site plan limit) - `other2` (optional, string): Additional field 2 (max length — site plan limit) - `other3` (optional, string): Additional field 3 (max length — site plan limit) - `other4` (optional, string): Additional field 4 (max length — site plan limit) - `other5` (optional, string): Additional field 5 (max length — site plan limit) - `author` (optional, string): Existing user nickname. Deprecated — use `author_id`. Available to module administrators and editors only. - `author_id` (optional, integer): User ID — publish entry on their behalf. Takes priority over `author`. Available to module administrators and editors only. - `tags` (optional, string): Entry tags, comma-separated (tag1,tag2,tag3) ### `PUT` `/publ` — Edit entry Edit existing entry PATCH semantics apply: omitted fields keep their current values. File fields (`cover`, `file1`…`fileN`) are sent only in `multipart/form-data`. **Parameters:** - `id` (query, required, integer): Entry ID **Request body** (`application/x-www-form-urlencoded / multipart/form-data`): - `category` (optional, integer | string): Category ID or a comma-separated list of IDs (`3` or `3,4`). When sent, fully replaces the entry's current category set (e.g. entry was in 3 and 4; after `category=4` it remains only in 4). A list works only when the module option "Allow an entry to belong to multiple categories" is enabled. The primary category is determined by the category order in the control panel, not by the order of IDs in… - `title` (optional, string): Entry title - `description` (optional, string): Short entry description - `message` (optional, string): Full entry description - `description_type` (optional, string enum['plain', 'bb', 'html']): Short description text format: `plain` — plain text (default), `bb` — BB codes, `html` — HTML - `message_type` (optional, string enum['plain', 'bb', 'html']): Full description text format: `plain` — plain text (default), `bb` — BB codes, `html` — HTML - `comments` (optional, integer enum[1, 0]): Allow comments on the entry Omitted — the current value is kept. Legacy `yes`/`no` values are also supported - `ontop` (optional, integer enum[1, 0]): Always show the entry at the top Omitted — the current value is kept. Legacy `yes`/`no` values are also supported - `pending` (optional, integer enum[1, 0]): Put the entry into pending activation (premoderation) Omitted — the current value is kept. Legacy `yes`/`no` values are also supported - `includehtml_desc` (optional, integer enum[1, 0]): Allow HTML in the short description Default — enabled. Legacy `yes`/`no` values are also supported - `includehtml_msg` (optional, integer enum[1, 0]): Allow HTML in the full description Default — enabled. Legacy `yes`/`no` values are also supported - `end2br_desc` (optional, integer enum[1, 0]): Convert line breaks to `
` in the short description Default — disabled. Legacy `yes`/`no` values are also supported - `end2br_msg` (optional, integer enum[1, 0]): Convert line breaks to `
` in the full description Default — disabled. Legacy `yes`/`no` values are also supported - `subscribe` (optional, integer enum[1, 0]): Subscribe to entry comments Omitted — the current value is kept. Legacy `yes`/`no` values are also supported - `uto` (optional, integer enum[1, 0]): Replace external links using the u.to service Default — disabled. Legacy `yes`/`no` values are also supported - `name` (optional, string): Display name of the entry author (the "Author name" field). Not to be confused with `author` — a user nickname - `author_email` (optional, string): Author e-mail - `author_site` (optional, string): Author website - `link2source` (optional, string): Link to the entry source - `hgu_title` (optional, string): Entry SEO-friendly URL. Omitted — the current value is kept - `cover` (optional, string(binary)): Entry cover — `jpg`, `jpeg`, `jpe`, `png`, `gif`, `webp` image. Sent only in `multipart/form-data`. Maximum size — the cover setting (KB) - `cover_delete` (optional, integer enum[0, 1]): 1 — remove the current cover when editing (if one was uploaded); 0 — keep it - `file1` (optional, string(binary)): Embedded image — slots `file1`, `file2`, …; `multipart/form-data` only. PATCH semantics: a slot without an uploaded file keeps its current image. Remove a slot with `del_imgN=1`. - `del_img1` (optional, integer enum[0, 1]): 1 — remove embedded image in slot 1. Same for `del_img2`, `del_img3`, … - `add_date` (optional, string): Publication date and time as `yyyy-mm-dd hh:mm`. Works if the "add date" option is enabled in the control panel - `uplastmod` (optional, integer enum[0, 1]): 1 — write the current server time into the entry modification date. 0 or omitted — leave the modification date unchanged even if the entry was edited. An arbitrary date cannot be set with this field. The parameter only works for users with full edit rights for the module; for everyone else it is silently ignored. The result appears in the `mod_date` / `mod_date_ts` fields of the module list respo… - `meta_title` (optional, string): Meta Title - `meta_description` (optional, string): Meta Description - `meta_keywords` (optional, string): Meta Keywords - `ownurl` (optional, string): Entry custom URL (SEO-friendly) - `other1` (optional, string): Additional field 1 (max length — site plan limit) - `other2` (optional, string): Additional field 2 (max length — site plan limit) - `other3` (optional, string): Additional field 3 (max length — site plan limit) - `other4` (optional, string): Additional field 4 (max length — site plan limit) - `other5` (optional, string): Additional field 5 (max length — site plan limit) - `author` (optional, string): Existing user nickname. Deprecated — use `author_id`. Available to module administrators and editors only. - `author_id` (optional, integer): User ID — publish entry on their behalf. Takes priority over `author`. Available to module administrators and editors only. ### `DELETE` `/publ/posts` — Delete entry Delete entry from module **Parameters:** - `id` (query, required, integer): Entry ID ### `POST` `/publ/tags` — Add/update entry tags Add, update, or remove entry tags **Request body** (`application/x-www-form-urlencoded`): - `id` (required, integer): Entry ID - `tags` (optional, string): Comma-separated tag list ### `GET` `/publ/category` — Get category/section list Get all module categories and sections **Parameters:** - `id` (query, optional, integer): ID of a specific category ### `POST` `/publ/category` — Add category/section Add new category or section **Request body** (`application/x-www-form-urlencoded / multipart/form-data`): - `name` (required, string): Category/section name - `description` (optional, string) - `hgu_title` (optional, string) - `ownurl` (optional, string): Custom category slug (without domain) - `position` (optional, integer) - `access2category` (optional, string): Comma-separated group IDs allowed to view the category. System groups: 1 Users, 2 Verified, 3 Moderators, 4 Administrators, 251 Friends, 255 Blocked, 999 Guests - `access2add` (optional, string): Comma-separated group IDs allowed to add entries to the category. System groups: 1 Users, 2 Verified, 3 Moderators, 4 Administrators, 251 Friends, 255 Blocked, 999 Guests - `access2page` (optional, string): Comma-separated group IDs allowed to view the category page. System groups: 1 Users, 2 Verified, 3 Moderators, 4 Administrators, 251 Friends, 255 Blocked, 999 Guests - `file` (optional, string(binary)): Category image ### `PUT` `/publ/category` — Edit category/section Edit existing category or section **Parameters:** - `id` (query, required, integer): Category ID **Request body** (`application/x-www-form-urlencoded / multipart/form-data`): - `name` (optional, string) - `description` (optional, string) - `hgu_title` (optional, string) - `ownurl` (optional, string): Custom category slug (without domain) - `position` (optional, integer) - `access2category` (optional, string): Comma-separated group IDs allowed to view the category. System groups: 1 Users, 2 Verified, 3 Moderators, 4 Administrators, 251 Friends, 255 Blocked, 999 Guests - `access2add` (optional, string): Comma-separated group IDs allowed to add entries to the category. System groups: 1 Users, 2 Verified, 3 Moderators, 4 Administrators, 251 Friends, 255 Blocked, 999 Guests - `access2page` (optional, string): Comma-separated group IDs allowed to view the category page. System groups: 1 Users, 2 Verified, 3 Moderators, 4 Administrators, 251 Friends, 255 Blocked, 999 Guests - `file` (optional, string(binary)): Category image ### `DELETE` `/publ/category` — Delete category/section Delete category or section **Parameters:** - `id` (query, required, integer): Category ID ### `GET` `/publ/comments` — Get entry comments Get all comments for a specific entry **Parameters:** - `id` (query, required, integer): Entry ID ### `POST` `/publ/comments` — Add comment Add comment to entry **Request body** (`application/x-www-form-urlencoded`): - `entry_id` (required, integer): Entry ID - `message` (required, string): Comment text - `pros` (optional, string): Entry pros - `cons` (optional, string): Entry cons - `parent_id` (optional, integer): Parent comment ID - `user_id` (optional, integer): User ID on whose behalf the comment is added. Works only when called by a user with permission to edit all comments. - `subscribe_to_replies` (optional, string): Subscribe the authenticated user to replies for the entry after adding the comment. Value 0/no does not create a subscription; 1/yes creates a subscription. By default, the subscription is created. ### `PUT` `/publ/comments` — Edit comment Edit existing comment **Parameters:** - `id` (query, required, integer): Comment ID **Request body** (`application/x-www-form-urlencoded`): - `message` (optional, string) - `pros` (optional, string): Entry pros - `cons` (optional, string): Entry cons ### `DELETE` `/publ/comments` — Delete comment **Parameters:** - `id` (query, required, integer): Comment ID ### `GET` `/publ/filter` — Get filter list Get all module filters **Parameters:** - `filter_id` (query, optional, integer): Filter ID ### `POST` `/publ/filter` — Add filter Add new filter **Request body** (`application/x-www-form-urlencoded`): - `filter_num` (required, integer enum[1, 2, 3]): Filter number (1, 2, or 3) - `name` (required, string): Filter name - `items` (required, string): Values separated by | - `multiselect` (optional, string enum[True, False]): Multiple selection (yes/no) - `multi4userdisabled` (optional, string enum[True, False]): Multiple selection for regular users ### `PUT` `/publ/filter` — Update filter Update existing filter **Request body** (`application/x-www-form-urlencoded`): - `filter_num` (required, integer enum[1, 2, 3]): Filter number (1, 2, or 3) - `name` (optional, string): New filter name - `items` (optional, string): New values separated by | - `multiselect` (optional, string enum[True, False]) - `multi4userdisabled` (optional, string enum[True, False]) ### `DELETE` `/publ/filter` — Delete filter Delete module filter **Parameters:** - `filter_num` (query, required, integer enum[1, 2, 3]): Filter number (1, 2, or 3) ### `GET` `/publ/fields` — Get module field settings Shows available module fields --- ## Board Module OpenAPI: https://api.ucoz.net/board-openapi.yaml | Method | Path | Summary | |---|---|---| | `GET` | `/board` | Get all module entries | | `POST` | `/board` | Add entry | | `PUT` | `/board` | Edit entry | | `DELETE` | `/board/posts` | Delete entry | | `POST` | `/board/tags` | Add/update entry tags | | `GET` | `/board/category` | Get category/section list | | `POST` | `/board/category` | Add category/section | | `PUT` | `/board/category` | Edit category/section | | `DELETE` | `/board/category` | Delete category/section | | `GET` | `/board/comments` | Get entry comments | | `POST` | `/board/comments` | Add comment | | `PUT` | `/board/comments` | Edit comment | | `DELETE` | `/board/comments` | Delete comment | | `GET` | `/board/filter` | Get filter list | | `POST` | `/board/filter` | Add filter | | `PUT` | `/board/filter` | Update filter | | `DELETE` | `/board/filter` | Delete filter | | `GET` | `/board/fields` | Get module field settings | ### `GET` `/board` — Get all module entries Get a list of all entries in the "Ad board" module **Parameters:** - `page` (query, optional, integer): Page number. - `per_page` (query, optional, integer): Number of entries per page. - `id` (query, optional, integer): ID of a specific entry - `category` (query, optional, integer): Category ID - `user_id` (query, optional, integer): Filter by numeric ID of the entry author - `pending` (query, optional, integer): Non-zero value — return only entries pending activation (premoderation) ### `POST` `/board` — Add entry Add a new entry to the "Ad board" module Text fields can be sent in `application/x-www-form-urlencoded`. File fields (`screenshot`, `archive`, `cover`, `file1`…`fileN`) are sent only in `multipart/form-data` (text fields may go in the same request). **Request body** (`application/x-www-form-urlencoded / multipart/form-data`): - `category` (required, integer | string): Category ID or a comma-separated list of IDs (`3` or `3,4`). A list works only when the module option "Allow an entry to belong to multiple categories" is enabled (`options_other_categories` / `other_categories` in `/setup`). The primary category is determined by the category order in the control panel, not by the order of IDs in the submitted list. Parameters `ocat`, `ocats`, `categories`, and `… - `title` (required, string): Entry title - `description` (optional, string): Short entry description - `message` (optional, string): Full entry description - `description_type` (optional, string enum['plain', 'bb', 'html']): Short description text format: `plain` — plain text (default), `bb` — BB codes, `html` — HTML - `message_type` (optional, string enum['plain', 'bb', 'html']): Full description text format: `plain` — plain text (default), `bb` — BB codes, `html` — HTML - `comments` (optional, integer enum[1, 0]): Allow comments on the entry Default — enabled. Legacy `yes`/`no` values are also supported - `ontop` (optional, integer enum[1, 0]): Always show the entry at the top Default — disabled. Legacy `yes`/`no` values are also supported - `pending` (optional, integer enum[1, 0]): Put the entry into pending activation (premoderation) Default — disabled. Legacy `yes`/`no` values are also supported - `includehtml_desc` (optional, integer enum[1, 0]): Allow HTML in the short description Default — enabled. Legacy `yes`/`no` values are also supported - `includehtml_msg` (optional, integer enum[1, 0]): Allow HTML in the full description Default — enabled. Legacy `yes`/`no` values are also supported - `end2br_desc` (optional, integer enum[1, 0]): Convert line breaks to `
` in the short description Default — disabled. Legacy `yes`/`no` values are also supported - `end2br_msg` (optional, integer enum[1, 0]): Convert line breaks to `
` in the full description Default — disabled. Legacy `yes`/`no` values are also supported - `subscribe` (optional, integer enum[1, 0]): Subscribe to entry comments Default — disabled. Legacy `yes`/`no` values are also supported - `uto` (optional, integer enum[1, 0]): Replace external links using the u.to service Default — disabled. Legacy `yes`/`no` values are also supported - `name` (optional, string): Ad contact person - `author_email` (optional, string): Author e-mail - `author_site` (optional, string): Author website - `author_phone` (optional, string): Contact phone number - `till_date` (optional, string): Ad placement end date as `yyyy-mm-dd` or `yyyy-mm-dd hh:mm`. Invalid format — `INVALID_DATETIME`. Omitted — 31 days from now - `ontop_period` (optional, string enum['day', 'week', 'month']): Pin the ad at the top for a period: `day`, `week` or `month` (if allowed for group). Other values — `INVALID_DATETIME` - `filter1` (optional, string): Filter 1 values — comma-separated value IDs (see `GET /board/filter`). Whether it is required depends on module settings - `filter2` (optional, string): Filter 2 values — comma-separated value IDs (see `GET /board/filter`). Whether it is required depends on module settings - `filter3` (optional, string): Filter 3 values — comma-separated value IDs (see `GET /board/filter`). Whether it is required depends on module settings - `screenshot` (optional, string(binary)): Entry screenshot — `jpg`, `jpeg`, `jpe`, `png`, `gif`, `webp` image. Sent only in `multipart/form-data`. Maximum size — module setting (KB) - `archive` (optional, string(binary)): Archive file (arbitrary downloadable file). Sent only in `multipart/form-data`. Maximum size is limited by site settings/plan - `cover` (optional, string(binary)): Entry cover — `jpg`, `jpeg`, `jpe`, `png`, `gif`, `webp` image. Sent only in `multipart/form-data`. Maximum size — the cover setting (KB) - `file1` (optional, string(binary)): Embedded image in entry text — slots `file1`, `file2`, … up to the module settings limit. Extensions: `jpg`, `jpeg`, `jpe`, `png`, `gif`, `webp`; maximum size — module setting (KB). Sent only in `multipart/form-data`. Uploaded images are returned in the `files` array of responses. - `add_date` (optional, string): Publication date and time as `yyyy-mm-dd hh:mm`. Works if the "add date" option is enabled in the control panel - `meta_title` (optional, string): Meta Title - `meta_description` (optional, string): Meta Description - `meta_keywords` (optional, string): Meta Keywords - `ownurl` (optional, string): Entry custom URL (SEO-friendly) - `other1` (optional, string): Additional field 1 (max length — site plan limit) - `other2` (optional, string): Additional field 2 (max length — site plan limit) - `other3` (optional, string): Additional field 3 (max length — site plan limit) - `other4` (optional, string): Additional field 4 (max length — site plan limit) - `other5` (optional, string): Additional field 5 (max length — site plan limit) - `author` (optional, string): Existing user nickname. Deprecated — use `author_id`. Available to module administrators and editors only. - `author_id` (optional, integer): User ID — publish entry on their behalf. Takes priority over `author`. Available to module administrators and editors only. - `tags` (optional, string): Entry tags, comma-separated (tag1,tag2,tag3) ### `PUT` `/board` — Edit entry Edit an existing entry PATCH semantics apply: omitted fields keep their current values. File fields (`screenshot`, `archive`, `cover`, `file1`…`fileN`) are sent only in `multipart/form-data`. **Parameters:** - `id` (query, required, integer): Entry ID **Request body** (`application/x-www-form-urlencoded / multipart/form-data`): - `category` (optional, integer | string): Category ID or a comma-separated list of IDs (`3` or `3,4`). When sent, fully replaces the entry's current category set (e.g. entry was in 3 and 4; after `category=4` it remains only in 4). A list works only when the module option "Allow an entry to belong to multiple categories" is enabled. The primary category is determined by the category order in the control panel, not by the order of IDs in… - `title` (optional, string): Entry title - `description` (optional, string): Short entry description - `message` (optional, string): Full entry description - `description_type` (optional, string enum['plain', 'bb', 'html']): Short description text format: `plain` — plain text (default), `bb` — BB codes, `html` — HTML - `message_type` (optional, string enum['plain', 'bb', 'html']): Full description text format: `plain` — plain text (default), `bb` — BB codes, `html` — HTML - `comments` (optional, integer enum[1, 0]): Allow comments on the entry Omitted — the current value is kept. Legacy `yes`/`no` values are also supported - `ontop` (optional, integer enum[1, 0]): Always show the entry at the top Omitted — the current value is kept. Legacy `yes`/`no` values are also supported - `pending` (optional, integer enum[1, 0]): Put the entry into pending activation (premoderation) Omitted — the current value is kept. Legacy `yes`/`no` values are also supported - `includehtml_desc` (optional, integer enum[1, 0]): Allow HTML in the short description Default — enabled. Legacy `yes`/`no` values are also supported - `includehtml_msg` (optional, integer enum[1, 0]): Allow HTML in the full description Default — enabled. Legacy `yes`/`no` values are also supported - `end2br_desc` (optional, integer enum[1, 0]): Convert line breaks to `
` in the short description Default — disabled. Legacy `yes`/`no` values are also supported - `end2br_msg` (optional, integer enum[1, 0]): Convert line breaks to `
` in the full description Default — disabled. Legacy `yes`/`no` values are also supported - `subscribe` (optional, integer enum[1, 0]): Subscribe to entry comments Omitted — the current value is kept. Legacy `yes`/`no` values are also supported - `uto` (optional, integer enum[1, 0]): Replace external links using the u.to service Default — disabled. Legacy `yes`/`no` values are also supported - `name` (optional, string): Ad contact person - `author_email` (optional, string): Author e-mail - `author_site` (optional, string): Author website - `author_phone` (optional, string): Contact phone number - `till_date` (optional, string): Ad placement end date as `yyyy-mm-dd` or `yyyy-mm-dd hh:mm`. Invalid format — `INVALID_DATETIME`. Omitted — 31 days from now - `ontop_period` (optional, string enum['day', 'week', 'month']): Pin the ad at the top for a period: `day`, `week` or `month` (if allowed for group). Other values — `INVALID_DATETIME` - `filter1` (optional, string): Filter 1 values — comma-separated value IDs (see `GET /board/filter`). Whether it is required depends on module settings - `filter2` (optional, string): Filter 2 values — comma-separated value IDs (see `GET /board/filter`). Whether it is required depends on module settings - `filter3` (optional, string): Filter 3 values — comma-separated value IDs (see `GET /board/filter`). Whether it is required depends on module settings - `hgu_title` (optional, string): Entry SEO-friendly URL. Omitted — the current value is kept - `screenshot` (optional, string(binary)): Entry screenshot — `jpg`, `jpeg`, `jpe`, `png`, `gif`, `webp` image. Sent only in `multipart/form-data`. Maximum size — module setting (KB) - `archive` (optional, string(binary)): Archive file (arbitrary downloadable file). Sent only in `multipart/form-data`. Maximum size is limited by site settings/plan - `cover` (optional, string(binary)): Entry cover — `jpg`, `jpeg`, `jpe`, `png`, `gif`, `webp` image. Sent only in `multipart/form-data`. Maximum size — the cover setting (KB) - `cover_delete` (optional, integer enum[0, 1]): 1 — remove the current cover when editing (if one was uploaded); 0 — keep it - `file1` (optional, string(binary)): Embedded image — slots `file1`, `file2`, …; `multipart/form-data` only. PATCH semantics: a slot without an uploaded file keeps its current image. Remove a slot with `del_imgN=1`. - `del_img1` (optional, integer enum[0, 1]): 1 — remove embedded image in slot 1. Same for `del_img2`, `del_img3`, … - `add_date` (optional, string): Publication date and time as `yyyy-mm-dd hh:mm`. Works if the "add date" option is enabled in the control panel - `update_date` (optional, integer enum[0, 1]): 1 — write the current server time into the entry modification date. 0 or omitted — leave the modification date unchanged even if the entry was edited. Despite the name, an arbitrary date cannot be set with this parameter — it is a 0/1 flag. The parameter only works for users with full edit rights for the module; for everyone else it is silently ignored. The result appears in the `mod_date` / `mod… - `meta_title` (optional, string): Meta Title - `meta_description` (optional, string): Meta Description - `meta_keywords` (optional, string): Meta Keywords - `ownurl` (optional, string): Entry custom URL (SEO-friendly) - `other1` (optional, string): Additional field 1 (max length — site plan limit) - `other2` (optional, string): Additional field 2 (max length — site plan limit) - `other3` (optional, string): Additional field 3 (max length — site plan limit) - `other4` (optional, string): Additional field 4 (max length — site plan limit) - `other5` (optional, string): Additional field 5 (max length — site plan limit) - `author` (optional, string): Existing user nickname. Deprecated — use `author_id`. Available to module administrators and editors only. - `author_id` (optional, integer): User ID — publish entry on their behalf. Takes priority over `author`. Available to module administrators and editors only. ### `DELETE` `/board/posts` — Delete entry Delete an entry from the module **Parameters:** - `id` (query, required, integer): Entry ID ### `POST` `/board/tags` — Add/update entry tags Add, change, or remove tags for an entry **Request body** (`application/x-www-form-urlencoded`): - `id` (required, integer): Entry ID - `tags` (optional, string): Comma-separated list of tags ### `GET` `/board/category` — Get category/section list Get all module categories and sections **Parameters:** - `id` (query, optional, integer): ID of a specific category ### `POST` `/board/category` — Add category/section Add a new category or section **Request body** (`application/x-www-form-urlencoded / multipart/form-data`): - `name` (required, string): Category/section name - `description` (optional, string) - `hgu_title` (optional, string) - `ownurl` (optional, string): Custom category slug (without domain) - `position` (optional, integer) - `access2category` (optional, string): Comma-separated group IDs allowed to view the category. System groups: 1 Users, 2 Verified, 3 Moderators, 4 Administrators, 251 Friends, 255 Blocked, 999 Guests - `access2add` (optional, string): Comma-separated group IDs allowed to add entries to the category. System groups: 1 Users, 2 Verified, 3 Moderators, 4 Administrators, 251 Friends, 255 Blocked, 999 Guests - `access2page` (optional, string): Comma-separated group IDs allowed to view the category page. System groups: 1 Users, 2 Verified, 3 Moderators, 4 Administrators, 251 Friends, 255 Blocked, 999 Guests - `file` (optional, string(binary)): Category image ### `PUT` `/board/category` — Edit category/section Edit an existing category or section **Parameters:** - `id` (query, required, integer): Category ID **Request body** (`application/x-www-form-urlencoded / multipart/form-data`): - `name` (optional, string) - `description` (optional, string) - `hgu_title` (optional, string) - `ownurl` (optional, string): Custom category slug (without domain) - `position` (optional, integer) - `access2category` (optional, string): Comma-separated group IDs allowed to view the category. System groups: 1 Users, 2 Verified, 3 Moderators, 4 Administrators, 251 Friends, 255 Blocked, 999 Guests - `access2add` (optional, string): Comma-separated group IDs allowed to add entries to the category. System groups: 1 Users, 2 Verified, 3 Moderators, 4 Administrators, 251 Friends, 255 Blocked, 999 Guests - `access2page` (optional, string): Comma-separated group IDs allowed to view the category page. System groups: 1 Users, 2 Verified, 3 Moderators, 4 Administrators, 251 Friends, 255 Blocked, 999 Guests - `file` (optional, string(binary)): Category image ### `DELETE` `/board/category` — Delete category/section Delete a category or section **Parameters:** - `id` (query, required, integer): Category ID ### `GET` `/board/comments` — Get entry comments Get all comments for a specific entry **Parameters:** - `id` (query, required, integer): Entry ID ### `POST` `/board/comments` — Add comment Add a comment to an entry **Request body** (`application/x-www-form-urlencoded`): - `entry_id` (required, integer): Entry ID - `message` (required, string): Comment text - `pros` (optional, string): Entry pros - `cons` (optional, string): Entry cons - `parent_id` (optional, integer): Parent comment ID - `user_id` (optional, integer): User ID on whose behalf the comment is added. Works only when called by a user with permission to edit all comments. - `subscribe_to_replies` (optional, string): Subscribe the authenticated user to replies for the entry after adding the comment. Value 0/no does not create a subscription; 1/yes creates a subscription. By default, the subscription is created. ### `PUT` `/board/comments` — Edit comment Edit an existing comment **Parameters:** - `id` (query, required, integer): Comment ID **Request body** (`application/x-www-form-urlencoded`): - `message` (optional, string) - `pros` (optional, string): Entry pros - `cons` (optional, string): Entry cons ### `DELETE` `/board/comments` — Delete comment **Parameters:** - `id` (query, required, integer): Comment ID ### `GET` `/board/filter` — Get filter list Get all module filters **Parameters:** - `filter_id` (query, optional, integer): Filter ID ### `POST` `/board/filter` — Add filter Add a new filter **Request body** (`application/x-www-form-urlencoded`): - `filter_num` (required, integer enum[1, 2, 3]): Filter number (1, 2, or 3) - `name` (required, string): Filter name - `items` (required, string): Values separated by | - `multiselect` (optional, string enum[True, False]): Multiple selection (yes/no) - `multi4userdisabled` (optional, string enum[True, False]): Multiple selection for regular users ### `PUT` `/board/filter` — Update filter Update an existing filter **Request body** (`application/x-www-form-urlencoded`): - `filter_num` (required, integer enum[1, 2, 3]): Filter number (1, 2, or 3) - `name` (optional, string): New filter name - `items` (optional, string): New values separated by | - `multiselect` (optional, string enum[True, False]) - `multi4userdisabled` (optional, string enum[True, False]) ### `DELETE` `/board/filter` — Delete filter Delete a module filter **Parameters:** - `filter_num` (query, required, integer enum[1, 2, 3]): Filter number (1, 2, or 3) ### `GET` `/board/fields` — Get module field settings Shows available module fields --- ## Photo Module OpenAPI: https://api.ucoz.net/photo-openapi.yaml | Method | Path | Summary | |---|---|---| | `GET` | `/photo` | Search entries | | `POST` | `/photo` | Add entry | | `PUT` | `/photo` | Edit entry | | `GET` | `/photo/album` | Album / category entries | | `DELETE` | `/photo/entry` | Delete entry | | `GET` | `/photo/category` | Get category/section list | | `POST` | `/photo/category` | Add category/section | | `PUT` | `/photo/category` | Edit category/section | | `DELETE` | `/photo/category` | Delete category/section | | `GET` | `/photo/comments` | Get entry comments | | `POST` | `/photo/comments` | Add comment | | `PUT` | `/photo/comments` | Edit comment | | `DELETE` | `/photo/comments` | Delete comment | | `GET` | `/photo/filter` | Get filter list | | `POST` | `/photo/filter` | Add filter | | `PUT` | `/photo/filter` | Update filter | | `DELETE` | `/photo/filter` | Delete filter | | `GET` | `/photo/fields` | Get module field settings | ### `GET` `/photo` — Search entries Get a specific entry by ID. **Notes:** - If no entries are found, you receive `{"error":{"msg":"Nothing found for your request"}}` **Parameters:** - `id` (query, optional, integer): Entry ID ### `POST` `/photo` — Add entry Add a new entry to the "Photo album" module **Request body** (`multipart/form-data`): - `category` (required, integer): Category ID - `photo` (required, string(binary)): Image (file) - `name` (optional, string): Photo title - `description` (optional, string): Entry description - `ownurl` (optional, string): Entry custom URL (SEO-friendly) - `other1` (optional, string): Additional field 1 - `other2` (optional, string): Additional field 2 - `other3` (optional, string): Additional field 3 - `other4` (optional, string): Additional field 4 - `other5` (optional, string): Additional field 5 - `author` (optional, string): Existing user nickname. Deprecated — use `author_id`. Available to module administrators and editors only. - `author_id` (optional, integer): User ID — publish photo on their behalf. Takes priority over `author`. Available to module administrators and editors only. - `tags` (optional, string): Entry tags, comma-separated (tag1,tag2,tag3) - `comments` (optional, integer enum[1, 0]): Allow comments. Default — enabled. Legacy `yes`/`no` values are also supported - `pending` (optional, integer enum[1, 0]): Put the entry into pending activation (premoderation). Default — disabled. Legacy `yes`/`no` values are also supported - `subscribe` (optional, integer enum[1, 0]): Subscribe to entry comments. Default — disabled. Legacy `yes`/`no` values are also supported - `filter1` (optional, string): Filter 1 values — comma-separated value IDs (see `GET /photo/filter`) - `filter2` (optional, string): Filter 2 values — comma-separated value IDs (see `GET /photo/filter`) - `img1_title` (optional, string): Image title (if enabled in module settings) - `img1_alt` (optional, string): Image alt (if enabled in module settings) - `save_original` (optional, integer enum[1, 0]): Keep the original image. Default — disabled. Legacy `yes`/`no` values are also supported - `add_date` (optional, string): Entry publication date and time. Format: `YYYY-MM-DD HH:MM`. Works only if the module thin settings option “Enable the ability to choose the entry add date” is enabled. ### `PUT` `/photo` — Edit entry Edit existing entry **Request body** (`multipart/form-data`): - `id` (required, integer): Entry ID (required) - `category` (optional, integer): Category ID - `photo` (optional, string(binary)): Image (file) - `name` (optional, string): Photo title - `description` (optional, string): Entry description - `ownurl` (optional, string): Entry custom URL (SEO-friendly) - `other1` (optional, string): Additional field 1 - `other2` (optional, string): Additional field 2 - `other3` (optional, string): Additional field 3 - `other4` (optional, string): Additional field 4 - `other5` (optional, string): Additional field 5 - `author` (optional, string): Existing user nickname. Deprecated — use `author_id`. Available to module administrators and editors only. - `author_id` (optional, integer): User ID — republish photo on their behalf. Takes priority over `author`. Available to module administrators and editors only. - `comments` (optional, integer enum[1, 0]): Allow comments. Default — enabled. Legacy `yes`/`no` values are also supported - `pending` (optional, integer enum[1, 0]): Put the entry into pending activation (premoderation). Default — disabled. Legacy `yes`/`no` values are also supported - `subscribe` (optional, integer enum[1, 0]): Subscribe to entry comments. Default — disabled. Legacy `yes`/`no` values are also supported - `filter1` (optional, string): Filter 1 values — comma-separated value IDs (see `GET /photo/filter`) - `filter2` (optional, string): Filter 2 values — comma-separated value IDs (see `GET /photo/filter`) - `img1_title` (optional, string): Image title (if enabled in module settings) - `img1_alt` (optional, string): Image alt (if enabled in module settings) - `save_original` (optional, integer enum[1, 0]): Keep the original image. Default — disabled. Legacy `yes`/`no` values are also supported - `add_date` (optional, string): Entry publication date and time. Format: `YYYY-MM-DD HH:MM`. Works only if the module thin settings option “Enable the ability to choose the entry add date” is enabled. - `update_date` (optional, integer enum[0, 1]): 1 — write the current server time into the entry modification date. 0 or omitted — leave the modification date unchanged even if the entry was edited. Despite the name, an arbitrary date cannot be set with this parameter — it is a 0/1 flag. The parameter only works for users with full edit rights for the module; for everyone else it is silently ignored. The result appears in the `mod_date` / `mod… ### `GET` `/photo/album` — Album / category entries Get album entries. Without `category` — all entries; with `category` — entries in that category only. **Notes:** - To fetch entries from page 2, add parameter `page=N` (N — page number) - If no entries are found, you receive `{"error":{"msg":"Nothing found for your request"}}` **Parameters:** - `category` (query, optional, integer): Category ID. If set — returns entries in that category only - `page` (query, optional, integer): Page number ### `DELETE` `/photo/entry` — Delete entry Delete entry from module **Parameters:** - `id` (query, required, integer): Entry ID ### `GET` `/photo/category` — Get category/section list Get all module categories and sections **Parameters:** - `id` (query, optional, integer): ID of a specific category ### `POST` `/photo/category` — Add category/section Add new category or section **Request body** (`application/x-www-form-urlencoded / multipart/form-data`): - `name` (required, string): Category/section name - `description` (optional, string) - `hgu_title` (optional, string) - `ownurl` (optional, string): Custom category slug (without domain) - `position` (optional, integer) - `access2category` (optional, string): Comma-separated group IDs allowed to view the category. System groups: 1 Users, 2 Verified, 3 Moderators, 4 Administrators, 251 Friends, 255 Blocked, 999 Guests - `access2add` (optional, string): Comma-separated group IDs allowed to add entries to the category. System groups: 1 Users, 2 Verified, 3 Moderators, 4 Administrators, 251 Friends, 255 Blocked, 999 Guests - `access2page` (optional, string): Comma-separated group IDs allowed to view the category page. System groups: 1 Users, 2 Verified, 3 Moderators, 4 Administrators, 251 Friends, 255 Blocked, 999 Guests - `file` (optional, string(binary)): Category image ### `PUT` `/photo/category` — Edit category/section Edit existing category or section **Parameters:** - `id` (query, required, integer): Category ID **Request body** (`application/x-www-form-urlencoded / multipart/form-data`): - `name` (optional, string) - `description` (optional, string) - `hgu_title` (optional, string) - `ownurl` (optional, string): Custom category slug (without domain) - `position` (optional, integer) - `access2category` (optional, string): Comma-separated group IDs allowed to view the category. System groups: 1 Users, 2 Verified, 3 Moderators, 4 Administrators, 251 Friends, 255 Blocked, 999 Guests - `access2add` (optional, string): Comma-separated group IDs allowed to add entries to the category. System groups: 1 Users, 2 Verified, 3 Moderators, 4 Administrators, 251 Friends, 255 Blocked, 999 Guests - `access2page` (optional, string): Comma-separated group IDs allowed to view the category page. System groups: 1 Users, 2 Verified, 3 Moderators, 4 Administrators, 251 Friends, 255 Blocked, 999 Guests - `file` (optional, string(binary)): Category image ### `DELETE` `/photo/category` — Delete category/section Delete category or section **Parameters:** - `id` (query, required, integer): Category ID ### `GET` `/photo/comments` — Get entry comments Get all comments for a specific entry **Parameters:** - `id` (query, required, integer): Entry ID ### `POST` `/photo/comments` — Add comment Add comment to entry **Request body** (`application/x-www-form-urlencoded`): - `entry_id` (required, integer): Entry ID - `message` (required, string): Comment text - `pros` (optional, string): Entry pros - `cons` (optional, string): Entry cons - `parent_id` (optional, integer): Parent comment ID - `user_id` (optional, integer): User ID on whose behalf the comment is added. Works only when called by a user with permission to edit all comments. - `subscribe_to_replies` (optional, string): Subscribe the authenticated user to replies for the entry after adding the comment. Value 0/no does not create a subscription; 1/yes creates a subscription. By default, the subscription is created. ### `PUT` `/photo/comments` — Edit comment Edit existing comment **Parameters:** - `id` (query, required, integer): Comment ID **Request body** (`application/x-www-form-urlencoded`): - `message` (optional, string) - `pros` (optional, string): Entry pros - `cons` (optional, string): Entry cons ### `DELETE` `/photo/comments` — Delete comment **Parameters:** - `id` (query, required, integer): Comment ID ### `GET` `/photo/filter` — Get filter list Get all module filters **Parameters:** - `filter_id` (query, optional, integer): Filter ID ### `POST` `/photo/filter` — Add filter Add new filter **Request body** (`application/x-www-form-urlencoded`): - `filter_num` (required, integer enum[1, 2]): Filter number (1 or 2) - `name` (required, string): Filter name - `items` (required, string): Values separated by | - `multiselect` (optional, string enum[True, False]): Multiple selection (yes/no) - `multi4userdisabled` (optional, string enum[True, False]): Disable multiple selection for regular users (yes/no) ### `PUT` `/photo/filter` — Update filter Update existing filter **Request body** (`application/x-www-form-urlencoded`): - `filter_num` (required, integer enum[1, 2]): Filter number (1 or 2) - `name` (optional, string): New filter name - `items` (optional, string): New values separated by | - `multiselect` (optional, string enum[True, False]) - `multi4userdisabled` (optional, string enum[True, False]) ### `DELETE` `/photo/filter` — Delete filter Delete module filter **Parameters:** - `filter_num` (query, required, integer enum[1, 2]): Filter number (1 or 2) ### `GET` `/photo/fields` — Get module field settings Shows available module fields --- ## Video Module OpenAPI: https://api.ucoz.net/video-openapi.yaml | Method | Path | Summary | |---|---|---| | `GET` | `/video` | Get all module entries | | `POST` | `/video` | Add video | | `PUT` | `/video` | Edit video | | `DELETE` | `/video/posts` | Delete video | | `GET` | `/video/category` | Get entry category list | | `POST` | `/video/category` | Add entry category | | `PUT` | `/video/category` | Update entry category | | `DELETE` | `/video/category` | Delete entry category | | `GET` | `/video/channel` | Get channel list | | `POST` | `/video/channel` | Add channel | | `PUT` | `/video/channel` | Update channel | | `DELETE` | `/video/channel` | Delete channel | | `GET` | `/video/channel/category` | Get channel category list | | `POST` | `/video/channel/category` | Add channel category | | `PUT` | `/video/channel/category` | Update channel category | | `DELETE` | `/video/channel/category` | Delete channel category | | `GET` | `/video/comments` | Get comments | | `POST` | `/video/comments` | Add comment | | `DELETE` | `/video/comments` | Delete comment | | `GET` | `/video/filter` | Get filter list | | `POST` | `/video/filter` | Add filter | | `PUT` | `/video/filter` | Update filter | | `DELETE` | `/video/filter` | Delete filter | ### `GET` `/video` — Get all module entries Get all video entries in the module **Parameters:** - `page` (query, optional, integer): Page number. - `per_page` (query, optional, integer): Entries per page. - `sort` (query, optional, string): Sort type ### `POST` `/video` — Add video Add a new video to the module **Request body** (`application/x-www-form-urlencoded / multipart/form-data`): - `category` (required, integer): Category ID - `title` (required, string): Video title - `description` (required, string): Video description - `object` (required, string): Video embed code (e.g. `