Update a portal instance
Update a portal's name, slug, sections, sign-in, links or theme. Only the fields you send change; the custom domain is set in the dashboard.
curl -X PATCH "https://productlane.com/api/v2/portal/instances/{id}" \
-H "Authorization: Bearer $PRODUCTLANE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"slug": "string",
"name": "string",
"show_in_selector": true,
"logo_url": "https://example.com",
"show_docs": true,
"show_changelog": true,
"show_roadmap": true,
"show_support": true,
"overrides_auth": true,
"is_google_auth_required": true,
"google_domain": "string",
"overrides_custom_links": true,
"use_portal_logo_url": true,
"portal_logo_url": "https://example.com",
"changelog_link_1_description": "string",
"changelog_link_1_url": "https://example.com",
"changelog_link_2_description": "string",
"changelog_link_2_url": "https://example.com",
"overrides_theme": true,
"dark_mode": true,
"accent_color": "string",
"accent_text_color": "string",
"button_text_color": "string",
"dark_mode_accent_color": "string",
"dark_mode_accent_text_color": "string",
"dark_mode_button_text_color": "string",
"portal_embed_image_url": "https://example.com",
"is_default": true
}'Authorization
AuthorizationstringheaderrequiredBearer authentication header of the form
Bearer <token>, where<token>is your auth token.
Parameters
idstringpathrequiredPortal instance id from GET /portal/instances.
Body
slugstringURL segment the portal lives under: lowercase letters, numbers and hyphens, up to 40 characters.
changelog,roadmap,docs,requests,apiandmainare reserved.namestringshow_in_selectorbooleanWhen false, the portal stays reachable by URL but is hidden from the portal switcher.
logo_urlstring<uri> | nullshow_docsbooleanshow_changelogbooleanshow_roadmapbooleanshow_supportbooleanoverrides_authbooleanTurn on to use this portal's auth fields instead of the workspace sign-in settings. Requires the admin scope.
is_google_auth_requiredbooleanApplies only with
overrides_auth: true. Requires the admin scope.google_domainstring | nullEmail domain allowed to sign in with Google, e.g.
acme.com. Applies only withoverrides_auth: true. Requires the admin scope.overrides_custom_linksbooleanTurn on to use this portal's header and footer links instead of the workspace ones.
use_portal_logo_urlbooleanWhen true, the header logo links to
portal_logo_url. Applies only withoverrides_custom_links: true.portal_logo_urlstring<uri> | nullchangelog_link_1_descriptionstring | nullchangelog_link_1_urlstring<uri> | nullchangelog_link_2_descriptionstring | nullchangelog_link_2_urlstring<uri> | nulloverrides_themebooleanTurn on to use this portal's dark_mode and colors instead of the workspace theme.
dark_modeboolean | nulltrueforces dark mode,falseforces light mode,nullfollows the visitor's system setting.accent_colorstring | nullaccent_text_colorstring | nullbutton_text_colorstring | nulldark_mode_accent_colorstring | nulldark_mode_accent_text_colorstring | nulldark_mode_button_text_colorstring | nullportal_embed_image_urlstring<uri> | nullSocial preview image.
nullfalls back to the workspace image.is_defaultbooleanThe default portal serves the unprefixed portal URL. Setting it takes the flag from any other portal; clearing it returns the URL to the Main portal.
Response
Successful response
idstringrequiredslugstringrequirednamestringrequiredis_defaultbooleanrequiredThe default portal serves the unprefixed portal URL.
show_in_selectorbooleanrequiredlogo_urlstring | nullrequiredcustom_domainstring | nullrequiredSet up in the dashboard, since it needs DNS records. Read-only here.
show_docsbooleanrequiredshow_changelogbooleanrequiredshow_roadmapbooleanrequiredshow_supportbooleanrequiredoverrides_authbooleanrequiredWhen false, the portal uses the workspace sign-in settings and ignores the auth fields.
is_google_auth_requiredbooleanrequiredgoogle_domainstring | nullrequiredoverrides_custom_linksbooleanrequiredWhen false, the portal uses the workspace header and footer links and ignores the link fields.
use_portal_logo_urlbooleanrequiredportal_logo_urlstring | nullrequiredchangelog_link_1_descriptionstring | nullrequiredchangelog_link_1_urlstring | nullrequiredchangelog_link_2_descriptionstring | nullrequiredchangelog_link_2_urlstring | nullrequiredoverrides_themebooleanrequiredWhen false, the portal uses the workspace theme and ignores dark_mode and the colors.
dark_modeboolean | nullrequiredtrueforces dark mode,falseforces light mode,nullfollows the visitor's system setting.accent_colorstring | nullrequiredaccent_text_colorstring | nullrequiredbutton_text_colorstring | nullrequireddark_mode_accent_colorstring | nullrequireddark_mode_accent_text_colorstring | nullrequireddark_mode_button_text_colorstring | nullrequiredportal_embed_image_urlstring | nullrequiredSocial preview image. Falls back to the workspace image when null.
created_atstringrequiredupdated_atstringrequired
{
"id": "string",
"slug": "string",
"name": "string",
"is_default": true,
"show_in_selector": true,
"logo_url": "string",
"custom_domain": "string",
"show_docs": true,
"show_changelog": true,
"show_roadmap": true,
"show_support": true,
"overrides_auth": true,
"is_google_auth_required": true,
"google_domain": "string",
"overrides_custom_links": true,
"use_portal_logo_url": true,
"portal_logo_url": "string",
"changelog_link_1_description": "string",
"changelog_link_1_url": "string",
"changelog_link_2_description": "string",
"changelog_link_2_url": "string",
"overrides_theme": true,
"dark_mode": true,
"accent_color": "string",
"accent_text_color": "string",
"button_text_color": "string",
"dark_mode_accent_color": "string",
"dark_mode_accent_text_color": "string",
"dark_mode_button_text_color": "string",
"portal_embed_image_url": "string",
"created_at": "string",
"updated_at": "string"
}