Ardent AfricaDocs
Developers

oEmbed (auto-embed)

Paste an Ardent link and have it render as a rich card automatically.

Ardent is an oEmbed provider. When you paste a link to a campaign, petition, event, job, reviewed entity, profile, blog post, or marketplace listing into a tool that supports oEmbed (Notion, Discord, Slack, and others), it renders as a live, sandboxed card instead of a plain link, the same widgets described in Widgets, with no code to copy.

Endpoint

https://ardent.africa/api/oembed?url=<encoded-ardent-url>&format=json

Each canonical page also advertises this endpoint with a discovery tag, so most consumers find it on their own:

<link rel="alternate" type="application/json+oembed"
      href="https://ardent.africa/api/oembed?url=...&format=json" />

Supported URLs

Paste a link likeRenders as
https://ardent.africa/campaign/<slug>campaign or petition card
https://ardent.africa/events/<slug>event card
https://ardent.africa/jobs/<slug>job card
https://ardent.africa/polls/<slug>poll or survey card
https://ardent.africa/durbar/<slug>durbar card (live audio room)
https://ardent.africa/safety/case/<caseNumber>community hazard report card
https://ardent.africa/reviews/<slug>reviewed-entity TrustScore card
https://ardent.africa/supporter/<username>supporter impact badge
https://ardent.africa/blog/<slug>blog post card
https://ardent.africa/marketplace/<id>listing card
https://ardent.africa/post/<id>post card
https://ardent.africa/@<handle>profile card (person, organisation or listing)

A durbar card renders whatever state the room is in, because a scheduled room is the one people most want to share: announcing it before it happens is the entire point of scheduling it. The card never plays audio. Listening to a live room needs a sign-in and, for a recorded room, agreeing to be recorded first, and an embed on somebody else's page can deliver neither.

A hazard card's title is prefixed with how checked the report is, so an unfurl reads "Community report: road flooded at the junction" rather than stating it as fact. Many clients render only the title and never load the iframe, which makes that prefix the whole of what most people will see. The full verification sentence is returned as the author line for the same reason.

Only /safety/case/<caseNumber> unfurls. The hub, the hazard list and the emergency directory are pages rather than resources, and a card about a page would say nothing.

A post card renders only if its author chose a public audience. A post limited to followers, to connections, or to a group is not embeddable, for the same reason it is not readable through the public API. A profile card renders only for a discoverable profile, so turning discoverability off removes it from every site that embedded it, not just from Ardent.

Any other URL returns 404. The provider only resolves Ardent content URLs.

Example

curl "https://ardent.africa/api/oembed?url=https%3A%2F%2Fardent.africa%2Fcampaign%2Fclean-water-for-tamale"
{
  "version": "1.0",
  "type": "rich",
  "provider_name": "Ardent Africa",
  "provider_url": "https://ardent.africa",
  "title": "Clean water for Tamale",
  "thumbnail_url": "https://.../image.jpg",
  "width": 420,
  "height": 340,
  "html": "<iframe src=\"https://docs.ardent.africa/embed/campaign/clean-water-for-tamale\" ... sandbox=\"allow-scripts allow-popups\"></iframe>",
  "cache_age": 60
}

Pass maxwidth / maxheight to cap the dimensions.

WordPress

WordPress only auto-embeds providers it knows about. The official Ardent Africa WordPress plugin (coming soon) registers Ardent as a provider so pasted links just work; until then, use the iframe or script embed on WordPress. Discovery-based consumers (Notion, Discord, etc.) work today.

Safety

The response is always type: rich with a sandboxed iframe (no allow-same-origin). It cannot read the host page, takes no payments, and only deep-links back to ardent.africa for any action. The provider never fetches the URL you pass; it resolves the resource through the public API.

Last updated: 24 August 2026

On this page