Akinda API Reference
Changelog & Roadmap
Live status of what's shipped, in progress, and planned next on the Akinda API. Subscribe to the API Documentation for full field references.
July 25, 2026
Apply a promo code at checkout
July 24, 2026
Plan updates β expanded Ultimate coverage, Business Standard Full Report & updated pricing
We refreshed our Personal and Business plans so each tier's limits and included features are accurate and up to date. Highlights:
- Personal Ultimate now covers 3+ global markets β US, UK, and Canada β alongside the full dataset (previously US-only).
- Personal Ultimate has updated pricing: $60/mo (or $504/year).
- Business Standard now includes the complete Shariah Full Report.
See the pricing page for each plan's full details.
July 19, 2026
Coverage Expansion β UK & Canada
We significantly expanded AAOIFI Shariah screening coverage across the UK and Canadian markets. Every newly added company is independently screened to the same standard as the rest of the universe, and is automatically re-screened whenever it publishes a new financial report.
- United Kingdom: 355 β 663 stocks
- Canada: 72 β 153 stocks
- UK + Canada combined: 427 β 816 stocks
- 389 new companies added
July 19, 2026
Screening Accuracy Improvements β US Stocks
July 15, 2026
Admin panel β subscription operations, real-money accounting & analytics
A large pass across the internal admin panel. Subscription requests now show the real amount charged in its native currency (with the USD equivalent), the applied coupon / promo code, the payment method, and the true Stripe subscription status β so paid vs. free and discounted vs. full-price are never confused.
New lifecycle controls: a remove / suspend action (behind a 5-second confirmation) that revokes a customer's API access at the account level β un-bypassable by rotating the API key β and resets personal plans back to Free, plus auto-renewal cancellation that reflects the real Stripe state.
The analytics surface was rebuilt: Money Flow and Subscriptions merged into one card with a Diagram / Revenue toggle, period comparison (A vs. B with exact date ranges), plan / endpoint filters, a bar-click drill-down to the callers behind any spike, and a full API-usage status breakdown (total calls, errors, blocked, and per-status 200 / 401 / 404 chips). Every card can export a professional report as an image, CSV, or PDF.
July 15, 2026
Website β docs, landing page, pricing & a new Contact page
Improvements across the public site. The API documentation left-nav and the MCP Server section were reorganised, and every dropdown β the docs nav and the admin sidebar included β now opens and closes with a smooth, consistent animation.
The landing-page footer gained Contact and FAQ links and a contact email, and the FAQ itself was expanded (getting started, plans, markets, in-subscription support, rate limits, the full business-request walkthrough, and MCP). A new Contact page and contact details on the business request page make the team easier to reach.
Pricing and plan cards are now aligned with the backend, and every paid plan advertises the ability to connect your own AI (Claude, β¦) to Akinda over MCP.
July 15, 2026
Resource library β new developer guides & halal verdicts
New in-depth articles on the blog:
- Shariah screening API: endpoints, auth & a quickstart tutorial
- How to get a halal stock API in 2026 (step-by-step)
- Halal stock screening API for developers (2026 overview)
- Free halal stock screening API (Akinda free tier)
- White-label & embedded halal investing (Shariah-as-a-Service)
- Halal ETFs: a complete guide to Shariah-compliant index funds
- Top 5 halal investing apps in 2026 (with API-screened picks)
- Is Tesla halal in 2026?
- Is Apple halal in 2026?
- Is Microsoft halal in 2026?
- Is Amazon halal in 2026?
- Is Nvidia halal in 2026?
July 14, 2026
One-click sign-in for MCP
July 13, 2026
MCP Server (beta) β connect Akinda to your AI tools
July 7, 2026
Online Chat Assistant β now live
Live support chat is now available across the site. A chat button in the bottom-right corner opens a conversation with the Akinda team: ask a question, get a reply in-thread, and pick up right where you left off on your next visit.
On your first message we'll ask your name and work email so we can follow up, then confirm the message was sent and let you know a teammate is on the way β with a clear note if you've reached us outside working hours. It supports emoji and file attachments, shows a live typing indicator while we're replying, plays a sound alert when a reply lands (even if you've switched tabs), and lets you download your full chat transcript in one click.
June 30, 2026
Dashboard & Docs β Usage Accuracy, API-Key Panel Polish, and Navigation Fixes
A round of accuracy and UI fixes across the developer dashboard and documentation.
Usage & Limits. The Endpoint Statistics table now always matches the Requests Usage chart above it and tracks the time-period selector β previously it could show a fixed set of endpoints that didn't change with the period. Switching the chart to Data Usage now reflects real transferred data for the selected window instead of a placeholder figure, and drops the per-endpoint colour breakdown (that split only applies to API-call counts). The per-minute and monthly-bandwidth meters also gained the same reset-cadence notes shown on the API Keys page.
API Keys. Fixed the show/hide eye toggle on the live key (it now renders a clean, full icon in both states), and the rate-limit and bandwidth meters now match the Usage & Limits page exactly so the two views stay consistent.
Account. Removed the duplicate active-API-key panel from Account Settings β your key lives on the dedicated API Keys page.
API Documentation. The left-hand navigation no longer overlaps the page footer when fully expanded; it now stops cleanly above it.
June 30, 2026
GPU Stock-Analyzer β Server-C CI/CD Automation Pipeline
The GPU stock-analyzer's nightly Shariah-screening pipeline (Server-C) now ships behind an automated CI/CD pipeline. Pushes to the analyzer's main branch flow through build, test, and deploy onto Server-C without a manual deploy step, bringing the analyzer's release cadence in line with the rest of the platform's automated deploys.
What you get downstream: changes reach the live nightly run shortly after merge instead of being gated on someone running the deploy by hand, and the dev / prod parity work from the Daily-Updater: staging (dev) now mirrors production exactly release on 2026-06-24 is now enforced by the pipeline itself rather than by convention.
Proof: a stock-analyzer commit landing on main flows through CI, deploys to Server-C, and the next nightly run's artefacts (full_report_*.csv / .html + live_run_prod_*.log) appear on /admin/reports under the new Generated-At timestamp.
June 26, 2026
GPU Stock-Analyzer β Last-Valid Fallback for Failed Recomputes
The stock-analyzer's nightly recompute pipeline now substitutes a stock's last good served verdict from akinda_stocks_external_ai when this run's recompute fails (ERROR_DATA / INCOMPLETE_DATA / any non-verdict status). Mirrors the keep-last-valid policy the daily-updater already uses. Valid stocks are never touched; a stock with no prior valid data anywhere stays ERROR_DATA β no fabrication. Each recovery is logged per run so the fallback set is auditable. Net effect: transient upstream failures (an FMP endpoint timing out for a single ticker mid-run) no longer surface as ERROR_DATA on the daily report β the prior-good verdict carries forward until the next successful recompute.
Proof: api-viewer with a ticker that had a transient FMP failure and recovered to its prior-good HALAL / NOT HALAL verdict (e.g. ZTO).
June 26, 2026
Daily-Updater β Report Metadata Sync to b2b Restored
The daily-updater was uploading nightly run logs to MinIO, but the corresponding CSV / HTML report metadata-record call to the b2b admin-reports endpoint had silently regressed β the upload's auth was healthy and the .log file landed, but the CSV / HTML metadata POST step was being skipped. Diagnosed cross-team and fixed on the daily-updater side. Going forward, every nightly run uploads all four artefacts (.log + .csv + .html + JSONL β Grafana) AND records each one's metadata on the b2b admin Audit Reports page within the same run window.
A one-time backfill closed the historical gap: 15 missing metadata rows spanning 2026-04-13 β 2026-04-15 (live_run_*.log + full_report_*.csv + .html) are now visible on the admin Audit Reports page with working view / download buttons. Newer Server-B uploads that were sitting in MinIO without metadata are also re-posted.
Proof: admin Audit Reports page showing today's full_report_*.csv + .html alongside live_run_prod_*.log within the same upload batch.
June 25, 2026
Admin Session β OAuth Demotion Guard + Symmetric Logout
Two b2b-backend fixes. (1) HandleGoogleCallback now refuses to overwrite a live admin session with a non-admin Google identity. Previously, an admin returning to /login in a stale tab (or via address-bar autocomplete) and clicking βContinue with Googleβ would silently become whatever Google account they were signed into. The callback now redirects to /admin?error=oauth_would_demote_admin with the admin cookie preserved, and the FE renders a dismissible banner explaining what happened. (2) ClearSessionCookie now clears both akinda_session AND akinda_admin_profile_id, matching the pair set on login β the 1-year admin-profile UUID no longer outlives logout. User-visible effect: admins can no longer be silently demoted to regular users by an accidental Google sign-in.
Proof: Cookie inspection on logout (both cookies cleared); on an OAuth attempt while authed as admin, redirect to /admin?error=oauth_would_demote_admin with the existing admin cookie intact.
June 25, 2026
Audit Reports: last-valid data retention (no more transient "data error" rows)
The GPU stock-analyzer's audit reports (the per-country HTML / CSV files surfaced on /admin/reports) now retain each stock's last-known-valid Shariah verdict when a temporary market-data fetch fails during report generation, instead of displaying a transient ERROR_DATA. If a stock has no prior valid verdict at all, it still correctly shows as unprocessed β no data is ever invented.
Brings the published reports in line with how the live screener has always behaved (it keeps the latest valid verdict). Additive safety layer on top of the existing automatic retry; never alters stocks that processed correctly. Shipped 22:29 UTC (18:29 Boa Vista, UTCβ4).
June 24, 2026
Daily-Updater: FMP bandwidth optimization (verdict-only daily / weekly full refresh)
The nightly data pipeline now recomputes every stock's verdict (Halal / Not-Halal / Doubtful, debt / liquidity / impure ratios, market cap) daily, and refreshes the heavier screener / ranking metrics (technical indicators, ratios, key-metrics, growth) once a week on Friday.
The old daily full refresh was burning the shared FMP data quota β it hit the monthly cap and blanked the served screener table. The new schedule cuts updater FMP bandwidth by ~85% (under the β€50 GB/month share) while keeping every verdict current daily. The new VERDICT_ONLY mode skips the heavy fetches and preserves those columns from the previous full refresh; a redundant duplicate fetch was also removed in the same change. Verified live 22:23 UTCβ04.
June 24, 2026
Daily-Updater: defensive "no-overwrite-on-error" guard
When FMP data is temporarily unavailable for a stock, the updater now keeps that stock's last-known-good verdict instead of replacing it with ERROR_DATA. A transient FMP outage had previously blanked ~79% of the served screener table; the published dataset is now robust to upstream outages, matching the resilience the live product already provided.
June 24, 2026
Daily-Updater: staging (dev) now mirrors production exactly
The staging environment now mirrors production exactly β same full universe, same logic, same data β so every pipeline change can be validated end-to-end before it reaches the live dataset. Closes a long-standing gap where dev ran on a thinner slice and would silently disagree with prod on edge cases.
June 24, 2026
Landing Page: Simple Integration code panel height capped
After the v2 wire-shape refresh (entry below), the /full-report response card on the landing page had grown tall enough to fit all 38 fields and broken the section's visual rhythm. Capped the panel at the original ~340px height so long responses scroll inside the card on the site's standard 5px scrollbar instead of expanding the grid row. Shorter /compliance and /basic-report panels stay at their natural smaller heights β the cap only kicks in for /full-report.
Also set the horizontal scrollbar to the same thin 5px width as the vertical (was falling back to the chunky ~15px OS default) and added Firefox scrollbar-width: thin for cross-browser parity.
June 24, 2026
Landing Page: Simple Integration responses refreshed for v2 wire shape
The three endpoint response cards on the landing page were rendering pre-v2 examples β wrong field names (debt_ratio instead of debt_ratio_perc), no multi-country fields, no dollar counterparts, no source breakdown arrays, no ranking-score pillars. Replaced with the canonical wire shape every endpoint now ships: listing_country, reporting_currency, force_haram, the three *_dollar counterparts, the three *_revenue_source arrays, all eight Akinda ranking-score pillars, and distinct last_scanned / last_updated stamps.
Same sweep retuned the hero subtitle, three Features cards, and two FAQs that still carried SEC-only / US-only language now that UK + CA are live. The Debt Ratio Analysis card's threshold was also corrected from the old "AAOIFI 33%" to the strict 30% the screen actually applies.
June 22, 2026
Daily-Updater: per-country audit reports published nightly
The nightly pipeline now publishes a separate audit report for US, UK, and Canada β each tagged by country β to MinIO and the /admin/reports page, instead of only the last report written. Previously only the small Canada report reached the admin page; now all three are available and country-filterable. Pairs with the FE categorisation work shipped the same day under the new Stock-Analyzer Reports checkbox.
June 22, 2026
Audit Reports: stock-analyzer per-country files promoted to first-class category
The /admin/reports page had been bucketing the stock-analyzer's per-country reports (filename pattern akinda_live_<COUNTRY>_*.csv/html) into "Other CSV" / "Other HTML" because the categoriser only recognised the legacy prefixes. The moment an admin ticked the prominent top-level checkboxes (Server-B Logs / Server-C Logs / Full Reports), tonight's multi-country reports vanished unless they hunted under the faint "Other Files" sub-section.
Added a 4th first-class checkbox β Stock-Analyzer Reports β so the 6 new files per nightly run (US + GB + CA Γ csv/html) surface cleanly alongside the daily-updater outputs by default.
June 19, 2026
Multi-Country API β listing_country, reporting_currency, and Screener Country Filter
Coordinated same-day shipment of two commits ( 4e8cbe5 at 12:18 UTC and bea3b98 at 15:02 UTC), packaged together because the screener country filter depends on the multi-country DTO landing first. Two additions complete Phase 2 of the multi-country rollout. (1) /api/v1/full-report/<ticker> now surfaces listing_country (ISO-2: US / GB / CA) and reporting_currency (ISO-3: USD / GBP / CAD) on every row. All dollar amounts on /full-report β including the legacy amount_usd field name inside the *_revenue_source arrays β are in the row's reporting_currency. The b2b API performs no FX conversion end-to-end (per spec Β§ 4). (2) /admin/screener now validates an optional ?country= query param (case-insensitive, ISO-2 codes US / GB / CA only). Empty / missing leaves today's behaviour unchanged (all countries returned). Anything else returns 400 with {error: "invalid_country"} rather than being silently dropped β silent coercion was masking FE wiring bugs.
Proof: /api/v1/full-report/SHEL.L β listing_country: "GB", reporting_currency: "GBP"; /admin/screener?country=CA β only TSX (.TO) tickers.
June 19, 2026
Screener: per-row currency symbol on multi-country prices
Every currency-denominated cell in the screener row was hard-coded with a $ prefix β Price, Target, 52W H/L, EPS, SMA20/50/200 β plus Market Cap and Total Revenue rendered without any symbol. Now that Mahmud's gateway ships listing_country + reporting_currency on every screener row, each row renders prices in its own native currency: $ for US, Β£ for UK (LSE), C$ for Canada (TSX). US rendering is byte-identical to before; no FX conversion ever happens (api spec Β§ 4).
June 19, 2026
Screener: COUNTRY column between Company and Status
The /admin/screener results table now surfaces each row's listing country (USA / UK / Canada) as a sortable column between Company and Status β flag + label, same primitive used on /admin/screener/top-halal. The cell never reads "β" because the FE falls back to ticker-suffix inference when the wire field is empty. Complements the Country dropdown in the Descriptive Filters group so admins can both filter and visually verify by country at the same time.
June 19, 2026
Stock Detail: derive listing country from ticker suffix when wire is empty
Stock pages whose admin row hadn't been backfilled with the canonical listing_country field were reading "β" in the Country row of the summary card (TSLA, RY.TO, etc.). Added an effectiveListingCountry() helper that prefers the wire field and falls back to ticker-suffix inference per api spec Β§ 6 (.L β GB, .TO / .V β CA, otherwise US). The country chip in the header, the metadata Country row, and the currency derivation all use the same fallback so the page never disagrees with itself.
June 19, 2026
Stock Detail: multi-country end-to-end + 6,400 Stocks Coverage badge
Stock detail page is now multi-country end-to-end against the b2b backend. Country chip in the top identity band (flag + ISO-2), currency-aware money formatter on every dollar amount in the Shariah Report block (USD bare, GBP Β£X GBP, CAD C$X CAD), renamed Shariah audit β Last Scanned and Data updated β Last Updated with info tooltips spelling out the api spec Β§ 5 distinction.
Same release updated the homepage hero badge from "20,000+ Stocks Coverage" to "6,400+ Stocks Coverage" to match the actual US + UK + CA universe size.
June 19, 2026
Daily-Updater: ADR market-cap currency-corruption guard
Fixed a class of US-listed foreign ADRs (e.g. ENIC) whose market cap was being inflated ~1000Γ by a data-source currency mislabel β which had deflated their debt ratio to a false Halal. These now correctly verdict NOT HALAL. Eliminates false-Halal verdicts (the dangerous direction) on every affected ADR.
June 19, 2026
Daily-Updater: durable logos for UK and Canada stocks
UK (.L) and Canada (.TO) stocks now get company logos, filled every night via image CDN. UK and CA stocks previously showed no logo on the stock detail and screener pages.
June 17, 2026
Daily-Updater: UNRATED status for never-audited foreign ADRs
Foreign ADRs that have never been audited by the analyzer (e.g. ASML, AZN, NVS) now show UNRATED β no Halal badge, blank βlast scannedβ β instead of a default verdict. Avoids presenting an unaudited stock as verified.
June 17, 2026
Daily-Updater: each served country reports in its own native currency
Pipeline confirms full US / UK / CA coverage with each country served in its own reporting currency β US in USD, UK in GBP, CA in CAD β and no FX conversion ever happens. Pairs with the public Coverage Expansion ship from 2026-06-15 and locks the currency convention in at the pipeline layer.
June 16, 2026
Multi-Country API β Phase 1 (Additive)
Initial multi-country support, all backwards-compatible (commit e64c20b β standalone, three days before the Phase 2 push, so it's its own entry). Four changes ship together. (1) /api/v1/full-report/<ticker> now emits last_updated (daily-refresh timestamp from the daily-updater) alongside last_scanned (Shariah-audit date from the stock-analyzer). Both fields ship together, reformatted to Jan 02, 2006; the two are intentionally distinct per spec Β§ 5 β never conflate or substitute. (2) Per-ticker country-grant gate is wired into all three customer endpoints (/compliance, /basic-report, /full-report) β permissive today; flips to enforce at UK / CA commercial launch via a single constant. (3) /admin/screener/top-halal now forwards the country query param so the showcase + paginated list stay aligned with the FE country picker. (4) The admin Audit Reports endpoint now exposes a per-row country field parsed from the daily-updater's akinda_live_<COUNTRY>_* filename convention (US / GB / CA). Legacy uploads that pre-date the convention return "" so older FE bundles keep rendering.
Proof: api-viewer with a UK ticker (e.g. AZN.L) showing the dual last_scanned + last_updated timestamps.
June 16, 2026
Roadmap: default tab is Released + ?tab= deep-links
Clicking the Coverage Expansion link from the Multi-country callout on /developer/docs (and every "Changelog" header / mobile nav link) was opening the Planned tab when users expected to see what shipped. Flipped the default to Released since the page leads with "Changelog & Roadmap" and added ?tab=released / ?tab=pending / ?tab=planned deep-link support (also # hash variants) so the explicit "Roadmap" link from /developer/docs continues to land on Planned.
June 16, 2026
API Docs: Multi-country callout + JSON samples + reordered served countries
Brought the public API documentation in sync with the 2026-06-15 Coverage Expansion ship. Added a Multi-country tickers reference card at the top of /developer/docs explaining ticker-suffix auto-detection (no suffix β US, .L β GB, .TO β CA), the new listing_country + reporting_currency response fields, and the no-FX-conversion rule per api spec Β§ 4 β with a per-country ticker format / exchange / currency table.
All three rendered JSON code blocks (/compliance, /basic-report, /full-report) and the Export-feature samples gained listing_country, reporting_currency, and force_haram. Per-endpoint /developer/docs/status field defs updated too. The COVERED_COUNTRIES list was reordered so the three served countries (US, GB, CA) lead instead of being scattered through the alphabetical order β visible immediately on /pricing's Global Markets Coverage row.
June 16, 2026
Pricing matrix: Enterprise covers served markets only + header dropdown UX
Two coordinated UX corrections. The Pricing matrix's Global Markets Coverage row was showing Enterprise as covering all 21 countries in COVERED_COUNTRIES, which overpromised: the analyzer only audits US, GB, CA today. Restricted Enterprise to those three; the other 18 countries stay listed as future scope but read "β" on every tier. Same fix on the dashboard subscription matrix.
Header center-nav dropdowns now share one interaction model: hover opens, click toggles, the label itself never navigates (real navigation lives on the menu items). The "Documentation" label was previously a link that navigated away on click; now it behaves like "Pricing" did.
June 16, 2026
Stock Detail: Shariah Report renders against partial wire data + native currency
The four Shariah Report cards on /admin/stocks/[ticker] were showing "Revenue breakdown not available" / "Data not available" / dashes in Calculation rows even when data was clearly present β the admin endpoint ships dollar fields for many tickers without their percent counterparts, and the FE was gating every render on percents being present.
Added derivation: missing percents fall back to dollar / total computation, hasChartData now true if either percent or dollar fields are present, ComplianceGauge gets the derived value so the Non-compliant revenue gauge no longer falls through to "Data not available". Native currency support threaded through all four cards β the "Currency in USD" pill matches the row's reporting_currency.
June 16, 2026
Multi-country FE surface: UK + Canada across screener, top-halal, docs, roadmap
First FE pass making the multi-country pipeline visible end-to-end after Mahmud's gateway shipped UK + CA on 2026-06-15. New: Country filter on the screener (Descriptive group, US/GB/CA), COUNTRY column on /admin/screener/top-halal between Symbol and Company, multi-country fields on the stock detail summary card (Country / Currency / Shariah audit / Data updated), and listing_country, reporting_currency, and force_haram documented on the public docs.
Same release added three Released roadmap entries (Coverage Expansion, GPU A100, Dollar-Value Extraction Integrity) each with a playground deep-link Proof link, plus CountryFlag's new square variant for row chips and SERVED_COUNTRIES + helpers in src/lib/countries.ts. README rewritten in present tense covering the whole multi-country surface.
June 16, 2026
Daily-Updater: FMP-only debt & liquidity ratios (no AI override)
Debt and liquidity ratios are now computed purely from objective market data β FMP balance sheet Γ· trailing- 12-quarter market cap β removing an unreliable AI-extracted override that caused some false verdicts. Yields more accurate, more consistent verdicts across the entire universe, with the calculation now reproducible from publicly auditable inputs alone.
June 16, 2026
Daily-Updater: unclamped ratios + 100% revenue donut + per-stock last-scanned
Three concurrent corrections to the verdict engine. (a) Ratios are no longer clamped at 100% β leveraged firms now show their true leverage, which can exceed 100%. (b) The revenue-source donut on the Shariah Report always sums to exactly 100%. (c) Every stock now carries a per-stock last scanned audit date, visible on the stock detail page and via the API.
June 15, 2026
Coverage Expansion: United Kingdom & Canada
Akinda now audits the London Stock Exchange (~355 names, .L tickers) and Toronto Stock Exchange (~72 names, .TO tickers) with its own independent AAOIFI screening engine, plus the full source-of-data revenue breakdown (halal_revenue_source, non_compliant_revenue_source, doubtful_revenue_source). Country is auto-detected from the ticker, so callers never pass a country parameter on the per-ticker path.
UK names report in GBP; CA names report in CAD β no FX conversion ever happens, every number stays in the company's native currency. New fields: listing_country (US / GB / CA) and reporting_currency (USD / GBP / CAD).
June 7, 2026
Dollar-Value Extraction Integrity
Hardened the AI extraction pipeline: expenses and financing line items are no longer mis-counted as revenue, cross-chunk duplicates are deduped, and the debt and liquidity ratios now flow from objective FMP balance-sheet data (not the AI guess fields) per api spec Β§ 3. Impossible-value rows are cleaned up at the daily refresh, and US re-extraction has been restored for backfill of older tickers.
Ratios can legitimately exceed 100% β debt ratio on leveraged firms, liquidity ratio on cash-rich firms, impure ratio on interest-heavy or pre-revenue companies. The API documents this explicitly now; consumers must not clamp to [0, 100].
June 6, 2026
GPU Capacity Upgrade: A100 80 GB
June 5, 2026
Site-wide cleanup: purge Phase-2 misdocumentation + homepage SEO retune
After the methodology Phase-2 correction (entry below), the same "three financial ratios / 67% liquidity / total-assets denominator" mistakes existed in five other places. Fixed in one sweep: /developer/docs field tables (debt + liquidity descriptions corrected to use the 12-Q avg market cap denominator + a "ratios can exceed 100%" callout), /our-mission/akinda + /about/shariah-advisor CTAs (three β two financial ratios), and six blog posts in src/lib/blog.tsx including the five "Is X halal" posts and the AAOIFI vs IFSB vs S&P Shariah comparison.
Same commit retuned the homepage meta β title "Akinda API β Halal Investment Data" β "Shariah Compliance API and Halal Stock Screener β Akinda" to lead with the two highest-intent keywords; meta description rewritten for the SERP snippet.
June 5, 2026
Shariah Screening Methodology: Phase 2 corrected to match the actual backend
The methodology page was documenting Phase 2 incorrectly in three ways that all made the screen look more lenient than the API actually is: (1) liquidity threshold was documented as < 67% but the backend enforces 30%; (2) liquidity formula was documented as (cash + accounts receivable) / total assets but the backend uses (cash + short-term investments) / avg 12-quarter market cap; (3) a separate "interest-bearing investment limit" card was mapped to the wrong API field.
Rewrote Phase 2 to be the two financial limits (debt + liquidity, both 30% of avg 12-quarter market cap) β the strict-AAOIFI / DJIM-aligned reading the Go backend actually performs.
June 5, 2026
About: standalone /about/shariah-advisor page restored
Dr. Muhammad Nazir Khan's profile is back on its own URL with unique title / description / canonical for SEO. Footer Shariah-advisor link points there; the methodology page's advisor card retains its portrait + LinkedIn button and cross-links over. Restores the dedicated landing page for "akinda shariah advisor" / "Dr. Muhammad Nazir Khan AAOIFI" search queries.
May 21, 2026
Discoverability: Google Search Console + sitemap.xml
Google site-verification meta tag added to the root layout, plus a generated /sitemap.xml and /robots.txt now served by the site. Search engines can discover every public page β landing, pricing, /developer/docs and its sub-pages, the per-endpoint status pages, the changelog, the playground β and the founder can submit ownership in Search Console to request indexing.
Authenticated areas (dashboard, account, billing, admin) stay excluded from the sitemap and explicitly disallowed in robots.txt so crawlers don't pick up anything behind a login wall.
May 21, 2026
Developer Tools: Real-time API Status page
May 21, 2026
Developer Tools: Interactive API Playground
May 21, 2026
Documentation: Field notes for legacy USD fields
/full-report endpoint documentation, explaining when interest_debt, prohibited_revenue, and operating_lease can return 0 and recommended cross-references (e.g., last_scanned, halal_status) for higher-confidence checks.May 20, 2026
Data correctness: compliant revenue formula
compliant_revenue_perc computation for tickers with non-zero doubtful revenue. The three percentages β compliant_revenue_perc, doubtful_revenue_perc, non_compliant_revenue_perc β now sum to exactly 100% for every ticker (previously some tickers like AMZN, MSFT, GOOG overshot due to a formula bug). No wire-shape change.May 19, 2026
Null semantics on uncomputed numeric fields
/full-report now emit JSON null (instead of 0) when the upstream value has not been computed yet: debt_ratio_dollar, liquidity_ratio_dollar, non_compliant_revenue_dollar, doubtful_revenue_perc, doubtful_revenue_dollar, compliant_revenue_perc, compliant_revenue_dollar. Renders as βData not availableβ on dashboards. Consumers should treat null as βnot yet processedβ and 0 as a real zero.May 18, 2026
Unit normalization on three legacy fields
interest_debt, prohibited_revenue, and operating_lease now ship as actual USD on the wire. Example: AAPL interest_debt previously returned 99130 (millions) and now returns 99130000000 (actual USD). Aligns with the v2 specification sample.May 17, 2026
Full Report API v2.0 released
/full-report/{ticker} endpoint:- Renamed keys:
impure_ratioβnon_compliant_revenue_perc;ai_interest_debtβinterest_debt;ai_prohibited_revenueβprohibited_revenue;ai_operating_leaseβoperating_lease;ai_last_scannedβlast_scanned. Legacy keys removed. - 10 new fields: dollar counterparts (
debt_ratio_dollar,liquidity_ratio_dollar,non_compliant_revenue_dollar); doubtful + compliant pairs (doubtful_revenue_perc/_dollar,compliant_revenue_perc/_dollar); per-source breakdown arrays (halal_revenue_source,non_compliant_revenue_source,doubtful_revenue_source). - Null semantics: all new fields use proper JSON
nullwhen uncomputed.
May 17, 2026
Plans & Pricing: Business tier restructure
May 17, 2026
Coverage: UK / UAE / Malaysia stocks (Business Enterprise)
.L suffix), UAE (.AE), and Malaysia (.KL) ticker universes. Country grants are issued per-subscription during the Business Enterprise onboarding flow.May 17, 2026
Documentation: Global Markets Coverage on the pricing matrix
May 17, 2026
Documentation: Endpoint reference sidebar
/developer/docs, alongside section links for Authentication, Rate Limits & Bandwidth, License, and Use Cases.May 17, 2026
Developer Tools: Multi-language code snippets + response export
/developer/docs now ships a Code overlay with copy-ready, syntax-highlighted request snippets in 12 languages (Shell, JavaScript, Python, Java, Go, Ruby, Swift, PHP, C#, Rust, Scala, R), plus an Export overlay to download the sample response as JSON, CSV, or plain text.May 17, 2026
Developer Tools: Test Now now respects your subscription tier
/developer/docs checks your tier before firing the request β if your plan doesn't include the endpoint, you get an inline Upgrade plan link instead of a raw 403 response from the API.May 3, 2026
New fields on /screener and /stock: logo URLs + ranking score block
logo_url) and the eight ranking score fields (overall + 7 pillars) are now surfaced on /screener and /stock responses, in addition to /full-report where they originally launched. Logos are served via the FinancialModelingPrep CDN; the field emits JSON null when no logo is available for the symbol.May 2, 2026
Screener: Akinda Ranking Score filters
min_ranking_score, max_profitability_score, min_liquidity_score, min_financial_strength_score, min_value_score, min_growth_score, min_momentum_score, min_dividend_score. Discover stocks by quality score across any pillar.April 30, 2026
Pricing: Business Enterprise tier launched
/full-report and includes unlimited rate and bandwidth across every endpoint. See the pricing page for the full feature matrix.April 30, 2026
New fields: Akinda Ranking Score on /full-report
/full-report endpoint now returns eight new ranking fields β ranking_score (overall, 0β10) plus seven pillar scores: profitability_score, liquidity_score, financial_strength_score, value_score, growth_score, momentum_score, dividend_score. Each pillar is a 0β10 score; the overall is the mean of the non-null pillars (the dividend pillar contributes only when greater than zero). A null on any pillar means the calculation failed for that ticker β it is not a zero. Returned only for clients on the Business Enterprise tier; lower tiers receive the response without these fields.April 30, 2026
Wire shape: ranking fields exposed as flat top-level keys
/full-report is exposed as eight individual top-level keys β ranking_score, profitability_score, liquidity_score, financial_strength_score, value_score, growth_score, momentum_score, dividend_score β not nested under a sub-object. Parsers should read each field directly from the response root rather than walking through a wrapper like ranking.score or ranking.pillars.*.April 20, 2026
Documentation: Request and Response example tabs on the landing page
April 16, 2026
Subscriptions: Stripe checkout
April 14, 2026
Developer Tools: Test Now button on /developer/docs
March 24, 2026
Shariah Tools: Dividend purification calculator
March 23, 2026
Screener: 62-column financial coverage
min_<key> / max_<key> query parameters.March 22, 2026