Skip to main content

Feeds

Updated over 3 weeks ago

A feed is a mechanism that enables the continuous and automated transmission of data from the Axur Platform API to external systems or platforms. Currently, the platform offers two feed delivery modes, both using the same data format (JSON) and the same creation flow:

  • Feed Pull – data is retrieved on demand (polling)

  • Feed Push (Webhook 2.0) – data is automatically sent to a configured endpoint

In the cybersecurity context, feeds can be used to provide data about digital threats such as phishing, data leaks, compromised credentials, and other potential risks, enabling integrations with SIEMs and other external systems.


Feed Types

Feed Pull

In Pull mode, the external system makes HTTP requests to retrieve feed data whenever necessary. Recommended for:

  • Scheduled integrations

  • Batch processing

  • Environments that already use polling

Feed Push

In Push mode, also known as Webhook 2.0, events are automatically sent by the Axur Platform to a customer-defined endpoint as soon as new events are generated. Recommended for:

  • Automated integrations

  • SIEMs

  • Use cases requiring low latency and continuous delivery

Difference between Feed Pull and Feed Push

Feature

Feed Pull

Feed Push

Delivery method

On-demand retrieval

Automatic delivery

Polling required

Yes

No

Latency

Depends on polling frequency

Near real-time

Data format

JSON

JSON (same format)


How to create a feed

