Return to enstrayed.com

# API Documentation

This page was last updated 2025-12-15.

## Attention: This page is overdue for a rewrite and the information currently presented may not be accurate.

## /api/nowplaying

nowplaying.js
GET

Returns whatever I'm listening to via the Last.fm API in JSON. If `?format=html` is used in the URL it will return the same but in HTML. If nothing is playing the JSON response will just have `"playing": false`.

## /api/nowplayingbeta

nowplaying.js
GET

Beta verison of the /nowplaying endpoint. This version will change frequently but presently queries my Jellyfin for what I'm listening to and will return that as JSON. If `?format=html` is appended to the URL it will return the same but in HTML. Each line in the HTML response has a class `nowPlayingLine[1-4]` that can be used to style the text using CSS. See libnowplaying.js:63 for the format of the result.

## /api/etyd/*

etyd.js
GET POST DELETE

Retrieves, creates or deletes entries for the etyd.cc URL shortener. Replace * in the URL for the target of the request.

Required Headers (POST, DELETE):

- `Authorization`: A token with the `etyd` scope

Required Body (POST):

    {
            "url": "urlValue"
    }

## /api/sendemail

email.js
POST

Sends an email to the specified recipient, intended for application & automation use.

Required Headers:

- `Authorization`: A token with the `mailjet` scope

Required Body:

    {
            "recipient": "recipientEmailHere",
            "subject": "emailSubjectHere",
            "message": "emailBodyHere"
    }

## /ip

ip.js
GET

Returns the IP, country and Cloudflare ray of the request in JSON.

## /api/headers

ip.js
GET

Returns all request headers in JSON.

## /api/auth/whoami

auth.js
GET

Returns JSON with the username of the token owner as well as what scopes the token has access to.

## /api/auth/logout

auth.js
GET

Invalidates the token used to access the endpoint.