Skip to content

Publish app (start accepting requests)

POST
/v1/apps/{app_id}/publish
curl --request POST \
--url https://app.everruns.com/api/v1/apps/example/publish
app_id
required
string

App ID

App published

Media type application/json

Wrapper that adds API and UI links to a serialized resource.

Uses self_url (not url) for the API link to avoid collision with resources that already have a url field (e.g. McpServer). The allowed_actions array carries state-aware hypermedia links — empty (and omitted from the wire shape) until the underlying resource opts into the convention by overriding ResourceUrlable::allowed_actions.

object
agent_id

Optional ID of the agent to use (format: agent_{32-hex}).

string | null
agent_identity_id

Optional virtual identity that represents the app in unattended/channel execution.

string | null
agent_version_id

Pinned agent version. Required when policy is pinned.

string | null
agent_version_policy

Version resolution policy for the optional agent.

string
Allowed values: default latest pinned
archived_at

Timestamp when the app was archived.

string | null format: date-time
channels

Distribution channels attached to this app.

Array<object>

A single distribution channel attached to an App. Each channel has its own type, config, and lifecycle status.

object
channel_config

Channel-specific configuration (validated per channel type).

channel_type
required

Channel type (e.g. slack).

string
Allowed values: slack ag_ui schedule webhook a2a fcp api_endpoint
created_at
required

Timestamp when this channel was created.

string format: date-time
enabled

Whether this channel is enabled.

boolean
id
required

External identifier (appchan_<32-hex>). Shown as “id” in API.

string
updated_at
required

Timestamp when this channel was last updated.

string format: date-time
created_at
required

Timestamp when the app was created.

string format: date-time
deleted_at

Timestamp when the app was deleted.

string | null format: date-time
description

Human-readable description of what the app does.

string | null
effective_owner
One of:
null
harness_id
required

ID of the harness to use (format: harness_{32-hex}).

string
id
required

External identifier (app_<32-hex>). Shown as “id” in API.

string
name
required

Display name of the app.

string
owner
One of:
null
owner_principal_id
required

Owning principal for this app.

string
published_at

Timestamp when the app was last published.

string | null format: date-time
resolved_owner_user_id

Denormalized effective human owner of the owning principal lineage.

string | null format: uuid
status
required

Current lifecycle status.

string
Allowed values: draft published archived deleted
updated_at
required

Timestamp when the app was last updated.

string format: date-time
allowed_actions

State-aware hypermedia actions the caller can take on this resource next (e.g. cancel, events, update). Omitted from the wire shape when empty so resources that haven’t opted into the convention don’t grow their payloads.

Array<object>

Agent-actionable link describing a follow-up the caller can take. Used in two contexts:

  • Error recoveryErrorResponse.allowed_actions carries rels like retry, retry-later, unarchive, get-existing so the agent knows the right next call after a 4xx/429.
  • Entity hypermediaWithUrls<T>.allowed_actions carries state-aware rels like cancel, events, self, update on the entity itself so the agent can follow links instead of reconstructing routes from prose.

The shape is intentionally identical across both contexts; the closed rel vocabulary documented in specs/api-conventions.md distinguishes them.

object
hint

Short, agent-readable hint (e.g. “Shorten ‘name’ to <= 200 chars.”, “Cancel the active turn for this session.”).

string | null
href

Absolute (preferred) or relative URL the caller may invoke directly. Always present on entity hypermedia actions (WithUrls<T>.allowed_actions); optional on error-recovery actions (ErrorResponse.allowed_actions) where the matching operation_id is enough and the URI is implicit from the failed call.

string | null
method

HTTP method to use against href. Required for entity hypermedia actions; usually omitted on error-recovery actions where the same operation is retried with its original method.

string | null
operation_id

OpenAPI operationId the caller should invoke. Lets an MCP client resolve the call without parsing href.

string | null
rel
required

Link relation describing the action. Closed vocabulary documented in specs/api-conventions.md — examples: self, cancel, pause, resume, events, retry, retry-later, unarchive, get-existing, delete, update.

string
schema_ref

OpenAPI $ref to the request-body schema, when the action takes one (e.g. #/components/schemas/UpdateSessionRequest). Lets a tool-calling agent fetch the input shape without scanning the whole spec.

string | null
self_url
required

Full API endpoint URL for this resource.

string
ui_link
required

Alias for view_url, used by command and MCP outputs.

string
view_url
required

Full UI URL for viewing this resource.

string
Example
{
"agent_id": "agent_01933b5a00007000800000000000001",
"agent_identity_id": "identity_01933b5a00007000800000000000001",
"agent_version_id": "agentver_01933b5a00007000800000000000001",
"agent_version_policy": "default",
"channels": [
{
"channel_type": "slack",
"id": "appchan_01933b5a000070008000000000000001"
}
],
"effective_owner": {
"id": "principal_01933b5a000070008000000000000001",
"kind": "user"
},
"harness_id": "harness_01933b5a00007000800000000000001",
"id": "app_01933b5a000070008000000000000001",
"owner": {
"id": "principal_01933b5a000070008000000000000001",
"kind": "user"
},
"owner_principal_id": "principal_01933b5a000070008000000000000001",
"status": "draft",
"allowed_actions": [
{
"method": "POST"
}
]
}

Invalid app ID

App not found

Internal server error