First, you need to access the API & Integrations page on the platform (https://one.axur.com/api-integrations) and go to the "Feeds" section.

To start the creation flow, click on the “Add feed” button. From there, you can choose to use a template or create your feed from scratch.

Using a template

The platform will suggest a list of the main use cases.

After selecting a template, the final step will be to review the settings. You can edit them if you want something different from what was suggested. If no template suits your use case, click on “Skip templates.”

Creating the Feed from Scratch

If you chose to "Skip templates," you will need to set all the conditions for your feed.

  1. You must choose to create a feed of Tickets or Credentials.

👉 Since they are different APIs, it is not possible to create a single feed for both. Therefore, if you want to obtain data from both types, you will need to create two feeds.

Select the delivery mode

At this stage, you must choose how the data will be delivered:

  • Pull – retrieval via HTTP requests

  • Push (Webhook 2.0) – automatic delivery to a configured endpoint

Regardless of the option selected, the data format and the available filters are the same.

  2. You must fill in the specifications, considering that:

​Event date


This is the date that will be considered for event updates. It is a mandatory field.
For credentials, this field will be pre-filled. For tickets, the selectable options will be:

  • First detection (ticket.creation.date): considers only the first detection of the ticket or credential. If the same ticket has other detections, they will not appear in your feed.

  • Any detection (open.date): considers all detections of the ticket.

  • Registered incident (incident.date): considers only the date when the ticket was registered as an incident. Tickets that have not become incidents will not appear in your feed.

  • Takedown requested (takedown.request.date): considers only the date the takedown was requested. Tickets without a takedown request will not appear in your feed.

  • Any ticket update (ticket.last-update.date): considers any and all updates to the ticket. For example: adding notes, adding/removing tags, registering an incident, requesting a takedown, etc. All these actions will trigger feed updates.

Ticket parameters


In this field, you must define the filters for your feed. By clicking “Show tips,” you will see an example and tips for creating the feed.
If you choose more than one field, you must use an & between parameters. For example:
type=fake-social-media-profile&creation.collector=facebook

Feed title

The final step is to define a title for your feed. Although optional, this step can help a lot with your organization. This is the only setting that can be edited after the feed is saved.


Feed list

In the feed list, you will see all feeds created by your team's manager users on the Axur platform. Feeds have three possible statuses:

  • Green: when the feed received at least one request in the last 24 hours.

  • Yellow: when the feed received no requests in the last 24 hours.

  • Empty: when the feed has never received requests.

In the feed list, you can see which user created the feed and who last edited it. Additionally, it is also possible to see when the last query to the feed was made and which ticket was last retrieved.


Use case examples

Before creating a feed, you should consider which use case you want to apply it to. Here are some examples:

  1. Use case: I want to receive detections of fake social media profiles, specifically from Facebook.

    1. Event date: Any detection (open.date)

    2. Parameters: type=fake-social-media-profile&creation.collector=facebook

    3. Title: Fake Facebook profiles

  2. Use Case: I want to receive tickets from the Deep & Dark Web of all types, starting from January 2024.

    1. Event Date: Any detection (open.date)

    2. Parameters: type=dw-activity,data-exposure-message,data-exposure-website,data-sale-message,data-sale-website,fraud-tool-scheme-message,fraud-tool-scheme-website,suspicious-activity-message,suspicious-activity-website,infrastructure-exposure,ransomware-attack&open.date=ge2024-01-01

    3. Title: Deep & Dark Web Detections (Since 01/01/2024)

  3. Use case: I want to receive phishing tickets that had a takedown request.

    1. Event date: Takedown requested (takedown.request.date)

    2. Parameters: type=phishing

    3. Title: Phishings with Takedown request

  4. Use case: I want to receive all tickets that became incidents.
    Event date: Incident registered
    Parameters: Leave blank.
    Title: Platform incidents


Request and response

As it is a request on the Axur platform's API, the API Key must always be included as authentication. For more information about authentication, consult this section of the technical documentation.

Example of a request response with no updates

{
"feedData": {
"id": "f48ba821-2880-48fc-bc0e-dffe8312ad4d",
"title": "Detecções de Executivos & VIPs",
"url": "https://api.axur.com/gateway/1.0/api/integration-feed/feeds/feed/f48ba821-2880-48fc-bc0e-dffe8312ad4d",
"createdAt": 1728325096238,
"lastRequest": 1728325104483,
"isActive": true,
"customerKey": "CTA",
"params": "type=executive-fake-social-media-profile,executive-personalinfo-leak,executive-credential-leak,executive-mobile-phone,executive-card-leak",
"eventDate": "open.date",
"nextPage": 1,
"feedType": "ticket"
},
"collectionData": {
"tickets": [],
"pageable": {
"pageNumber": 1,
"pageSize": 50,
"total": 0
}
}
}

Example of a request response with updates

{
"feedData": {
"id": "31575706-f762-4c56-aafc-78542c9e670b",
"title": "Phishings marcados como incidente",
"url": "https://api.axur.com/gateway/1.0/api/integration-feed/feeds/feed/31575706-f762-4c56-aafc-78542c9e670b",
"lastDataRetrieved": "z5qb1r",
"createdAt": 1728336214469,
"lastRequest": 1728336221044,
"isActive": true,
"customerKey": "ORMUS",
"params": "type=phishing&incident.date=ge2021-01-01",
"eventDate": "incident.date",
"nextPage": 1,
"feedType": "ticket"
},
"collectionData": {
"tickets": [
{
"ticket": {
"reference": "https://ormuspay.wixsite.com/ormuspay/phish-pt",
"ticketKey": "z5qb1r",
"customerKey": "ORMUS",
"creation.user": "10426",
"last-update.date": "2023-01-10T17:34:45Z",
"creation.customer": "ORMUS",
"creation.date": "2022-07-22T13:43:18Z"
},
"detection": {
"creation.user": "10426",
"close.date": "2022-07-26T12:20:36Z",
"treatment.type": "axur",
"incident.date": "2022-07-22T13:43:19Z",
"takedown.notification.date": [
"2022-07-25T17:24:41Z"
],
"isp": "Wix.com Ltd.",
"treatment.date": "2022-07-25T17:22:39Z",
"type": "phishing",
"takedown.resolution": "resolved",
"resolution": "resolved",
"assets": [
"ORMUSP"
],
"host": "ormuspay.wixsite.com",
"takedown.request.date": "2022-07-25T17:19:38Z",
"group": [
null,
"efc_autonotification_failed",
"efc_af_second_verification",
"reup_validation"
],
"takedown.verification.last.type": "auto",
"open.date": "2022-07-22T13:43:18Z",
"takedown.notification.last.type": "manual",
"takedown.reup": "false",
"ip": "199.15.163.145",
"takedown.close.date": "2022-07-26T12:20:36Z",
"creation.customer": "ORMUS",
"domain.registrar": "GoDaddy.com, LLC",
"takedown": "true",
"resolution.reason": "",
"takedown.verification.date": [
"2022-07-26T00:35:12Z",
"2022-07-26T06:52:39Z"
],
"domain": "wixsite.com",
"takedown.uptime": "68155281",
"takedown.close.type": "manual",
"status": "closed"
},
"texts": [],
"snapshots": {
"ipFilter": {
"filtering": false,
"countries": []
},
"content": {
"title": "Login ormus-pay | Ormuspay",
"httpStatusCode": {
"code": 200,
"message": "OK"
},
"hashMD5": {
"value": "ed1e1924300caf7f9902b15df7472cca"
}
},
"isp": {
"location": {
"country": {
"name": "United States"
}
},
"name": "Wix.com Ltd."
},
"digitalLocation": {
"url": "https://ormuspay.wixsite.com/ormuspay/phish-pt",
"host": {
"name": "ormuspay.wixsite.com",
"domain": {
"name": "wixsite.com"
},
"ip": {
"address": "199.15.163.145"
}
}
},
"referenceInfo": {
"originalReference": "https://ormuspay.wixsite.com/ormuspay/phish-pt",
"redirectChain": [],
"finalReference": "https://ormuspay.wixsite.com/ormuspay/phish-pt"
},
"domainInfo": {
"status": "Registered",
"registrar": "GoDaddy.com, LLC",
"registrarEmail": "[email protected]",
"registrant": "Registration Private",
"registrantEmail": "Select Contact Domain Holder link at https://www.godaddy.com/whois/results.aspx?domain=wixsite.com",
"nameServers": {
"hostnames": [
"dns1.p07.nsone.net",
"dns2.p07.nsone.net",
"dns3.p07.nsone.net",
"dns4.p07.nsone.net"
],
"ipAddresses": [
null,
null,
null,
null,
null,
null,
null,
null
]
}
}
}
}
],
"pageable": {
"pageNumber": 1,
"pageSize": 50,
"total": 1
}
}
}

FAQ

What is ?dry-run=true?

This parameter is used to test the feed and should be added at the end of the URL. For example: https://api.axur.com/gateway/1.0/api/integration-feed/feeds/feed/f27afda8-2e5f-4f55-9243b-4941b49ee51e?dry-run=true.

This parameter facilitates testing because it will prevent the feed's update pointer from moving. Once tested and validated that the correct events are coming through, you should remove this parameter so the feed pointer moves, and you do not receive already-read updates.

What is the difference between Feeds and Webhooks?

With Feeds, the user can choose exactly which events they want to receive, but the feed must be queried to send these events. In other words, the data is not sent in real-time and is not automatically updated.

With Webhooks, the user receives all available events without filtering. Additionally, Webhooks do not need to be queried; the events are sent in real-time.

I want a feed for both tickets and credentials. How can I do that?

Since they are different APIs, you will need to create two separate feeds: one to retrieve credential detections and another to retrieve ticket detections. It is not possible to receive both types in the same feed.


If you have any questions, feel free to reach out at [email protected] 😊

Did this answer your question?