SouqData API
Programmatic access to GCC stock market data, governance analytics, and Islamic finance screening. 1,937 companies across 11 exchanges, 102 analytics engines, and an AI copilot with 131 tools -- all via REST.
Quick Start
- 1
Get an API key
Sign up at /pricing and generate a key from your account dashboard. The free tier includes 10 requests per day.
- 2
Make your first request
Pass your key in the
x-api-keyheader. All endpoints return JSON with adatawrapper.curl "https://souqdata.com/api/v1/companies?q=emaar" \ -H "x-api-key: YOUR_API_KEY" - 3
Explore the endpoints
Browse the endpoint reference below. Every analytics engine available on the website is also accessible via the API.
Authentication
Authenticate requests by passing your API key in the x-api-key HTTP header.
GET /api/v1/companies HTTP/1.1
Host: souqdata.com
x-api-key: gxp_live_a1b2c3d4e5f6...Unauthenticated requests are treated as free-tier with a limit of 10 requests per day. To increase your limit, include a valid API key.
Keep your key secret. Never expose it in client-side code, public repositories, or browser requests. If compromised, rotate it immediately from your account dashboard.
Response Format
All responses return JSON. Successful responses wrap the payload in a data field. Some endpoints include an additional meta field with counts, methodology notes, or pagination info.
Success (200)
{
"data": { ... },
"meta": { "count": 42 }
}Error (4xx / 5xx)
{
"error": "Company XYZ not found"
}Responses include Cache-Control headers. Most data endpoints cache for 5 minutes; director and officer data caches for 1 hour.
Endpoint Reference
/api/v1/companiesList Companies
Returns all active GCC-listed companies. Optionally filter by search query or GICS sector.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| q | string | Optional | Search by company name or ticker |
| sector | string | Optional | Filter by GICS sector (e.g. "Financials", "Real Estate") |
Example Response
{
"data": [
{
"id": "a1b2c3d4-...",
"ticker": "EMAAR",
"company_name": "Emaar Properties PJSC",
"company_name_ar": "\u0625\u0639\u0645\u0627\u0631 \u0627\u0644\u0639\u0642\u0627\u0631\u064a\u0629",
"gics_sector": "Real Estate",
"exchange_code": "DFM",
"market_cap_usd": 18200000000,
"is_shariah_compliant": true
}
],
"meta": { "count": 1300 }
}/api/v1/companies/{ticker}Company Detail
Full company profile including financials, directors, dividends, and key metrics.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| ticker | string | Required | Company ticker symbol (e.g. "EMAAR", "QNB") |
Example Response
{
"data": {
"issuer": {
"ticker": "EMAAR",
"company_name": "Emaar Properties PJSC",
"gics_sector": "Real Estate",
"market_cap_usd": 18200000000,
"reporting_currency": "AED"
},
"directors": [...],
"financials": [...],
"dividends": [...],
"metrics": [...]
}
}/api/v1/screenerScreener
Query the denormalized screener view with filters, sorting, and market cap ranges. Returns all 212+ columns from v_screener.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| sector | string | Optional | Filter by GICS sector |
| sort | string | Optional | Column to sort by (default: "market_cap_usd") |
| dir | "asc" | "desc" | Optional | Sort direction (default: "desc") |
| min_mcap | integer | Optional | Minimum market cap in USD |
| max_mcap | integer | Optional | Maximum market cap in USD |
Example Response
{
"data": [
{
"ticker": "QNB",
"company_name": "QNB Group",
"gics_sector": "Financials",
"market_cap_usd": 45000000000,
"pe_ratio": 9.2,
"dividend_yield_pct": 3.8,
"roe_pct": 18.5,
"islamic_debt_ratio": 0.12,
...
}
],
"meta": { "count": 1300 }
}/api/v1/directorsDirectors
Search directors by name (English or Arabic) or list current board members for a specific company.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| q | string | Optional | Search by director name (supports English and Arabic, e.g. "Mohammed" or "محمد") |
| ticker | string | Optional | List directors for a specific company |
| limit | integer | Optional | Max results (default: 50, max: 200) |
Example Response
{
"data": [
{
"id": "d1e2f3...",
"full_name": "Mohamed Alabbar",
"gender": "male",
"nationality": "UAE",
"biography": "...",
"director": {
"role": "Chairman",
"is_independent": false,
"is_chair": true
}
}
]
}/api/v1/officers/{ticker}Officers
Combined board members and executive management for a company. Includes permanent person IDs for cross-referencing.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| ticker | string | Required | Company ticker symbol |
| type | "board" | "executive" | Optional | Filter by officer type |
| status | "current" | "former" | Optional | Filter by appointment status |
| from | date | Optional | Appointed after this date (YYYY-MM-DD) |
| to | date | Optional | Appointed before this date (YYYY-MM-DD) |
Example Response
{
"data": {
"ticker": "EMAAR",
"company_name": "Emaar Properties PJSC",
"officers": [
{
"name": "Mohamed Alabbar",
"type": "board",
"role": "Chairman",
"is_current": true,
"appointed_date": "2017-04-20",
"is_independent": false,
"permanent_id": "p-abc123"
}
],
"total_count": 14,
"current_count": 9
}
}/api/v1/fair-value/{ticker}Fair Value Estimate
Three-model valuation: DCF (discounted cash flow), DDM (dividend discount model), and EV/EBITDA relative valuation. Returns consensus estimate and upside/downside percentage.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| ticker | string | Required | Company ticker symbol |
Example Response
{
"data": {
"ticker": "EMAAR",
"current_price": 8.45,
"currency": "AED",
"consensus_fair_value": 10.20,
"upside_pct": 20.7,
"models": {
"dcf": { "value": 11.30, "confidence": "medium" },
"ddm": { "value": 9.80, "confidence": "high" },
"ev_ebitda": { "value": 9.50, "confidence": "medium" }
}
}
}/api/v1/dividend-safety/{ticker}Dividend Safety Score
Composite dividend safety assessment based on payout ratio, coverage, streak, DPS trend, and earnings stability.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| ticker | string | Required | Company ticker symbol |
Example Response
{
"data": {
"ticker": "EMAAR",
"company_name": "Emaar Properties PJSC",
"score": 72,
"grade": "B+",
"is_reit": false,
"dividend_yield_pct": 3.5,
"dps_local": 0.30,
"payout_ratio_pct": 38.2,
"streak_years": 5,
"components": {
"payout_ratio": { "score": 85, "weight": 0.25 },
"coverage": { "score": 78, "weight": 0.20 },
"streak": { "score": 60, "weight": 0.20 },
"dps_trend": { "score": 65, "weight": 0.20 },
"earnings_stability": { "score": 72, "weight": 0.15 }
}
}
}/api/v1/accounting-quality/{ticker}Accounting Quality
Forensic accounting analysis using Beneish M-Score, Sloan Accruals Ratio, and a composite quality score. Flags earnings manipulation risk.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| ticker | string | Required | Company ticker symbol |
Example Response
{
"data": {
"ticker": "EMAAR",
"m_score": -2.45,
"m_score_flag": "unlikely_manipulator",
"accruals_ratio": 0.03,
"accruals_flag": "low_risk",
"composite_score": 78,
"grade": "B+",
"components": { ... }
},
"meta": {
"methodology": "Beneish M-Score + Sloan Accruals Ratio + Composite Quality Score"
}
}/api/v1/financial-distress/{ticker}Financial Distress
Bankruptcy probability using Altman Z-Score (original and adjusted) and Piotroski F-Score. REITs are excluded from Z-Score due to structural leverage.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| ticker | string | Required | Company ticker symbol |
Example Response
{
"data": {
"ticker": "EMAAR",
"altman_z": 2.85,
"altman_z_zone": "safe",
"altman_z_adjusted": 3.10,
"piotroski_f": 7,
"piotroski_grade": "Strong"
},
"meta": {
"models": ["altman_z", "altman_z_adjusted", "piotroski_f"]
}
}/api/v1/degrees-of-separationDegrees of Separation
Find the shortest board network path between two directors using BFS across shared board seats. Max depth: 6.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| from | uuid | Required | Source director ID |
| to | uuid | Required | Target director ID |
Example Response
{
"data": {
"from": "d1e2f3...",
"to": "a4b5c6...",
"connected": true,
"degrees": 2,
"path": [
{ "person_id": "d1e2f3...", "person_name": "Mohamed Alabbar", "company_ticker": null },
{ "person_id": "x7y8z9...", "person_name": "Ahmad Al Falasi", "company_ticker": "EMAAR" },
{ "person_id": "a4b5c6...", "person_name": "Khalid Al Tayer", "company_ticker": "DFM" }
],
"shared_companies": []
}
}/api/v1/ubo/{ticker}UBO Analysis
Trace ownership chains through nominees, custodians, and holding companies to identify ultimate beneficial owners. Returns transparency rating, risk score, and ownership chain.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| ticker | string | Required | Company ticker symbol (e.g. "EMAAR", "QNB") |
Example Response
{
"data": {
"ticker": "EMAAR",
"company_name": "Emaar Properties PJSC",
"overall_risk_score": 35,
"ownership_transparency_rating": "Partially Transparent",
"beneficial_owners": [
{
"name": "Investment Corporation of Dubai",
"type": "government",
"ownership_pct": 29.2,
"is_pep": true,
"confidence": "high"
}
],
"ownership_chains": [...],
"risk_flags": ["nominee_concentration > 20%"]
}
}/api/v1/pep-check/{slug}PEP Screening
Screen a person for Politically Exposed Person status using FATF R12 criteria adapted for GCC markets. Checks ruling family membership, SWF representation, government appointments, regulatory positions, and merchant family connections.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| slug | string | Required | Person slug (URL-safe name, e.g. "khalid-al-falih") |
Example Response
{
"data": {
"full_name": "Khalid Al-Falih",
"is_pep": true,
"risk_level": "high",
"categories": ["government_appointee", "state_enterprise"],
"reasons": [
{
"category": "government_appointee",
"description": "Former Minister of Energy",
"confidence": "confirmed"
}
],
"current_roles": [...]
}
}/api/v1/askAI Copilot
Natural language query interface powered by Claude Sonnet 4. Streams responses via Server-Sent Events (SSE). Supports multi-round tool calling with ${PLATFORM.copilotTools} data tools.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| query | string | Required | Natural language question (in request body JSON) |
Example Response
// SSE stream
data: {"type":"text","content":"Emaar Properties (DFM: EMAAR) is..."}
data: {"type":"text","content":" the largest real estate developer..."}
data: {"type":"done"}/api/v1/mcpMCP Server
Model Context Protocol (JSON-RPC 2.0) server with ${PLATFORM.copilotTools} tools. Compatible with Claude Desktop and Claude Code. GET returns server info and tool count.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| jsonrpc | string | Required | "2.0" |
| method | string | Required | MCP method (e.g. "tools/list", "tools/call") |
| params | object | Optional | Method-specific parameters |
| id | string | number | Required | Request ID |
Example Response
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"tools": [
{
"name": "search_companies",
"description": "Search GCC-listed companies by name or ticker",
"inputSchema": { ... }
},
...
]
}
}Rate Limits
Rate limits are enforced per API key on a rolling 24-hour window. When you exceed your limit, the API returns 429 Too Many Requests.
| Tier | Requests / Day | Price |
|---|---|---|
| Free | 10 / day | Free |
| Pro | 60 / day | $49/mo |
| EnterpriseRecommended | 300 / day | $199/mo |
| Institutional | 1,250 / day | Custom |
Need higher limits? View pricing plans or contact us for a custom arrangement.
Code Examples
MCP Integration
SouqData exposes a Model Context Protocol (MCP) server at /api/v1/mcp. This lets AI assistants like Claude Desktop and Claude Code query GCC market data directly.
The MCP server provides 131 tools covering company search, financials, directors, governance scores, Shariah compliance, fair value estimates, UBO analysis, PEP screening, and stock screening. Configure it in your Claude Desktop settings:
{
"mcpServers": {
"souqdata": {
"url": "https://souqdata.com/api/v1/mcp",
"headers": {
"x-api-key": "YOUR_API_KEY"
}
}
}
}MCP access requires an Enterprise or Institutional plan.
Endpoint Index
Ready to build with GCC market data?
Get started with the free tier (10 requests/day) or upgrade for full API access, AI copilot, and MCP integration.
View Pricing