Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.manticscore.com/llms.txt

Use this file to discover all available pages before exploring further.

The Integrations API lets you connect third-party tools to ManticScore, configure their defaults so one-tap actions work without extra prompting, and execute any of 1000+ Composio tools directly. Connections are managed through OAuth flows brokered by Composio. Once a toolkit is connected, ManticScore auto-discovers your resources (repos, teams, channels) and saves smart defaults for use in ship, ship-research, and automation flows.

List all integrations

Returns the full inventory of available integrations and their connection status for the authenticated user.
curl "https://api.manticscore.com/integrations/composio/tools" \
  -H "Authorization: Bearer <token>"
200 response
{
  "tools": [
    {
      "id": "github",
      "name": "GitHub",
      "category": "code",
      "logo_url": "https://cdn.manticscore.com/logos/github.svg",
      "description": "Create branches, open PRs, and trigger Forge coding runs.",
      "status": "connected",
      "agent_capabilities": ["create_pr", "list_repos"],
      "config_fields": ["repo", "default_branch", "branch_prefix"],
      "account_id": "acc_abc123",
      "can_refresh": false
    },
    {
      "id": "linear",
      "name": "Linear",
      "category": "tasks",
      "logo_url": "https://cdn.manticscore.com/logos/linear.svg",
      "description": "Create and manage issues from build nodes.",
      "status": "disconnected",
      "agent_capabilities": [],
      "config_fields": [],
      "account_id": null,
      "can_refresh": false
    }
  ],
  "total_connected": 1,
  "total_available": 18
}
tools
object[]

Connect a toolkit

Starts the OAuth flow for a toolkit. Open the returned URL in a browser to complete authentication.
curl
curl -X POST https://api.manticscore.com/profile/integrations/linear/connect \
  -H "Authorization: Bearer <token>"
200 response
{
  "url": "https://composio.dev/oauth/linear?session=...",
  "toolkit": "linear"
}
After the user authenticates in the browser, Composio redirects to the ManticScore callback which fires background resource discovery for the newly connected toolkit.

Disconnect a toolkit

curl
curl -X POST https://api.manticscore.com/profile/integrations/linear/disconnect \
  -H "Authorization: Bearer <token>"
200 response
{"success": true}

Refresh an expired connection

Refreshes an expired OAuth token without requiring the user to re-authenticate. Use account_id (the Composio connected-account ID, not the toolkit slug) from the tools list.
curl
curl -X POST https://api.manticscore.com/profile/integrations/acc_abc123/refresh \
  -H "Authorization: Bearer <token>"
200 response
{"refreshed": true}
If the token cannot be refreshed silently, refreshed is false and an error string explains why. In that case, prompt the user to reconnect.

Check connection status

curl "https://api.manticscore.com/integrations/composio/linear/status" \
  -H "Authorization: Bearer <token>"
Returns the Composio connection status payload for the specified toolkit.

List all connections

curl "https://api.manticscore.com/integrations/composio/connections" \
  -H "Authorization: Bearer <token>"
200 response
{
  "connections": []
}

Configure toolkit defaults

Sets the defaults the agent and ship endpoints use when a tool call omits optional fields. This is a sparse merge — only the fields you send are updated; all others remain unchanged. Pass null as a value to remove a field.
curl
curl -X PATCH https://api.manticscore.com/profile/integrations/linear/defaults \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"team_id": "TEAM123", "default_priority": 2}'
200 response
{
  "toolkit": "linear",
  "defaults": {
    "team_id": "TEAM123",
    "default_priority": 2
  }
}
Returns 404 if the toolkit is not connected. Connect it first, then configure defaults.

Available fields by toolkit

FieldTypeDescription
repostringDefault repository in owner/repo format.
default_branchstringBase branch for PRs (e.g. main).
branch_prefixstringPrefix for auto-generated branch names.
pr_reviewersstring[]GitHub usernames to assign as reviewers.
FieldTypeDescription
team_idstringLinear team ID.
team_namestringDisplay name of the team.
project_idstringLinear project ID.
default_prioritynumberPriority 0 (no priority) to 4 (urgent).
default_labelsstring[]Label names to apply to created issues.
assignee_idstringLinear user ID to assign issues to.
FieldTypeDescription
project_keystringJira project key (e.g. ENG).
project_namestringDisplay name of the Jira project.
default_issue_typestringIssue type (e.g. Task, Story).
default_prioritystringJira priority name (e.g. Medium).
component_idstringJira component to assign to new issues.
FieldTypeDescription
channel_idstringDefault channel ID for general notifications.
channel_namestringDisplay name of the default channel.
research_channelstringChannel ID for research completion notifications.
builds_channelstringChannel ID for build graph notifications.
signals_channelstringChannel ID for signal alerts.
formatstringMessage format: summary or detailed.
notify_on_researchbooleanSend a message when research completes.
notify_on_buildbooleanSend a message when a build graph is ready.
notify_on_signalbooleanSend a message when a new signal is detected.
FieldTypeDescription
parent_idstringNotion page or database ID to create pages under.
parent_titlestringDisplay title of the parent.
research_db_idstringDatabase ID for research exports.
build_plan_db_idstringDatabase ID for build plan exports.
FieldTypeDescription
default_ccstringEmail address to CC on outbound messages.
signaturestringSignature appended to outbound emails.

