Skip to content

Instantly share code, notes, and snippets.

@khskekec
Last active April 13, 2026 20:42
Show Gist options
  • Select an option

  • Save khskekec/6c13ba01b10d3018d816706a32ae8ab2 to your computer and use it in GitHub Desktop.

Select an option

Save khskekec/6c13ba01b10d3018d816706a32ae8ab2 to your computer and use it in GitHub Desktop.
HTTP dump of Libre Link Up used in combination with FreeStyle Libre 3
@Mynuggets-dev
Copy link
Copy Markdown

Mynuggets-dev commented Apr 9, 2026

You were probably using https://api-eu.libreview.io or similar as URL. This message lets you know that the credentials are correct, the account exists and that the URL to use to retrieve a token (and for all other interactions) is https://api-de.libreview.io as this account is located in Germany. The schema is https://api-{region_from_redirect}.libreview.io

iirc de was Germany, eu is england etc
au -> https://api.libreview.io < which is global
you can test on my site, it will default to global, if fails you know has to use de 👍
https://diabetes.mynuggets.dev/
( havent wrapped in the regions yet, it will ask but will just use global )
can confirm too my calculators were within reason to bloodwork 😊 ( all part of analytics page )
image

@Mynuggets-dev
Copy link
Copy Markdown

currently working on tracking sensor changes / logging ( and note for if they fail so you can input the data needed for them )
unknown was before the feature, manual was my input SN etc and than auto detects on first reading after the hour ( still needs cleaning )
image

@Mynuggets-dev
Copy link
Copy Markdown

image image and a nicer calendar / logbook

@sgmoore
Copy link
Copy Markdown

sgmoore commented Apr 9, 2026

iirc de was Germany, eu is england etc
au -> https://api.libreview.io < which is global

I don't know what the proper logon procedure is, but I think users should be able to specify the full domain and default to https://api.libreview.io. Then if they get a response containing data.redirect , the program tries again using https://api-{region_from_redirect}.libreview.io/

Region EU used to be most of the EU including the UK. Then after Brexit the UK started using region EU2.

I'm based in the UK and I used to get re-directed to https://api-eu2.libreview.io/ , but now it seems to skip the redirect and works using https://api.libreview.io (https://api-eu2.libreview.io/ still works, but if I try https://api-de.libreview.io/ I get redirected to -eu2)

I'm not sure about users in russia and china as they don't use the libreview.io domain at all.

@Stanzilla
Copy link
Copy Markdown

Has anyone actually managed to log insulin doses into Libre 3 via API?

I have kind of a niche goal, and I am hoping someone here has already gone down this rabbit hole.

What I want is pretty simple in theory:

  • tap a Siri Shortcut on my iPhone
  • log something like Rapid-Acting Insulin, 4 units, optional note
  • have that show up in the Abbott / Libre 3 ecosystem the same way a manually entered dose does
  • ideally in a place my doctor can also see

I am not trying to replace the sensor data side. I only want a faster way to log insulin doses than opening the app and tapping through the note flow every time.

What I found so far

I spent quite a bit of time inspecting the iPhone app traffic and digging through community projects.

Here is what I was able to confirm:

  • The Libre 3 iOS app definitely supports manual note/logbook entries.
  • The web side seems much more limited, and I cannot access my own logbook there.
  • The iPhone app appears to send note / insulin data to:

POST https://api-c-de.libreview.io/lsl/api/measurements

  • The payload includes things like:
    • UserToken
    • device metadata
    • insulinEntries
    • genericEntries with com.abbottdiabetescare.informatics.customnote
    • links to recent glucose record numbers / timestamps

I also found another real endpoint that appears to bind the account/device/sensor state:

PUT /lsl/api/nisperson

That call accepts things like active sensor, name, DOB, token, etc.

What I tried

I tried to recreate the app behavior as closely as I could:

  • used a real current UserToken
  • used the real device metadata
  • used the real active sensor serial
  • called the nisperson binding endpoint successfully
  • matched the observed recordNumber patterns from real uploads
  • linked the synthetic note to recent glucose timestamps / glucose record numbers
  • sent both insulin and custom note entries together

The frustrating part is:

  • the server returns success
  • the API calls look valid
  • but the synthetic note still does not show up in the Libre 3 app logbook

So I am stuck in this weird state where it looks like I found the right API, but I am still missing some hidden piece.

Where I am stuck

At this point I do not know whether the missing piece is:

  • some local app database/state that also has to be updated
  • another hidden endpoint before/after the measurements upload
  • some signature/integrity field
  • another rule around record numbers or sequencing
  • or whether Abbott silently accepts third-party writes but does not surface them the same way first-party app writes are surfaced

I also checked the older sharing / LibreLinkUp-style APIs, but they did not give me a useful way to validate whether the synthetic note was really stored in a doctor-visible way.

What I am hoping someone here knows

If anyone has actually done this, I would love to hear about it.

Specifically:

  1. Has anyone successfully created insulin / note entries in Libre 3 using their own code?
  2. If yes, did those entries actually show up in:
    • the Libre 3 app?
    • LibreView?
    • your doctor / clinic view?
  3. Did you use:
    • direct API calls?
    • Juggluco?
    • another third-party uploader?
    • UI automation?
  4. If you got it working, what was the missing piece?
  5. Has anyone confirmed that third-party uploaded insulin amounts really become visible inside Abbott's ecosystem for Libre 3?

I am mainly looking for real-world experience from someone who has actually tried to get this working, not just guesses.

If you have done anything similar, even partially, I would really appreciate hearing what worked and what did not.

@sgmoore
Copy link
Copy Markdown

sgmoore commented Apr 10, 2026

If you have done anything similar, even partially, I would really appreciate hearing what worked and what did not.

Not sure if you would consider it similar, but I have uploaded insulin dosages and food carbs for several days into LibreView website using a hacked version of https://github.com/creepymonster/nightscout-to-libreview which uses direct api calls. If I remember correctly I didn't bother with notes, but had I bothered, I can't see any reason why they would not have appeared on the libreview website.

Note, this was strictly a one off procedure. This was also for the libre2 sensor, but I think the same would work with the libre3.

My impressions from the time were :
The Libre apps only upload to the website and don't download with the website. Hence you can use Third Party code to upload to the website where it can be viewed by your doctor/clinic. (Obviously doesn't work if they just ask if they can look at your phone)

The biggest problem was that this code did something (presumably the /lsl/api/nisperson put) that stopped the LibreApp from uploading new data to the LibreView website, so I needed to log out of the app and log back before it started working again.

So remember my process was
Log out of the libre app.
Run my script to upload to libreview
Log back into the libre app.

Obviously that is feasible for a one off, but I'm not sure it will help you or how you can fool the api into thinking that it is your phone and not another device that is connecting. (I'm assuming that programs like Juggluco work by completing replacing the librelink app and either upload nothing or upload everything including the glucose readings).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment