Elk · OAuth Scopes

Elk OAuth Scopes

OAuth 2.0 derived

Elk uses OAuth 2.0 but publishes no discrete scopes — access is governed by the grant itself (e.g. client-credentials or role-based authorization) rather than per-scope consent.

This index is generated from the provider’s OpenAPI security definitions (and, where available, its documented scope reference) and refreshes on every APIs.io network build. Browse every provider’s scopes at scopes.apis.io.

FediverseMastodonOpen-SourceSocial NetworkingSocial-MediaWeb-ClientProgressive Web AppAuthentication
Scopes: 0 Flows: Method: derived

Scopes (0)

Elk implements OAuth 2.0 but publishes no discrete scopes — access is governed by the grant itself (client-credentials or role-based authorization) rather than per-scope consent.

THESE ARE MASTODON'S SCOPES, NOT ELK'S. Elk does not define a permission vocabulary; it requests a fixed, non-configurable set of top-level Mastodon scopes on every sign-in and never asks for less. That is a real finding about Elk's consent posture: a user signing into Elk cannot grant read-only access, because the client hard-codes write, follow and push alongside read. There is no incremental or per-feature consent.

Source

OAuth Scopes

elk-scopes.yml Raw ↑
generated: '2026-08-27'
method: derived
source: >-
  Scope string read verbatim from Elk's published source —
  https://github.com/elk-zone/elk/blob/main/server/api/[server]/login.ts (scope: 'read
  write follow push') and the identical scope on the token exchange in
  server/api/[server]/oauth/[origin].ts. Scope semantics from the Mastodon OAuth scopes
  reference, https://docs.joinmastodon.org/api/oauth-scopes/ .
  derive-oauth-scopes.py found 0 oauth2 schemes because Elk publishes no OpenAPI.
provider: Elk
providerId: elk
docs: null
authorizationUrl: https://{server}/oauth/authorize
tokenUrl: https://{server}/oauth/token
note: >-
  THESE ARE MASTODON'S SCOPES, NOT ELK'S. Elk does not define a permission vocabulary;
  it requests a fixed, non-configurable set of top-level Mastodon scopes on every sign-in
  and never asks for less. That is a real finding about Elk's consent posture: a user
  signing into Elk cannot grant read-only access, because the client hard-codes write,
  follow and push alongside read. There is no incremental or per-feature consent.
requested_scopes:
  - name: read
    granted: always
    description: Read all account data — timelines, statuses, notifications, lists, bookmarks, filters, search.
  - name: write
    granted: always
    description: Create, edit and delete statuses and media; update account settings, lists, filters and bookmarks.
  - name: follow
    granted: always
    description: Manage relationships — follow, unfollow, block, mute, and domain blocks.
  - name: push
    granted: always
    description: Subscribe to and receive Web Push notifications for the account.
granularity:
  incremental_consent: false
  per_feature_scopes: false
  read_only_option: false
  evidence: >-
    The scope string is a hard-coded literal in both the authorize-URL builder and the
    token exchange. No code path narrows it and no setting exposes it.
maintainers:
  - FN: Kin Lane
    email: kin@apievangelist.com

Work with this as data

Every scope set 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 oauth scopes

4 MCP tools reach this
  • find_scopesBrowse and filter every scope set 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.
All 92 tools →

Call it yourself

curl for this page
This scope set
curl "https://apis.io/api/v1/scopes/elk-scopes"
All oauth scopes
curl "https://apis.io/api/v1/scopes?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.