Skip to main content

Integrations & Blocklists

Integrations are the bridge between CrowdSec's threat intelligence and your security infrastructure. An integration generates a blocklist of attacker IPs that your firewall can consume. You subscribe integrations to specific CVEs, fingerprint rules, or entire vendors, and the blocklist automatically updates as new attacker IPs are observed.

Instead of subscribing to CVEs and fingerprint rules one by one, you can subscribe an integration to a vendor. This automatically covers all current and future CVEs and reconnaissance rules for that vendor's products. See Vendors, Products & Tags for details.

Supported Output Formats

When creating an integration, you choose an output format matching your firewall:

FormatValueDescription
Plain Textplain_textOne IP per line. Universal format supported by most tools.
F5f5F5 BIG-IP compatible format
FortiGatefortigateFortiGate compatible format
Palo AltopaloaltoPAN-OS compatible format
CheckpointcheckpointCheck Point compatible format
CiscociscoCisco compatible format
JuniperjuniperJuniper compatible format
MikroTikmikrotikMikroTik compatible format
pfSensepfsensepfSense compatible format
OPNsenseopnsenseOPNsense compatible format
SophossophosSophos compatible format
Remediation Componentremediation_componentCrowdSec's own remediation components

Create an Integration

POST /v1/integrations
curl -X 'POST' \
'https://admin.api.crowdsec.net/v1/integrations' \
-H 'accept: application/json' \
-H 'x-api-key: ${KEY}' \
-H 'Content-Type: application/json' \
-d '{
"name": "paloalto_production",
"description": "Production Palo Alto firewall - CVE blocklist",
"entity_type": "firewall_integration",
"output_format": "paloalto"
}'

The integration credentials (API key or username/password depending on type) are only shown once in the creation response. Store them securely. If you lose them, you'll need to regenerate them by updating the integration.

Integration Types

TypeValueDescription
Firewall Integrationfirewall_integrationFor direct firewall consumption via blocklist URL
Remediation Componentremediation_component_integrationFor CrowdSec remediation components

Integration Response Fields

FieldTypeDescription
idstringUnique integration identifier
namestringIntegration name
descriptionstringHuman-readable description
organization_idstringOwning organization ID
entity_typestringfirewall_integration or remediation_component_integration
output_formatstringBlocklist format (see table above)
cvesarrayCVE subscriptions (each with id)
fingerprintsarrayFingerprint rule subscriptions
vendorsarrayVendor subscriptions (each with id). Subscribing to a vendor automatically covers all current and future CVEs and reconnaissance rules for that vendor.
blocklistsarrayBlocklist subscriptions
endpointstringURL for fetching the integration's blocklist content
statsobjectStatistics including count (number of IPs in the blocklist)
tagsarrayTags attached to the integration
enable_ip_aggregationbooleanWhen enabled, CrowdSec automatically aggregates adjacent IPs into network ranges where possible, reducing blocklist size
created_atdatetimeCreation timestamp
updated_atdatetimeLast update timestamp

List Integrations

GET /v1/integrations
curl -X 'GET' \
'https://admin.api.crowdsec.net/v1/integrations' \
-H 'accept: application/json' \
-H 'x-api-key: ${KEY}'

Get Integration Details

GET /v1/integrations/{integration_id}

Update an Integration

Update the name, description, output format, or regenerate credentials.

PATCH /v1/integrations/{integration_id}
curl -X 'PATCH' \
'https://admin.api.crowdsec.net/v1/integrations/YOUR_INTEGRATION_ID' \
-H 'accept: application/json' \
-H 'x-api-key: ${KEY}' \
-H 'Content-Type: application/json' \
-d '{
"name": "paloalto_production_v2",
"description": "Updated description",
"regenerate_credentials": true
}'

Use regenerate_credentials: true if you need to rotate the integration's credentials. The new credentials will be returned in the response.

Delete an Integration

DELETE /v1/integrations/{integration_id}
# Force delete even if integration has active subscriptions
curl -X 'DELETE' \
'https://admin.api.crowdsec.net/v1/integrations/YOUR_INTEGRATION_ID?force=true' \
-H 'accept: */*' \
-H 'x-api-key: ${KEY}'

Use the force=true query parameter to delete an integration even if it has active CVE, fingerprint, or vendor subscriptions.

Get Integration Content (Blocklist)

Retrieve the actual blocklist content that a firewall would consume.

GET /v1/integrations/{integration_id}/content

This returns the blocklist in the format specified when the integration was created (plain text, PAN-OS format, etc.).

You can also check if an integration has content without downloading it:

HEAD /v1/integrations/{integration_id}/content

Returns 200 if content is available, 204 if the integration has no subscriptions or no content.

Streaming Content (Remediation Components)

For CrowdSec remediation components, a streaming endpoint is available:

GET /v1/integrations/{integration_id}/v1/decisions/stream

This is compatible with CrowdSec's remediation component protocol.

End-to-End Workflow

Here's a complete example: create an integration, subscribe it to a vendor, a CVE, and a fingerprint rule, and verify the blocklist.

# 1. Create a plain text integration
curl -X 'POST' 'https://admin.api.crowdsec.net/v1/integrations' \
-H 'x-api-key: ${KEY}' -H 'Content-Type: application/json' \
-d '{"name": "demo_blocklist", "description": "Demo", "entity_type": "firewall_integration", "output_format": "plain_text"}'

# 2. Subscribe to a vendor (covers all current and future CVEs + recon rules for that vendor)
curl -X 'POST' 'https://admin.api.crowdsec.net/v1/vendors/Microsoft/integrations' \
-H 'x-api-key: ${KEY}' -H 'Content-Type: application/json' \
-d '{"name": "demo_blocklist"}'

# 3. Subscribe to an additional individual CVE (for a vendor you haven't subscribed to)
curl -X 'POST' 'https://admin.api.crowdsec.net/v1/cves/CVE-2024-25600/integrations' \
-H 'x-api-key: ${KEY}' -H 'Content-Type: application/json' \
-d '{"name": "demo_blocklist"}'

# 4. Subscribe to an additional fingerprint rule
curl -X 'POST' 'https://admin.api.crowdsec.net/v1/fingerprints/microsoft-exchange/integrations' \
-H 'x-api-key: ${KEY}' -H 'Content-Type: application/json' \
-d '{"name": "demo_blocklist"}'

# 5. Fetch the blocklist (using integration credentials)
curl 'https://admin.api.crowdsec.net/v1/integrations/INTEGRATION_ID/content' \
-H 'x-api-key: INTEGRATION_API_KEY'

Vendor subscriptions are the simplest way to get broad coverage. Subscribe to the vendors in your technology stack, then add individual CVE or fingerprint subscriptions only for threats outside those vendors.

Next Steps

Once your integration is created and subscribed, configure your firewall to fetch the blocklist URL at regular intervals. See the CrowdSec Integrations documentation for vendor-specific setup guides.