Write

set_seo

Sets the SEO title, meta description, and Open Graph image for the authenticated creator's outline profile.


Requires Pro

This tool requires an active Pro subscription (seoTools entitlement). Calling it on a free account returns a FORBIDDEN_FEATURE error. Upgrade at outli.ne/dashboard.


Parameters

NameTypeRequiredDescription
outlineIdstringOutline ID to update. Omit to target the authenticated user's own outline.
titlestringSEO title tag shown in browser tabs and Google results. Omit to leave unchanged.
descriptionstringSEO meta description shown in Google snippets and social link previews. Omit to leave unchanged.
imageIdstring | nullNumeric media ID (as a string) for the Open Graph image. Pass null to clear the current OG image. Omit to leave unchanged. Must be a valid integer string — use a media ID from the user's library.

Response

FieldTypeWhat it means
outlineIdstringNumeric ID of the updated outline, returned as a string.
seo.titlestring | undefinedThe SEO title now stored on the outline after the merge.
seo.descriptionstring | undefinedThe SEO meta description now stored on the outline after the merge.
seo.imageIdnumber | nullNumeric media ID of the OG image now stored. Null if no image is set.

Example

Request

json
{ "outlineId": "42", "title": "Sara Järvinen — Tattoo Artist, Helsinki", "description": "Custom fine-line and botanical tattoos. Book a consultation or browse the portfolio.", "imageId": "187" }

Response

json
{ "outlineId": "42", "seo": { "title": "Sara Järvinen — Tattoo Artist, Helsinki", "description": "Custom fine-line and botanical tattoos. Book a consultation or browse the portfolio.", "imageId": 187 } }

When to use

Call this after the profile structure is built and media is in the library — it is the final discoverability step before publish. Also call it any time the creator's headline, positioning, or hero image changes and the Google/social link preview needs to reflect the update.


Gotchas

Watch out

  • Requires a Pro subscription (seoTools entitlement) — returns FORBIDDEN_FEATURE for free accounts.
  • imageId must be passed as a string but is stored and returned as a number; non-numeric strings return VALIDATION_ERROR.
  • All content params are optional and independently patched — omitting a param preserves the existing value, so you never need to re-send fields you aren't changing.
  • Pass imageId: null (not undefined, not an empty string) to explicitly clear the OG image — omitting imageId entirely leaves the existing image untouched.