Integrations
PreviewIntegration status, Slack notifications and the Jira configuration. Reference for API version next.
On this page
Get integration status
/api/v1/integrations/status Connection state and health for the organization's integrations. Requires integrations:read.
Authentication
- API key in X-API-Key
- API key or session token in Authorization: Bearer
Responses
200Status.Body (application/json)
429A per-user limit was exceeded (the Platform API, embeddings or rerank). This response does not use the error envelope. Wait forRetry-Afterseconds.Headers
X-Request-IDstringThe request's correlation id (yours, or one BreachLine generated). Quote it to support.
Retry-AfterintegerSeconds to wait before retrying.
Body (application/json)
detailstring Requiredretry_afterinteger Required- Always
60
Example
curl "https://api.breachline.io/api/v1/integrations/status" \
-H "Authorization: Bearer $BREACHLINE_API_KEY"
{}
Get the Slack configuration summary
/api/v1/integrations/config Which Slack method is configured. Secrets are write-only and never returned (has_webhook, has_bot_token are booleans). Requires integrations:read.
Authentication
- API key in X-API-Key
- API key or session token in Authorization: Bearer
Responses
200Configuration summary.Body (application/json)
methodstring or nullhas_webhookbooleanhas_bot_tokenbooleandefault_channelstring or nullteam_idstring or null
429A per-user limit was exceeded (the Platform API, embeddings or rerank). This response does not use the error envelope. Wait forRetry-Afterseconds.Headers
X-Request-IDstringThe request's correlation id (yours, or one BreachLine generated). Quote it to support.
Retry-AfterintegerSeconds to wait before retrying.
Body (application/json)
detailstring Requiredretry_afterinteger Required- Always
60
Example
curl "https://api.breachline.io/api/v1/integrations/config" \
-H "Authorization: Bearer $BREACHLINE_API_KEY"
{
"method": "string",
"has_webhook": true,
"has_bot_token": true,
"default_channel": "string",
"team_id": "string"
}
Send a Slack message
/api/v1/integrations/slack/notify Posts to the organization's connected Slack. Requires integrations:notify.
Authentication
- API key in X-API-Key
- API key or session token in Authorization: Bearer
Request body
messagestring Required- Maximum length
4000
channelstring or nullAccepted but has no effect: messages go to the channel the Slack incoming webhook was created for. The response echoes the value you sent.
contextobject or nullOptional key-value fields shown with the message.
Responses
200Sent.Body (application/json)
successbooleanchannelstring or nulltsstring or null
409Slack is not connected for this organization. Connect it in the console under Settings, Integrations.Error envelope429A per-user limit was exceeded (the Platform API, embeddings or rerank). This response does not use the error envelope. Wait forRetry-Afterseconds.Headers
X-Request-IDstringThe request's correlation id (yours, or one BreachLine generated). Quote it to support.
Retry-AfterintegerSeconds to wait before retrying.
Body (application/json)
detailstring Requiredretry_afterinteger Required- Always
60
Example
curl -X POST "https://api.breachline.io/api/v1/integrations/slack/notify" \
-H "Authorization: Bearer $BREACHLINE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"message": "string"
}'
{
"success": true,
"channel": "string",
"ts": "string"
}
Send a findings alert to Slack
/api/v1/integrations/slack/findings A formatted alert listing findings for one target. Requires integrations:notify.
Authentication
- API key in X-API-Key
- API key or session token in Authorization: Bearer
Request body
scan_targetstring Requiredfindingsarray of objects8 fields in
findingstitlestring Requiredseveritystring Required- Examples
criticalhighmediumlowinfo
categorystring or nulltargetstring or nulldescriptionstring or nullevidence_summarystring or nullremediationstring or nulljira_ticketstring or null
channelstring or nullAccepted but has no effect; the webhook's own channel is used.
thread_tsstring or null
Responses
200Sent.Body (application/json)
successbooleanchannelstring or nulltsstring or null
409Slack is not connected for this organization. Connect it in the console under Settings, Integrations.Error envelope429A per-user limit was exceeded (the Platform API, embeddings or rerank). This response does not use the error envelope. Wait forRetry-Afterseconds.Headers
X-Request-IDstringThe request's correlation id (yours, or one BreachLine generated). Quote it to support.
Retry-AfterintegerSeconds to wait before retrying.
Body (application/json)
detailstring Requiredretry_afterinteger Required- Always
60
Example
curl -X POST "https://api.breachline.io/api/v1/integrations/slack/findings" \
-H "Authorization: Bearer $BREACHLINE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"scan_target": "string"
}'
{
"success": true,
"channel": "string",
"ts": "string"
}
Get the Jira configuration
/api/v1/integrations/jira The legacy Jira configuration for this organization. The API token is never returned (has_token is a boolean). Nothing files Jira issues automatically; AI engineers use a Jira connection from the integration catalog when you ask them to. Requires integrations:read.
Authentication
- API key in X-API-Key
- API key or session token in Authorization: Bearer
Responses
200Configuration.Body (application/json)
configuredbooleanenabledbooleanbase_urlstring or nullemailstring or nullproject_keystring or nullauto_ticket_severitystring or nullStored with this legacy configuration but not used: nothing files Jira issues automatically.
has_tokenboolean
429A per-user limit was exceeded (the Platform API, embeddings or rerank). This response does not use the error envelope. Wait forRetry-Afterseconds.Headers
X-Request-IDstringThe request's correlation id (yours, or one BreachLine generated). Quote it to support.
Retry-AfterintegerSeconds to wait before retrying.
Body (application/json)
detailstring Requiredretry_afterinteger Required- Always
60
Example
curl "https://api.breachline.io/api/v1/integrations/jira" \
-H "Authorization: Bearer $BREACHLINE_API_KEY"
{
"configured": true,
"enabled": true,
"base_url": "string",
"email": "string",
"project_key": "string",
"auto_ticket_severity": "string",
"has_token": true
}