HostPapa · Online Presence Builder

API Integration Guide

The Online Presence Builder HTTP API lets an authenticated integration read and update customer websites programmatically — page content, structure, design, media, and apps. This guide covers the request model, authentication, and a command reference by category.

API version 1.0 Format HTTP · JSON Updated 15 Jul 2026

Protocol

HTTP · JSONOne command endpoint, GET/POST. Multipart for file uploads.

Authentication

API keyIssued by HostPapa. IP-allowlisted. Targets a customer site via login.

Model

Working copy → publishEdits stage on a draft and go live on an explicit publish; changes are revertible.

Contents

Scope of this guide

This covers the OPB APIs relevant to authenticated website updates — reading and editing site content, structure, design, and apps, then publishing. It is the subset identified as relevant to this integration; the platform exposes further capabilities beyond it, which can be provided to authorized integrations on demand, if available.

01 Request & response model

A command API over an account's content tree

Every call targets one endpoint and names a command as cmd=<category>.<action>. Parameters are supplied as query-string or form fields; the version defaults to 1.0.

# request shape
https://<your-domain>/api?cmd=<command>[&version=1.0]&<param>=<value>…

# example — update an element's HTML on a customer site
POST https://<your-domain>/api
  cmd=object.set
  api_key=<API_KEY>
  login=<customer-login>
  node_id={SK_NODEID__1234__SK}
  properties={"HtmlText":"<p>Hello</p>"}

Responses are either raw content (e.g. rendered HTML) or a JSON envelope. Errors, and most successful writes, return the envelope:

{ "return_code": "SUCCESS" | "FAILURE",
  "message": "human-readable result",
  "data": { /* operation-specific payload */ } }

02 Authentication

API key, IP allowlist, and the target account

Every request authenticates with your api_key and must originate from an allowlisted IP. To act on a specific customer site, include that account's login. Your key is scoped to the set of accounts you manage.

Convention used in this guide

The api_key and login parameters apply to every call and are omitted from the per-command tables below — those list only the command-specific parameters.

required required parameteroptional optional parameter

03 Object API

Read and update the page-content tree

A site is a tree of typed objects — Site → Pages → Areas → Sections → Containers → content elements. This is the core surface for editing site content.

Discovering an element's properties

Property sets vary by element type. Rather than a static catalogue, call object.get on any element to return its current editable property keys and values, and object.get_rendered_template to preview the output — the API is self-describing.

Element operations

CommandDescriptionParameters
object.getRead an object's metadata and properties.
node_idproperties
object.setUpdate an object's properties (text/HTML, layout, configuration).
node_idpropertiesproperties_typereturn_properties
object.addCreate an element under a parent node.
parent_idobj_idobj_instobj_orderproperties
object.add_multipleCreate several elements in one call.
objects
object.moveReparent / reorder an element (it gets a new ID).
node_idparent_idobj_order
object.removeDelete an element (referenced objects can't be removed).
node_id
object.remove_multipleDelete several elements.
node_ids
object.hide_multipleHide elements from display.
node_ids
object.show_multipleReveal hidden elements.
node_ids
object.get_rendered_templateRender HTML from an object's properties.
node_idpathserialize

Page operations

CommandDescriptionParameters
object.page.getPage details, with optional supplementary data.
node_idareasanchorsreferenceslayoutsschemes
object.page.get_multipleDetails for several pages at once.
node_idsareasanchors
object.page.get_treeHierarchy of a page's areas and elements.
node_id
object.page.duplicateClone a page, with optional text substitution.
node_idreplacementsadd_to_main
object.page.removeDelete a page, with optional link cleanup.
node_idremove_linksreplace_links_with
object.page.move_to_folderMove a page between folders.
node_idfolder_id
object.page.publishPublish a single page.
node_id
object.page.exportExport a page's content.
node_id
object.page.importImport content into a page.
content
object.page.get_sizeReport a page's storage use.
node_id

Site-object operations

CommandDescriptionParameters
object.site.setUpdate site properties & design (title, logo, design, scheme, custom CSS…). Set publish=1 to go live.
propertiespublishswitch_designvariables
object.site.set_preview_modeToggle an admin-only preview state.
preview_mode

Object type IDs

The obj_id parameter on object.add selects the element type:

Elementobj_id
Page1
Text & Image11
HTML Snippet25
Section42
Form69
Gallery72
Gallery Image71
Section Group93
Container94

04 Site API

Domains, routing, assets, and whole-site content

CommandDescriptionParameters
Domains & pages
site.set_domainsSet a site's domains.
domains
site.set_home_pageSet the home page.
node_id
site.set_404_pageSet a custom 404 page.
node_id
Redirects
site.redirect.addCreate a URL redirect.
propertiesnamepathlink
site.redirect.updateModify an existing redirect.
properties
site.redirect.getRead one redirect.
redirect_id
site.redirect.removeDelete one redirect.
redirect_id
Folders
site.folder.addCreate a page folder.
propertiesnamepath
site.folder.updateModify a page folder.
properties
site.folder.getRead one folder.
folder_id
site.folder.removeDelete one folder.
folder_id
Static files & stock resources
site.static_file.addAdd a file as a static asset; returns its ID.
url
site.static_file.removeRemove a static file.
id
site.stock_images.get_imagesList images in a stock collection.
collection_id
Whole-site content
site.importRestore site content, with optional substitutions.
contentreplacements

05 Applications API

List and manage the apps installed on a site

Use this to enable and configure OPB applications (forms, maps, and more) on a customer site.

CommandDescriptionParameters
app.catalog.get_allList the applications available to install.
user_id
app.user.get_allList a site's installed applications.
user_id
app.user.installInstall a catalog app onto a site.
user_idapp_idedition_id
app.user.updateUpdate an installed app to a given edition.
user_idapp_idedition_id
app.user.deinstallRemove an installed app.
user_idapp_id
app.user.get_settingsRead an app's stored settings.
user_idapp_id
app.user.set_settingsStore an app's settings (JSON).
user_idapp_idsettings

06 Getting access

How to obtain and validate credentials

  1. Receive your API key from HostPapaHostPapa issues a key scoped to the set of customer accounts you'll manage.
  2. Provide your source IPsAPI calls are accepted only from allowlisted addresses — send the egress IPs your integration will call from.
  3. Target a site with loginInclude the customer account's login on each call to act on that site.
  4. Validate on a pilot accountConfirm the full loop — read → edit → preview → publish — on a test site before going to production.

Additional capabilities (e.g. account and domain management) can be provided to authorized integrations on demand, if available.