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"