product

Integrations

Connect with Slack, Discord, Email, and more

5 min read
Updated 2026-02-24

Integrations

OpsCurb integrates with your favorite tools to deliver cost optimization insights where you work.


Available Integrations

šŸ’¬ Slack

Status: āœ… Available (Starter+)

Features:

  • Real-time scan completion notifications
  • High-severity finding alerts
  • Weekly summary reports
  • Cost anomaly alerts
  • Rich formatting with charts and graphs

Setup:

  1. Go to Settings → Integrations → Slack
  2. Click "Connect Slack"
  3. Authorize OpsCurb in your Slack workspace
  4. Select channel for notifications
  5. Configure preferences:
    • Scan completion notifications
    • High-severity alerts only
    • Weekly reports
    • Anomaly detection alerts

Example Notification:

šŸ” OpsCurb Scan Complete

Account: Production AWS
Findings: 42 issues found
Potential Savings: $1,250/month

šŸ’° Top Findings:
• Unattached EBS volume (vol-abc123): $80/month
• Idle NAT Gateway (nat-xyz789): $32/month
• Aged RDS snapshot (snap-def456): $25/month

View full report: https://app.opscurb.com/scans/123

Troubleshooting:

  • Not receiving notifications? Check TROUBLESHOOTING.md
  • Webhook expired? Reconnect integration

šŸŽ® Discord

Status: āœ… Available (Starter+)

Features:

  • Scan completion notifications
  • Finding alerts
  • Weekly reports
  • Customizable webhooks

Setup:

  1. Create Discord webhook:

    • Server Settings → Integrations → Webhooks
    • Click "New Webhook"
    • Select channel
    • Copy webhook URL
  2. Add to OpsCurb:

    • Settings → Integrations → Discord
    • Paste webhook URL
    • Configure notification preferences
    • Test integration

Example Notification:

🚨 High-Severity Finding Detected

Resource: Unattached EBS Volume
ID: vol-0123456789abcdef0
Region: us-east-1
Cost: $80/month

Recommendation: Delete unattached volume to save $960/year

Fix it: https://app.opscurb.com/findings/abc123

šŸ“§ Email

Status: āœ… Available (All plans)

Features:

  • Scan completion emails
  • Weekly summary reports (PDF/HTML)
  • High-severity alerts
  • Cost anomaly notifications

Setup:

  1. Verify email address:

    • Settings → Profile
    • Verify email address
  2. Configure notifications:

    • Settings → Notifications → Email
    • Enable email notifications
    • Select triggers:
      • Scan completed
      • High-severity findings
      • Weekly reports
      • Anomaly detected

Email Types:

Scan Completion:

  • Summary of findings
  • Top 5 cost-saving opportunities
  • Link to full report

Weekly Report:

  • PDF attachment with detailed findings
  • Savings summary
  • Trend charts
  • Recommendations

Anomaly Alert:

  • Cost spike detected
  • Comparison to baseline
  • Potential causes
  • Investigation steps

šŸ”Œ REST API

Status: āœ… Available (Starter+)

Features:

  • Programmatic access to all data
  • Scans, findings, recommendations
  • AI-powered instructions
  • Webhooks (coming soon)

Documentation: API_DOCUMENTATION.md

Quick Start:

# Get API token
# Settings → API Keys → Generate New

# List scans
curl -H "Authorization: Bearer YOUR_TOKEN" \
  https://api.opscurb.com/api/scans

# Get findings
curl -H "Authorization: Bearer YOUR_TOKEN" \
  https://api.opscurb.com/api/findings?severity=high

# Get AI recommendations
curl -H "Authorization: Bearer YOUR_TOKEN" \
  https://api.opscurb.com/api/recommendations/FINDING_ID/instructions

Rate Limits:

  • Starter: 5,000 requests/hour
  • Pro: 10,000 requests/hour
  • Enterprise: Unlimited

Coming Soon

