Write
publish
Makes the creator’s Outli.ne profile publicly live by setting onboardingComplete:true, after which it is reachable at https://outli.ne/{handle}.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| outlineId | string | — | ID of the outline to publish. Omit to publish the authenticated user’s own outline (most common case). |
Response
| Field | Type | What it means |
|---|---|---|
| outlineId | string | The ID of the outline that was published. |
| published | boolean | Always true on success — confirms the onboardingComplete flag was set. |
| url | string | The public URL where the profile is now live, e.g. https://outli.ne/janesmith. |
Example
Request
json
{
"outlineId": "42"
}Response
json
{
"outlineId": "42",
"published": true,
"url": "https://outli.ne/janesmith"
}When to use
Call publish as the final step of the create→curate→optimize loop, after all stacks, cards, social links, and SEO data are in place. Do not call it before the profile has a handle and at least one card, as the live URL will resolve to an empty or broken state.
Gotchas
Watch out
- The profile MUST have a slug (handle) set before calling publish — the tool returns VALIDATION_ERROR if no slug exists. Call update_profile or set_seo to set the handle first.
- There is no separate ‘published’ flag in the data model — live means slug + onboardingComplete:true. Calling publish again on an already-live profile is safe (idempotent update).
- outlineId defaults to the authenticated user’s own outline — omitting it is the correct pattern for the standard create→curate→publish loop.
- Errors are returned as isError:true with an ‘error’ code and ‘message’ field — check isError before reading the url field.