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.

REST / JSON11 Exchanges1,937 Companies102 Engines131 Copilot ToolsUBO & PEPShariah Screening

Quick Start

  1. 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. 2

    Make your first request

    Pass your key in the x-api-key header. All endpoints return JSON with a data wrapper.

    curl "https://souqdata.com/api/v1/companies?q=emaar" \
      -H "x-api-key: YOUR_API_KEY"
  3. 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

GET/api/v1/companies

List Companies

Returns all active GCC-listed companies. Optionally filter by search query or GICS sector.

Parameters

NameTypeRequiredDescription
qstringOptionalSearch by company name or ticker
sectorstringOptionalFilter 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 }
}
GET/api/v1/companies/{ticker}

Company Detail

Full company profile including financials, directors, dividends, and key metrics.

Parameters

NameTypeRequiredDescription
tickerstringRequiredCompany 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": [...]
  }
}
GET/api/v1/screener

Screener

Query the denormalized screener view with filters, sorting, and market cap ranges. Returns all 212+ columns from v_screener.

Parameters

NameTypeRequiredDescription
sectorstringOptionalFilter by GICS sector
sortstringOptionalColumn to sort by (default: "market_cap_usd")
dir"asc" | "desc"OptionalSort direction (default: "desc")
min_mcapintegerOptionalMinimum market cap in USD
max_mcapintegerOptionalMaximum 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 }
}
GET/api/v1/directors

Directors

Search directors by name (English or Arabic) or list current board members for a specific company.

Parameters

NameTypeRequiredDescription
qstringOptionalSearch by director name (supports English and Arabic, e.g. "Mohammed" or "محمد")
tickerstringOptionalList directors for a specific company
limitintegerOptionalMax 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
      }
    }
  ]
}
GET/api/v1/officers/{ticker}

Officers

Combined board members and executive management for a company. Includes permanent person IDs for cross-referencing.

Parameters

NameTypeRequiredDescription
tickerstringRequiredCompany ticker symbol
type"board" | "executive"OptionalFilter by officer type
status"current" | "former"OptionalFilter by appointment status
fromdateOptionalAppointed after this date (YYYY-MM-DD)
todateOptionalAppointed 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
  }
}
GET/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

NameTypeRequiredDescription
tickerstringRequiredCompany 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" }
    }
  }
}
GET/api/v1/dividend-safety/{ticker}

Dividend Safety Score

Composite dividend safety assessment based on payout ratio, coverage, streak, DPS trend, and earnings stability.

Parameters

NameTypeRequiredDescription
tickerstringRequiredCompany 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 }
    }
  }
}
GET/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

NameTypeRequiredDescription
tickerstringRequiredCompany 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"
  }
}
GET/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

NameTypeRequiredDescription
tickerstringRequiredCompany 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"]
  }
}
GET/api/v1/degrees-of-separation

Degrees of Separation

Find the shortest board network path between two directors using BFS across shared board seats. Max depth: 6.

Parameters

NameTypeRequiredDescription
fromuuidRequiredSource director ID
touuidRequiredTarget 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": []
  }
}
GET/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

NameTypeRequiredDescription
tickerstringRequiredCompany 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%"]
  }
}
GET/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

NameTypeRequiredDescription
slugstringRequiredPerson 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": [...]
  }
}
POST/api/v1/ask

AI 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

NameTypeRequiredDescription
querystringRequiredNatural 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"}
POST/api/v1/mcp

MCP 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

NameTypeRequiredDescription
jsonrpcstringRequired"2.0"
methodstringRequiredMCP method (e.g. "tools/list", "tools/call")
paramsobjectOptionalMethod-specific parameters
idstring | numberRequiredRequest 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.

TierRequests / DayPrice
Free10 / dayFree
Pro60 / day$49/mo
EnterpriseRecommended300 / day$199/mo
Institutional1,250 / dayCustom

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