API

Serwis przyjmuje notatki markdown i oddaje losowy link, który wygasa. Są dwa punkty wejścia: jeden dla skryptów i integracji (wymaga klucza), drugi dla przeglądarki (bez klucza, za to z limitem).

Tworzenie notatki

POST https://md.damianslimak.pl/api/notes
X-Api-Key: TWÓJ_KLUCZ
Content-Type: application/json

{
  "content": "# Tytuł\n\nTreść notatki w markdownie",
  "ttl": "1d",
  "password": "opcjonalne"
}

Odpowiedź 201:

{
  "slug": "15LlZpeAd7gljKOR04Ssgw",
  "url": "https://md.damianslimak.pl/15LlZpeAd7gljKOR04Ssgw",
  "expires_at": 1785958800
}

Parametry

polewymaganeopis
contenttakTreść w markdownie, UTF-8, do 256 kB. Pusta treść to błąd.
ttlnieCzas życia: "1h", "1d", "7d", "30d". Domyślnie 1d.
passwordnieHasło do otwarcia notatki. Pominięte lub puste znaczy: bez hasła.

Czasy życia

wartośćznaczenie
1hgodzina
1ddzień
7dtydzień
30dmiesiąc

Zapis z przeglądarki

Ten sam mechanizm, którego używa edytor na stronie głównej. Bez klucza API, za to z limitem 60 nowych notatek na 60 minut z jednego adresu IP. Poprawianie własnej notatki nie zużywa limitu — możesz zapisywać ją bez ograniczeń.

POST https://md.damianslimak.pl/api/notes/save
Content-Type: application/json

{
  "content": "# Treść",
  "ttl": "1d",
  "password": "opcjonalne",
  "slug": "istniejący-slug",
  "edit_token": "sekret-zwrócony-przy-tworzeniu"
}

Bez pary slug i edit_token powstaje nowa notatka — odpowiedź 201 zawiera dodatkowo edit_token. Z poprawną parą treść zostaje nadpisana pod tym samym adresem — odpowiedź 200 i "updated": true.

Przy nadpisaniu:

Odczyt notatki

adresco zwraca
/{slug}Notatka wyrenderowana do HTML.
/{slug}/plainSurowy markdown w przeglądarce.
/{slug}/mdPlik .md do pobrania.
/{slug}/printWersja do druku, otwiera okno drukowania (stąd PDF).
/{slug}/editEdytor z wczytaną treścią.

Kody odpowiedzi

kodkiedy
200Notatka nadpisana albo odczytana.
201Notatka utworzona.
401Brak lub zły klucz API (dotyczy /api/notes).
404Nieznany slug.
405Metoda inna niż POST.
410Notatka wygasła — treść jest już usunięta.
422Pusta treść, przekroczony rozmiar, zły ttl, zły edit_token.
429Przekroczony limit nowych notatek z jednego IP. Dotyczy też prób nadpisania cudzym tokenem.
503Baza chwilowo niedostępna.

Przykłady

Wysłanie pliku z dysku:

curl -X POST https://md.damianslimak.pl/api/notes \
  -H "X-Api-Key: $MD_API_KEY" \
  -H "Content-Type: application/json" \
  -d "$(jq -n --rawfile c notatka.md '{content: $c, ttl: "7d"}')"

Notatka na godzinę, zabezpieczona hasłem:

curl -X POST https://md.damianslimak.pl/api/notes \
  -H "X-Api-Key: $MD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"content":"# Dane dostępowe\n\nlogin: admin","ttl":"1h","password":"tajne"}'

Co warto wiedzieć