šŸ”” Webhooks

Status: šŸ”„ Planned (Q2 2026)

Features:

  • Real-time event notifications
  • Custom endpoints
  • Event filtering
  • Retry logic

Events:

  • scan.completed
  • scan.failed
  • finding.created
  • finding.high_severity
  • anomaly.detected

Example Payload:

{
  "event": "scan.completed",
  "timestamp": "2026-02-24T10:30:00Z",
  "data": {
    "scan_id": "550e8400-e29b-41d4-a716-446655440000",
    "status": "completed",
    "findings_count": 42,
    "total_savings": 1250.50
  }
}

šŸ™ GitHub Actions

Status: šŸ”„ Planned (Q2 2026)

Features:

  • PR cost impact analysis
  • Terraform/CloudFormation cost estimation
  • Automated comments on PRs
  • Cost threshold enforcement

Example:

name: Cost Analysis
on: pull_request

jobs:
  cost-check:
    runs-on: ubuntu-latest
    steps:
      - uses: opscurb/cost-analysis-action@v1
        with:
          api-token: ${{ secrets.CLOUDCOSTGUARD_TOKEN }}
          threshold: 100  # Fail if cost increase > $100/month

šŸ“Š Datadog

Status: šŸ”„ Planned (Q3 2026)

Features:

  • Cost metrics in Datadog
  • Custom dashboards
  • Alerting integration
  • Anomaly correlation

šŸ“ˆ Grafana

Status: šŸ”„ Planned (Q3 2026)

Features:

  • Cost visualization
  • Custom dashboards
  • Historical trends
  • Multi-account views

šŸŽ« Jira

Status: šŸ”„ Planned (Q3 2026)

Features:

  • Auto-create tickets for findings
  • Track remediation progress
  • Link findings to tickets
  • Automated updates

šŸ” SSO/SAML

Status: āœ… Available (Enterprise)

Providers:

  • Okta
  • Azure AD
  • Google Workspace
  • OneLogin
  • Auth0
  • Custom SAML 2.0

Setup: Contact sales@opscurb.com for SSO setup


Integration Requests

Want an integration we don't have?

Request: integrations@opscurb.com

Include:

  • Tool name
  • Use case
  • Priority (nice-to-have vs. critical)
  • Number of users who would benefit

Popular Requests:

  1. Microsoft Teams (in development)
  2. PagerDuty (planned Q3 2026)
  3. ServiceNow (planned Q4 2026)

Custom Integrations

Enterprise Custom Integrations

Available: Enterprise plans

Options:

  • Custom API endpoints
  • Dedicated webhooks
  • Custom data formats
  • Direct database access (read-only)
  • Custom reporting

Contact: sales@opscurb.com


Build Your Own

Use our API: API_DOCUMENTATION.md

Examples:

Python:

import requests

API_TOKEN = "your_token"
BASE_URL = "https://api.opscurb.com/api"

headers = {"Authorization": f"Bearer {API_TOKEN}"}

# Get latest scan
response = requests.get(f"{BASE_URL}/scans?limit=1", headers=headers)
scan = response.json()["scans"][0]

# Get findings
response = requests.get(
    f"{BASE_URL}/findings?scan_id={scan['id']}&severity=high",
    headers=headers
)
findings = response.json()["findings"]

# Send to your system
for finding in findings:
    send_to_my_system(finding)

Node.js:

const axios = require('axios');

const API_TOKEN = 'your_token';
const BASE_URL = 'https://api.opscurb.com/api';

const headers = { Authorization: `Bearer ${API_TOKEN}` };

async function getFindings() {
  const { data } = await axios.get(`${BASE_URL}/findings`, { headers });
  return data.findings;
}

getFindings().then(findings => {
  findings.forEach(finding => {
    // Process finding
    console.log(finding);
  });
});

Integration Support

Questions: integrations@opscurb.com

Documentation:


Last Updated: 2026-02-24
Version: 1.0