{"openapi":"3.1.0","info":{"title":"Casablanca Stock Exchange (CSE) API","version":"1.0.0","description":"Live data for the Casablanca Stock Exchange (CSE, the Moroccan market) with no key: the live quote for one or more stocks by ticker (price, change, open/high/low, volume, market cap, P/E, sector, in dirhams, with the company name), a ranked market screener (top gainers, losers, most active, or largest by market cap), and the live value of the MASI Index (the Moroccan All-Shares Index).","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/casablanca-stock-api","description":"oanor gateway"}],"tags":[{"name":"Quotes"},{"name":"Screener"},{"name":"Indices"},{"name":"Meta"}],"components":{"securitySchemes":{"oanorKey":{"type":"apiKey","in":"header","name":"x-oanor-key","description":"Get your key at https://www.oanor.com/developer/keys"}}},"security":[{"oanorKey":[]}],"paths":{"/v1/quote":{"get":{"operationId":"get_v1_quote","tags":["Quotes"],"summary":"Live quote for one or more CSE stocks","description":"","parameters":[{"name":"codes","in":"query","required":true,"description":"CSE ticker(s), comma-separated up to 20","schema":{"type":"string"},"example":"ATW,IAM"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"The live quote for one or more Moroccan (Casablanca/CSE) stocks — price, change, open/high/low, volume, market cap, P/E and sector (in dirhams), with the company name. Pass codes (the CSE ticker, comma-separate up to 20, e.g. ATW,IAM).","count":2,"quotes":[{"low":675,"high":685,"open":678,"price":680,"change":15,"sector":"Finance","ticker":"ATW","volume":48104,"company":"Attijariwafa Bank SA","currency":"MAD","pe_ratio":12.75,"market_cap":137301687012.00002,"change_percent":2.26},{"low":91.2,"high":91.99,"open":91.99,"price":91.4,"change":1.4100000000000108,"sector":"Communications","ticker":"IAM","volume":44070,"company":"Maroc Telecom SA","currency":"MAD","pe_ratio":11.53,"market_cap":80349320714,"change_percent":1.57}],"source":"Casablanca Stock Exchange / CSE (TradingView)"},"meta":{"timestamp":"2026-06-15T02:10:32.126Z","request_id":"0d104258-3039-4a21-a4ab-ce58bc52a07e"},"status":"ok","message":"Quote retrieved successfully","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/screener":{"get":{"operationId":"get_v1_screener","tags":["Screener"],"summary":"Ranked market screener","description":"","parameters":[{"name":"by","in":"query","required":false,"description":"Ranking: gainers, losers, active, marketcap","schema":{"type":"string"},"example":"marketcap"},{"name":"limit","in":"query","required":false,"description":"Results 1-100","schema":{"type":"string"},"example":"20"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"by":"marketcap","note":"A ranked screener of the Moroccan (Casablanca/CSE) market — the top stocks by your chosen ranking. Pass by (gainers, losers, active, or marketcap; default marketcap) and limit (1-100, default 20). Only real stocks above a market-cap floor are ranked.","count":20,"source":"Casablanca Stock Exchange / CSE (TradingView)","results":[{"price":13635,"change":314,"sector":"Non-Energy Minerals","ticker":"MNG","volume":2651,"company":"Managem SA","currency":"MAD","market_cap":161774850740,"change_percent":2.36},{"price":680,"change":15,"sector":"Finance","ticker":"ATW","volume":48104,"company":"Attijariwafa Bank SA","currency":"MAD","market_cap":137301687012.00002,"change_percent":2.26},{"price":91.4,"change":1.4100000000000108,"sector":"Communications","ticker":"IAM","volume":44070,"company":"Maroc Telecom SA","currency":"MAD","market_cap":80349320714,"change_percent":1.57},{"price":815,"change":14.899999999999977,"sector":"Transportation","ticker":"MSA","volume":9105,"company":"Marsa Maroc SA","currency":"MAD","market_cap":59817413483,"change_percent":1.86},{"price":241,"change":1,"sector":"Finance","ticker":"BCP","volume":8130,"company":"Banque Centrale Populaire SA","currency":"MAD","market_cap":48998305145,"change_percent":0.42},{"price":193,"change":1,"sector":"Finance","ticker":"BOA","volume":90970,"company":"Bank of Africa SA","currency":"MAD","market_cap":42514401993,"change_percent":0.52},{"price":1779,"change":-70,"sector":"Non-Energy Minerals","ticker":"LHM","volume":326,"company":"Holcim Maroc S.A","currency":"MAD","market_cap":41684176105,"change_percent":-3.79},{"price":1749,"change":49,"sector":"Utilities","ticker":"TQM","volume":638,"company":"TAQA Morocco SA","currency":"MAD","market_cap":41256361599,"change_percent":2.88},{"price":749.9,"change":19.899999999999977,"sector":"Industrial Services","ticker":"TGC","volume":13415,"company":"Travaux Generaux de Construction de Casablanca S.A.","currency":"MAD","market_cap":26002282162,"change_percent":2.73},{"price":1595,"change":-5,"sector":"Non-Energy Minerals","ticker":"CMA","volume":579,"company":"Ciments du Maroc SA","currency":"MAD","market_cap":23025425878,"change_percent":-0.31},{"price":5700,"change":-40,"sector":"Finance","ticker":"WAA","volume":549,"company":"Wafa Assurance SA","currency":"MAD","market_cap":19950000000,"change_percent":-0.7},{"price":179.7,"change":1.6999999999999886,"sector":"Process Industries","ticker":"CSR","volume":78743,"company":"COSUMAR SA","currency":"MAD","market_cap":16979338201.999998,"change_percent":0.96},{"price":1170,"change":40,"sector":"Health Services","ticker":"AKT","volume":1300,"company":"Akdital","currency":"MAD","market_cap":16566272593.000002,"change_percent":3.54},{"price":380,"change":30,"sector":"Health Technology","ticker":"SOT","volume":1758,"company":"Sothema","currency":"MAD","market_cap":14557610626,"change_percent":8.57},{"price":1570,"change":55,"sector":"Retail Trade","ticker":"TMA","volume":268,"company":"TotalEnergies Marketing Maroc","currency":"MAD","market_cap":14067200060,"change_percent":3.63},{"price":3770,"change":75,"sector":"Distribution Services","ticker":"GAZ","volume":30,"company":"Afriquia Gaz","currency":"MAD","market_cap":12959375000,"change_percent":2.03},{"price":31.99,"change":1.9899999999999984,"sector":"Finance","ticker":"ADH","volume":400370,"company":"Douja Promotion Groupe Addoha SA","currency":"MAD","market_cap":12877614044,"change_percent":6.63},{"price":343,"change":-2,"sector":"Finance","ticker":"CIH","volume":4376,"company":"Credit Immobilier et Hotelier SA","currency":"MAD","market_cap":12212729427,"change_percent":-0.58},{"price":2900,"change":-70,"sector":"Finance","ticker":"SAH","volume":78,"company":"Sanlam Maroc","currency":"MAD","market_cap":11938935232,"change_percent":-2.36},{"price":6998,"change":490,"sector":"Non-Energy Minerals","ticker":"SMI","volume":2430,"company":"Societe Metallurgique d'Imiter SA","currency":"MAD","market_cap":11512339708,"change_percent":7.53}],"description":"largest (by market cap)"},"meta":{"timestamp":"2026-06-15T02:10:32.341Z","request_id":"58d88c18-bdf4-4a86-9725-a6218666d7c6"},"status":"ok","message":"Screener retrieved successfully","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/index":{"get":{"operationId":"get_v1_index","tags":["Indices"],"summary":"Live value of the MASI Index","description":"","parameters":[{"name":"name","in":"query","required":false,"description":"MASI","schema":{"type":"string"},"example":"MASI"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"low":17570.85,"high":18099.77,"name":"MASI Index","note":"The live value of the MASI Index (the Moroccan All-Shares Index, the Casablanca Stock Exchange benchmark) — current level, change, and the day's open/high/low. Pass name (MASI; default MASI).","open":17570.89,"index":"MASI","value":17952.37,"change":328.6399999999994,"source":"Casablanca Stock Exchange / CSE (TradingView)","change_percent":1.86},"meta":{"timestamp":"2026-06-15T02:10:32.549Z","request_id":"f93be62a-16b8-4be6-9ce2-107e1b7629c3"},"status":"ok","message":"Index retrieved successfully","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/meta":{"get":{"operationId":"get_v1_meta","tags":["Meta"],"summary":"Service metadata & endpoint catalog","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"sample":{"masi":17952.37},"source":"TradingView public screener (scanner.tradingview.com/morocco/scan), keyless","indexes":["MASI"],"screens":["gainers","losers","active","marketcap"],"service":"casablanca-stock-api","endpoints":{"GET /v1/meta":"This document.","GET /v1/index":"Live value of the MASI Index (name).","GET /v1/quote":"Live quote for one or more stocks (codes).","GET /v1/screener":"Ranked market screener (by, limit)."},"description":"Live data for the Casablanca Stock Exchange (CSE, the Moroccan market) with no key: the live quote for one or more stocks by ticker (price, change, open/high/low, volume, market cap, P/E, sector, in dirhams, with the company name), a ranked market screener (top gainers, losers, most active, or largest by market cap), and the live value of the MASI Index (the Moroccan All-Shares Index). The Morocco-equities / MASI-index / screener layer for trading dashboards and research. Distinct from other exchange readers — the Casablanca Stock Exchange market with a built-in screener. Live, short cache only.","upstream_status":"ok"},"meta":{"timestamp":"2026-06-15T02:10:32.649Z","request_id":"d8ec1e72-bb52-4c1b-b6a0-25c45543de7f"},"status":"ok","message":"Meta","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}}},"x-oanor-pricing":[{"slug":"free","name":"Free","price_cents_month":0,"monthly_call_quota":7900,"rps_limit":2,"hard_limit":true},{"slug":"basic","name":"Basic","price_cents_month":1830,"monthly_call_quota":193000,"rps_limit":10,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":5310,"monthly_call_quota":1090000,"rps_limit":20,"hard_limit":true},{"slug":"scale","name":"Scale","price_cents_month":9870,"monthly_call_quota":5980000,"rps_limit":50,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/casablanca-stock-api"}