Your users post their progress on Bemelio, with a visual in your colors.
A button in your app opens Bemelio with a ready-made post, signed “via” your app. All it takes is a link: no SDK, no key.
Request accessFree access. Members always approve their post.



How it works
- 1A button in your app
After a workout, a reading session or a run, “Share on Bemelio” opens a link that carries the activity.
- 2The member approves on Bemelio
The post is ready, in the right goal. They review it, can edit the text, then post it themselves.
- 3The story spreads the word about your app
In one tap, they share it as a story, in your colors, with your logo and “via” your app, for their friends to see.
What your app does: open a link
No SDK, no server-to-server exchange. The activity travels in the d parameter, a JSON encoded in base64url.
https://bemelio.com/partage?app=slug&outil=outil&d=base64url(JSON)See the JSON
{
"titre": "The Stranger",
"visuel": {
"titre": "The Stranger",
"page": 148,
"total": 186
}
}Scan this code to try the link on your phone.
Until your app is activated, the link opens Bemelio on a polite error message, and nothing is posted.
The button, in a few lines
The examples use the link you just built.
func shareOnBemelio() {
let data: [String: Any] = [
"titre": "The Stranger",
"visuel": ["titre": "The Stranger", "page": 148, "total": 186],
]
guard let json = try? JSONSerialization.data(withJSONObject: data) else { return }
let d = json.base64EncodedString()
.replacingOccurrences(of: "+", with: "-")
.replacingOccurrences(of: "/", with: "_")
.replacingOccurrences(of: "=", with: "")
if let url = URL(string: "https://bemelio.com/partage?app=your-app&outil=lecture&d=\(d)") {
UIApplication.shared.open(url)
}
}See all tools
dtitre | string(48) | The card title, on one line. |
texte | string(500) | The message suggested to the member, who can edit it. |
visuel | { } | Required: the numbers that draw the tool's visual. |
stats | [3] | Optional: let Bemelio compute them, in the member's language. |
visuel| Tool | Fields | Key data |
|---|---|---|
Reading lecture | titre string(80) · auteur string(60) · page, total 0-20000 · jour 0-5000 · semaine [7] · serie 0-3650 · finDans 0-999 · fini bool · note 0-5 · lus [24] string(60) · cible 0-365 | titre | cible | lus |
Run course | km 0-1000 · duree 0-360000 (s) · dplus 0-20000 · trace [[lat, lon], ...] (100) | km + duree |
Streak serie | mois 0-11 · annee · coches [31] 1-31 · aujourdhui 0-31 · serie, record, prochain 0-100000 | serie |
Ride velo | km 0-2000 · semaines [8] · objectif · dplus 0-20000 · vitesse 0-200 | km |
Hike rando | km 0-500 · dplus, dmoins 0-20000 · altMax 0-9000 · saisonDplus | km |
Swim natation | m 0-100000 · longueurs 0-4000 · bassin 0-100 · allure string(8) · semaines [8] | m |
Meditation meditationYoga yoga | min 0-1440 · jours [7] · objectif | min |
Languages langue | code string(3) · niveau, cible A1-C2 · min · mots 0-1000000 · serie | min | mots |
Music musique | min · jours [7] · bpm, cibleBpm 0-400 | min |
Drawing dessinPhotography photoTimer chrono | min 0-100000 · jours [7] · unite string(14) | min |
Writing ecriture | mots 0-1000000 · jours [14] · objectif · manuscrit 0-100 | mots |
Cooking cuisine | recettes 0-1000 · cuisines [12] string(3) · niveau 0-4 · pct 0-100 | recettes | cuisines |
Study etudes | min · jours [7] · pct 0-100 · examDans 0-999 · matieres [5] 0-1 | min | pct |
Savings epargne | pct 0-100 · mois 0-600 · versementsNever an amount | pct |
Habits habitudes | jours [84] 0-1 · faites, prevues 0-100 · serie | prevues |
Climbing escalade | voies [24] { cote, res: onsight | flash | sent | project | failed } · max | voies[0] |
Job search emploi | envoyees, reponses, entretiens, offres 0-10000 | envoyees |
Audience audience | points [16] · palier · plateforme string(20) | points (2+) |
Numbers are positive and clamped to their bounds. Unknown fields are ignored. A visual without its key data gets the link refused. The full link is 6,000 characters at most.
The rules
- The member always approves. A link never posts anything on its own.
- For finance, no amounts: only percentages. Always the member's real numbers, with no health data.
- Access is free.
- Your app must be activated by Bemelio, which gives you your ID, your color and your tools.
Ready to plug in your button?
Tell us which app and which tools. We activate your ID and your colors.
Request access