# DFM Announcements Scraper: إعلانات سوق دبي المالي (`getascraper/dfm-announcements-scraper`) Actor

Collect public Dubai Financial Market announcements, issuer disclosures, dates, and attached official documents. Monitor DFM News or Derivative News with keyword and date filters. أداة جمع إعلانات سوق دبي المالي.

- **URL**: https://apify.com/getascraper/dfm-announcements-scraper.md
- **Developed by:** [GetAScraper](https://apify.com/getascraper) (community)
- **Categories:** News, Automation, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $2.00 / 1,000 announcements

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## 📰 DFM announcements scraper: إعلانات سوق دبي المالي

<table width="100%">
<tr>
<td style="padding:24px 28px;background:#F0F8FC;border:1px solid #C7E4F2;border-top:4px solid #005BA2;border-radius:12px">
<span style="font-size:23px;font-weight:800;color:#1C1917;line-height:1.3">Follow DFM disclosures without checking the exchange feed by hand.</span><br>
<span style="font-size:15px;color:#57534E;line-height:1.6">Collect public issuer updates, market notices, reporting dates, and official attachments from Dubai Financial Market, سوق دبي المالي, in one clean dataset.</span>
</td>
</tr>
</table>

<table width="100%">
<tr>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #C7E4F2;border-radius:10px 0 0 10px;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#004878">🔎 Focused watchlists</span><br>
<span style="font-size:12px;color:#57534E">Filter market or derivatives news by keyword and publication date</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #C7E4F2;border-left:none;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#004878">🏢 Issuer context</span><br>
<span style="font-size:12px;color:#57534E">Keep issuer names, Arabic names, and symbols beside each disclosure</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #C7E4F2;border-left:none;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#004878">📄 Official documents</span><br>
<span style="font-size:12px;color:#57534E">Open source attachments from the matching DFM announcement</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #C7E4F2;border-left:none;border-radius:0 10px 10px 0;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#004878">🔄 Change monitoring</span><br>
<span style="font-size:12px;color:#57534E">Save only new or updated announcements on scheduled watchlists</span>
</td>
</tr>
</table>

DFM Announcements Scraper turns public Dubai Financial Market disclosures into source-backed rows for investor-research teams, finance-data products, and market-monitoring workflows. Choose English or Arabic, select the relevant feed, and retain the official source links with every announcement.

### 🔍 What does DFM Announcements Scraper do?

It collects public DFM market and derivatives announcements. Each result retains the published headline, issuer context, reporting details, and official document links when DFM supplies them.

Use the market announcements view for a broad watchlist. Use issuer disclosures for company research, official documents for attachment-heavy work, and disclosure changes for scheduled monitoring.

### 🎯 Why use it?

- **I am an equity-research analyst** watching selected issuers so I can review public disclosures without revisiting the DFM feed throughout the day.
- **I am a finance-data product manager** collecting source-backed announcements, issuer symbols, and document links for a downstream research workflow.
- **I am an investor-relations researcher** following reporting periods, dividend dates, and issuer notices with the original DFM page beside every row.
- **I manage a market-monitoring workflow** and need scheduled runs to save only new or updated disclosures for each separate watchlist.

### 🚀 How to use it

<table width="100%">
<tr>
<td style="padding:16px 14px;width:33%;background:#F0F8FC;border:1px solid #C7E4F2;border-radius:10px 0 0 10px;vertical-align:top">
<span style="font-size:12px;font-weight:800;color:#005BA2;letter-spacing:1px">STEP 1</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Choose your feed</span><br>
<span style="font-size:12px;color:#57534E">Select public DFM market news or derivatives market news.</span>
</td>
<td style="padding:16px 14px;width:33%;background:#F0F8FC;border:1px solid #C7E4F2;border-left:none;vertical-align:top">
<span style="font-size:12px;font-weight:800;color:#005BA2;letter-spacing:1px">STEP 2</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Narrow the watchlist</span><br>
<span style="font-size:12px;color:#57534E">Add a headline keyword, date range, language, and record limit.</span>
</td>
<td style="padding:16px 14px;width:33%;background:#F0F8FC;border:1px solid #C7E4F2;border-left:none;border-radius:0 10px 10px 0;vertical-align:top">
<span style="font-size:12px;font-weight:800;color:#005BA2;letter-spacing:1px">STEP 3</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Review or monitor</span><br>
<span style="font-size:12px;color:#57534E">Export the results or schedule a named watchlist for changes.</span>
</td>
</tr>
</table>

### 🎛️ Input

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `announcementType` | enum | No | Select the public DFM market-news or derivatives-news feed. |
| `keyword` | string | No | Keep announcements whose headlines match a word or phrase. Leave it empty for the selected feed. |
| `dateFrom` | date | No | Set the first publication date in the requested range. Use YYYY-MM-DD. |
| `dateTo` | date | No | Set the final publication date in the requested range. Use YYYY-MM-DD. |
| `language` | enum | No | Request the official English or Arabic source response. |
| `maxItems` | integer | No | Cap the number of genuine announcements saved. The default is 10. |
| `incrementalMode` | boolean | No | Save only new or updated announcements compared with an earlier run using the same state name. |
| `stateName` | string | No | Name a monitoring state so independent issuer or topic watchlists do not share history. |
| `includeUnchanged` | boolean | No | When monitoring, also include announcements whose official values have not changed. |

### 📋 Data table

| Field | Type | Description |
| --- | --- | --- |
| `announcementId` | string | Official DFM identifier for the announcement. |
| `headline` | string | Published announcement headline. |
| `issuerName` | string | Issuer name when DFM provides it. |
| `issuerNameArabic` | string | Arabic issuer name when DFM provides it. |
| `issuerSymbol` | string | Listed issuer symbol when DFM provides it. |
| `announcementType` | string | DFM market-news or derivatives-news classification. |
| `publicationDate` | string | Source publication timestamp. |
| `reportInterval` | string | Report interval when DFM provides it. |
| `reportingPeriod` | string | Reporting period when DFM provides it. |
| `reportLanguage` | string | Language published for the attached report. |
| `reportType` | string | Report type when DFM provides it. |
| `dividendsPaymentDate` | string | Dividend payment date when DFM provides it. |
| `documentCount` | number | Number of official documents linked by DFM. |
| `documentNames` | string | Source document names when DFM provides them. |
| `documentUrl` | string | Official DFM attachment link when published. |
| `documentPublishedAt` | string | Source publication time for the attachment. |
| `announcementUrl` | string | Public DFM page for the announcement. |
| `changeType` | string | Current, new, updated, or unchanged status for a monitoring run. |
| `firstSeenAt` | string | First collection time for a monitored announcement. |
| `lastSeenAt` | string | Most recent collection time for a monitored announcement. |
| `scrapedAt` | string | Time this Actor collected the record. |

### 💰 Pricing

Pricing is pay per result. Empty runs cost nothing, and there is no fixed monthly subscription. Set `maxItems` to keep each run within your preferred result limit.

### ⭐ Enjoying DFM Announcements Scraper?

<table width="100%" style="display:table;width:100%">
<tr>
<td style="padding:20px 24px 14px;background:#F0F8FC;border:1px solid #C7E4F2;border-left:5px solid #005BA2;border-radius:10px 10px 0 0">
<span style="font-size:20px;letter-spacing:4px">⭐ ⭐ ⭐ ⭐ ⭐</span><br>
<span style="font-size:17px;font-weight:800;color:#1C1917">Spent less time checking DFM disclosures and more time on research?</span><br>
<span style="font-size:14px;color:#57534E">A 5-star rating takes 10 seconds and helps other finance-data teams find this Actor. Your feedback also tells us what to build next.</span>
</td>
</tr>
<tr>
<td style="padding:0;background:#005BA2;border:1px solid #C7E4F2;border-top:none;border-radius:0 0 10px 10px;text-align:center">
<a href="https://apify.com/getascraper/dfm-announcements-scraper/reviews" style="display:block;padding:13px 16px;color:#FFFFFF;text-decoration:none;font-weight:800;font-size:15px;letter-spacing:0.3px">★&nbsp;&nbsp;Rate this Actor on Apify</a>
</td>
</tr>
</table>

### ❓ FAQ

##### Does DFM Announcements Scraper need a DFM account?

No. It collects only announcements and document links that DFM publishes publicly. It does not request account credentials or access private material.

##### How fresh are the DFM announcements?

Each run requests the current matching public feed. Schedule the same focused task when you need recurring monitoring.

##### Can I receive only new DFM disclosures?

Yes. Turn on `incrementalMode` and use a distinct `stateName` for each watchlist. Later runs save new or updated records unless you choose unchanged announcements too.

##### كيف يمكنني متابعة إعلانات سوق دبي المالي؟

Choose Arabic as the source language, set a focused filter, and run the Actor. The dataset keeps the official source details DFM returns.

### ⚖️ Responsible use

This Actor returns publicly visible DFM announcements for research and monitoring. Confirm material decisions against the original DFM publication and follow applicable laws and source terms.

### 🔗 Other actors

- [UAE Industrial Licence Monitor: بيانات الموردين](https://apify.com/getascraper/uae-industrial-licence-monitor) ↗ - Monitor public industrial supplier records in the UAE.
- [UAE Recall Monitor: مراقبة سحب المنتجات](https://apify.com/getascraper/uae-product-recall-monitor) ↗ - Track published UAE product recall notices.
- [OpenSooq Scraper](https://apify.com/getascraper/opensooq-scraper) ↗ - Collect public MENA classifieds and vehicle listings.
- [Yandex Market Scraper: Парсер Яндекс Маркет](https://apify.com/getascraper/yandex-market-scraper) ↗ - Research product listings and seller data from Yandex Market.

# Actor input Schema

## `announcementType` (type: `string`):

Choose the public DFM announcement feed to collect.

## `keyword` (type: `string`):

Optional keyword searched by DFM across announcement headlines.

## `dateFrom` (type: `string`):

Optional first publication date in YYYY-MM-DD format.

## `dateTo` (type: `string`):

Optional final publication date in YYYY-MM-DD format.

## `language` (type: `string`):

Language requested from the official DFM feed.

## `maxItems` (type: `integer`):

Maximum genuine DFM announcements to save. Start with the sample, then deliberately increase it.

## `incrementalMode` (type: `boolean`):

Compare official announcement IDs against a named state and save only NEW or UPDATED disclosures. Use this for scheduled monitoring.

## `stateName` (type: `string`):

A distinct name prevents separate DFM watchlists from sharing their monitoring history.

## `includeUnchanged` (type: `boolean`):

When monitoring, also save records whose official disclosure values have not changed.

## Actor input object example

```json
{
  "announcementType": "DFM News",
  "keyword": "",
  "dateFrom": "",
  "dateTo": "",
  "language": "en",
  "maxItems": 10,
  "incrementalMode": false,
  "stateName": "default",
  "includeUnchanged": false
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "announcementType": "DFM News",
    "keyword": "",
    "dateFrom": "",
    "dateTo": "",
    "language": "en",
    "maxItems": 10,
    "incrementalMode": false,
    "stateName": "default",
    "includeUnchanged": false
};

// Run the Actor and wait for it to finish
const run = await client.actor("getascraper/dfm-announcements-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "announcementType": "DFM News",
    "keyword": "",
    "dateFrom": "",
    "dateTo": "",
    "language": "en",
    "maxItems": 10,
    "incrementalMode": False,
    "stateName": "default",
    "includeUnchanged": False,
}

# Run the Actor and wait for it to finish
run = client.actor("getascraper/dfm-announcements-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "announcementType": "DFM News",
  "keyword": "",
  "dateFrom": "",
  "dateTo": "",
  "language": "en",
  "maxItems": 10,
  "incrementalMode": false,
  "stateName": "default",
  "includeUnchanged": false
}' |
apify call getascraper/dfm-announcements-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,getascraper/dfm-announcements-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/OdPEnP9ywK7WHzhF2/builds/7AtYVZV127zjhAzy8/openapi.json
