Elk · Authentication Profile
Elk Authentication
Authentication
Elk declares 0 security scheme(s) across its OpenAPI definitions.
FediverseMastodonOpen-SourceSocial NetworkingSocial-MediaWeb-ClientProgressive Web AppAuthentication
Methods:
Schemes: 0
OAuth flows:
API key in:
Security Schemes
Source
Authentication Profile
generated: '2026-08-27'
method: derived
source: >-
Derived from Elk's own published MIT-licensed server source —
https://github.com/elk-zone/elk/blob/main/server/api/[server]/login.ts and
https://github.com/elk-zone/elk/blob/main/server/api/[server]/oauth/[origin].ts —
plus a live unauthenticated probe of https://elk.zone/api/list-servers on 2026-08-27.
Elk publishes no OpenAPI, so derive-authentication.py produced no profile (0 auth
profiles); this file was written by reading the deployed handlers instead.
provider: Elk
providerId: elk
api: Elk Client API
baseURL: https://elk.zone/api
summary: >-
Elk has no API keys, no accounts of its own, and no credential it issues. It is an
OAuth 2.0 CLIENT and a broker: it holds a per-instance OAuth application registration
for each Mastodon server a user signs into, sends the user to that server's own
/oauth/authorize screen, and exchanges the returned authorization code for an access
token at that server's /oauth/token. The bearer token that results belongs to the
Mastodon server, not to Elk. Nothing an integrator can obtain from Elk grants access
to anything.
securitySchemes:
- name: none
type: none
applies_to:
- GET /api/list-servers
description: >-
Unauthenticated. Verified live 2026-08-27: HTTP 200, application/json, with
access-control-allow-origin "*" — a public, CORS-open list of the Mastodon server
domains Elk offers in its sign-in picker.
- name: mastodon_oauth2
type: oauth2
flow: authorizationCode
authorizationUrl: https://{server}/oauth/authorize
tokenUrl: https://{server}/oauth/token
grant_type: authorization_code
response_type: code
scopes:
- read
- write
- follow
- push
applies_to:
- POST /api/{server}/login
- GET /api/{server}/oauth/{origin}
description: >-
Standard RFC 6749 authorization-code flow, but the authorization server is chosen
at runtime by the end user — {server} is whatever Mastodon-compatible host they
typed. Elk registers an OAuth application per (origin, server) pair and caches
client_id/client_secret/vapid_key server-side; the client_secret never reaches the
browser. On success the handler 302-redirects to /signin/callback carrying the
access token in the query string.
x-notes:
- >-
Client credentials are per-deployment. A self-hosted Elk registers its own
applications against each Mastodon server; there is no shared Elk client_id.
- >-
The handler recovers from an invalid_client error (the Mastodon-side OAuth app
having been deleted) by invalidating its cached registration and retrying once.
- name: admin_key
type: apiKey
in: query
parameter: key
applies_to:
- GET /api/{server}/clear
description: >-
A single shared operator secret (Nuxt runtimeConfig.adminKey) that authorises
deletion of a cached OAuth app registration. It is an operations control for
whoever runs the deployment, not a consumer credential — it is not issued, not
documented, and not obtainable. Compared with String equality; a wrong or missing
key returns HTTP 200 with {"status": false, "error": "incorrect key"} rather than
a 401/403.
token_handling:
storage: >-
Access tokens are held client-side in browser storage by the Elk application (see
app/composables/users.ts). Elk operates no user database.
transport: Query string on the /signin/callback redirect, then Authorization bearer to the Mastodon server.
revocation: >-
At the Mastodon server, not at Elk. A user revokes Elk under their own instance's
authorised-applications settings.
gaps:
- No published authentication documentation on docs.elk.zone; this profile is derived from source.
- No OpenAPI securitySchemes block exists to derive from.
- No /.well-known/oauth-authorization-server or oauth-protected-resource on elk.zone (both 404, 2026-08-27).
maintainers:
- FN: Kin Lane
email: kin@apievangelist.com
Work with this as data
Every security artifact here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for security posture
4 MCP tools reach this
find_securityBrowse and filter every security artifact in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This security artifact
curl "https://apis.io/api/v1/security/elk-authentication"
All security posture
curl "https://apis.io/api/v1/security?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.