DigitalManager Developer Platform

DigitalManager publishes a read-only public content API for agents, integrators, and internal tools. It exposes published marketing content — not ERP tenant data, admin CMS, or customer records.

When to use this API

  • Retrieve published company contact details, homepage sections, ERP module pages, industries, business models, FAQs, blog posts, and testimonials.
  • Submit contact or demo enquiries via POST /api/public/v1/leads (alias POST /api/leads; rate limited; no API key required today).
  • Resolve SEO metadata, sitemaps, and locale routing for GCC country sites.
  • Do not use this API for ERP transactions, admin CMS changes, lead exports, or authenticated back-office workflows.

Authentication & versioning

  • No API keys are required for the documented public endpoints.
  • Stable routes are under /api/public/v1/. Legacy unversioned paths remain as backward-compatible aliases until the Sunset date.
  • Deprecation policy: legacy aliases return Deprecation and Sunset headers (Sunset: Sat, 01 Jan 2028 00:00:00 GMT).
  • All /api/admin/* routes require CMS authentication and are excluded from the public specification.
  • There is no public sandbox environment — use your local build or the production origin after deployment.

Rate limits

  • GET public JSON endpoints: 120 requests per IP per 60 seconds.
  • POST /api/public/v1/leads (alias /api/leads): 12 submissions per IP per 10 minutes.
  • Responses include RateLimit-Limit, RateLimit-Remaining, and RateLimit-Reset. HTTP 429 responses include Retry-After and structured JSON.
  • Default in-memory store is per server process — configure REDIS_URL for multi-instance shared limits.

Public v1 endpoints (summary)

  • GET /api/public/v1/health — service health
  • GET /api/public/v1/site-settings — company contact, header, footer
  • GET /api/public/v1/homepage?country=&lang= — locale homepage bundle
  • GET /api/public/v1/locale-content/{slug} — erp, solutions, business-models, faqs, contact, industries
  • GET /api/public/v1/locale-content/software/{kind}/{slug} — module/industry detail
  • GET /api/public/v1/locale-content/city/{citySlug}/{pageSlug} — city landing pages
  • GET /api/public/v1/cities — published city registry
  • GET /api/public/v1/blog/posts, /api/public/v1/blog/posts/{slug}
  • GET /api/public/v1/testimonials
  • GET /api/public/v1/seo-page?path=
  • POST /api/public/v1/leads — contact/demo submission
  • Discovery: /developers, /openapi.json, /llms.txt, /sitemap.xml

Available integrations

  • OpenAPI 3.1 machine-readable contract at /openapi.json.
  • Agent instructions at /llms.txt and markdown alternates (Accept: text/markdown) on public pages.
  • Local developer CLI: node tools/dm-public-cli/bin/dm-public.mjs (health, erp, blog, seo helpers).
  • No hosted MCP server, webhooks product, or npm-published SDK at this time.

Versioning policy

  • Stable public JSON routes live under `/api/public/v1/`.
  • Legacy unversioned paths (`/api/public/*`, `/api/homepage`, `/api/site-settings`, `/api/page/{slug}`, `/api/software-detail/{kind}/{slug}`) remain available as backward-compatible aliases.
  • Deprecated aliases respond with `Deprecation: true`, `Sunset`, and a `Link` header pointing to /developers#versioning.
  • Breaking changes ship only in a new major prefix (for example `/api/public/v2/`). v1 aliases are supported until the published Sunset date.
  • Admin CMS routes are private and are not versioned on this surface.

Pricing

  • There is no dedicated public pricing API. If a pricing CMS page is published, fetch it with GET /api/public/v1/pages/{slug}.

Examples

curl -sS "https://digitalmanager.ae/api/public/v1/health"
curl -sS "https://digitalmanager.ae/api/public/v1/locale-content/erp?country=AE&lang=en"

OpenAPI 3.1 specification · Agent instructions (llms.txt)