Trigger resource discovery

Manually discovers resources for a connected toolkit (repositories, teams, channels, etc.) and saves smart defaults. This runs automatically when you first connect a toolkit; use this endpoint to refresh after account changes.
curl -X POST https://api.manticscore.com/integrations/linear/discover \
  -H "Authorization: Bearer <token>"
200 response
{
  "defaults": {
    "team_id": "TEAM123",
    "team_name": "Engineering"
  },
  "resources": {
    "teams": [
      {"id": "TEAM123", "name": "Engineering"}
    ]
  }
}
Returns 400 if the toolkit is not connected.

Execute any Composio tool

The universal executor lets you invoke any of 1000+ Composio tools directly, without a dedicated endpoint. Use the Composio action slug (e.g. LINEAR_CREATE_LINEAR_ISSUE) as the action.
action
string
required
Composio action slug. Max 200 characters. Examples: LINEAR_CREATE_LINEAR_ISSUE, SLACK_SEND_MESSAGE, GITHUB_CREATE_ISSUE.
arguments
object
required
Arguments for the action. The required fields depend on the specific Composio action.
connected_account_id
string
Composio connected-account ID to use. Pass null to use the user’s default connected account for the toolkit.
curl -X POST https://api.manticscore.com/integrations/execute \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "action": "LINEAR_CREATE_LINEAR_ISSUE",
    "arguments": {
      "title": "Implement auth module",
      "team_id": "TEAM123"
    },
    "connected_account_id": null
  }'
200 response
{
  "status": "completed",
  "action": "LINEAR_CREATE_LINEAR_ISSUE",
  "result": {
    "id": "LIN-42",
    "url": "https://linear.app/acme/issue/LIN-42"
  }
}
Returns 502 if Composio or the upstream service returns an error. The detail field includes the upstream error message.

High-level action endpoints

These endpoints wrap the most common Composio actions with typed request bodies. They are equivalent to calling POST /integrations/execute with the corresponding action slug.
Create an issue
curl
curl -X POST https://api.manticscore.com/integrations/linear/issues \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"title": "Auth module", "team_id": "TEAM123", "description": "Implement JWT auth.", "priority": 2}'
List teams
curl
curl "https://api.manticscore.com/integrations/linear/teams" \
  -H "Authorization: Bearer <token>"
Create an issue
curl
curl -X POST https://api.manticscore.com/integrations/jira/issues \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"project_key": "ENG", "summary": "Auth module", "issue_type": "Task", "description": "Implement JWT auth."}'
List projects
curl
curl "https://api.manticscore.com/integrations/jira/projects" \
  -H "Authorization: Bearer <token>"
Send a message
curl
curl -X POST https://api.manticscore.com/integrations/slack/messages \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"channel": "C01234567", "text": "Research complete for AI expense tracker."}'
List channels
curl
curl "https://api.manticscore.com/integrations/slack/channels" \
  -H "Authorization: Bearer <token>"
Create a page
curl
curl -X POST https://api.manticscore.com/integrations/notion/pages \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"parent_id": "abc123", "title": "AI Expense Tracker Research", "content": "## Market Overview\n..."}'
Search pages
curl
curl "https://api.manticscore.com/integrations/notion/search?q=expense+tracker" \
  -H "Authorization: Bearer <token>"

Integration preferences

Returns all integration preferences including connection status, defaults, config fields, agent capabilities, and discovered resources in a single call.
curl "https://api.manticscore.com/integrations/preferences" \
  -H "Authorization: Bearer <token>"
200 response
{
  "integrations": [
    {
      "toolkit": "linear",
      "name": "Linear",
      "connected": true,
      "defaults": {"team_id": "TEAM123"},
      "config_fields": ["team_id", "project_id", "default_priority"],
      "agent_capabilities": ["create_issue", "list_teams"],
      "discovered_at": "2026-04-10T10:00:00Z",
      "resources": {
        "teams": [{"id": "TEAM123", "name": "Engineering"}]
      }
    }
  ]
}