> For the complete documentation index, see [llms.txt](https://docs.scanner.dev/scanner/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.scanner.dev/scanner/using-scanner-complete-feature-reference/data-ingestion/sources/custom-logs-http.md).

# Custom Logs - HTTP

This guide explains how to ingest custom logs from external systems (like SOAR tools, alerting platforms, or internal services) using HTTP POST into Scanner Collect.

We’ll assume you’re sending single JSON events via webhook.

Scenario For This Guide

For this guide, we’ll assume your SOAR tool sends alert events to webhook endpoints via HTTP POST in the following JSON format:

```
{
 "eventAt": "2025-03-12T12:31:51.812Z",
 "service": "endpoint-detection",
 "severity": "high",
 "alertId": "EDR-2025-001847",
 "description": "Suspicious PowerShell execution detected on DESKTOP-WIN10-042",
 "source": "192.168.1.45"
}
```

## Create a Collect Rule

{% stepper %}
{% step %}

### Create a New Source

Navigate to the Collect tab in the Scanner UI.

* From the Overview page click the '+' icon in the upper right corner
* Select create new **Collect Rule**
* Under **Custom Logs**, choose **HTTP Push**.
  {% endstep %}

{% step %}

### Configure the Source

1. Set a Display Name, such as `my-soar-alerts`.
2. For Payload Format, choose: `JSON: Single Event`.
   {% endstep %}

{% step %}

### Set Up Authentication

Let's say your SOAR can send webhook events via HTTP POST to Scanner with the following header:

```
Authorization: Bearer token_5e4d1c2e-fb9c-4e6a-9120-6d3e94f99b7e
```

1. Choose `Bearer Token` as the authentication type.
2. Paste this token (i.e. `token_5e4d1c2e-fb9c-4e6a-9120-6d3e94f99b7e`) into the field in Scanner.
   {% endstep %}

{% step %}

### Configure the Destination

1. Choose the S3 Bucket where raw logs should be stored.
2. (Optional) Enter a bucket prefix.
   {% endstep %}

{% step %}

### Review and Create

Review the configuration and create the rule. After creation, Scanner will generate a unique HTTP Endpoint URL. It will look something like:

`https://collect.your-org-and-region.scanner.dev/receiver/v1/http/<id>`

### Send Data from Your Tool

1. In your SOAR tool or external system, configure it to send alerts to the provided Scanner endpoint using HTTP POST.
2. Include the `Authorization: Bearer <your-token>` header in every request.

Logs will be:

* Received over HTTP by Scanner
* Written to your S3 bucket as newline delimited JSON files compressed with GZIP
* Indexed for search and detection.
  {% endstep %}
  {% endstepper %}

## Create an Index Rule

With the Collect Rule created, logs flow from your tool to the Scanner HTTP receiver and are written to your S3 bucket as newline-delimited, GZIP-compressed JSON.

Create an Index Rule to have Scanner index these logs for fast search and detections.

{% content-ref url="/pages/Gem9jwD4aqayN3OiChpN" %}
[Create an Index Rule](/scanner/using-scanner-complete-feature-reference/data-ingestion/create-an-index-rule.md)
{% endcontent-ref %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.scanner.dev/scanner/using-scanner-complete-feature-reference/data-ingestion/sources/custom-logs-http.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
