Wordnik — Account
Account — API-key telemetry and user authentication surface. 5 operations covering API-token quota status, authentication via GET or POST, current-user profile lookup, and the authenticated user's word-list inventory. Lead operation: return current API token status. Self-contained Naftiko capability covering one Wordnik business surface.
naftiko: "1.0.0-alpha2"
info:
label: "Wordnik — Account"
description: >-
Account — API-key telemetry and user authentication surface. 5 operations covering
API-token quota status, authentication via GET or POST, current-user profile lookup,
and the authenticated user's word-list inventory. Lead operation: return current API
token status. Self-contained Naftiko capability covering one Wordnik business surface.
tags:
- Wordnik
- Dictionary
- Account
created: "2026-05-29"
modified: "2026-05-29"
binds:
- namespace: env
keys:
WORDNIK_API_KEY: WORDNIK_API_KEY
WORDNIK_AUTH_TOKEN: WORDNIK_AUTH_TOKEN
capability:
consumes:
- type: http
namespace: "wordnik-account"
baseUri: "https://api.wordnik.com/v4"
description: "Wordnik — Account business capability. Self-contained, no shared references."
authentication:
type: apikey
key: api_key
value: "{{env.WORDNIK_API_KEY}}"
placement: query
resources:
- name: "account"
path: "/account.json"
operations:
- name: "getApiTokenStatus"
method: GET
description: "Return API token status."
inputParameters:
- { name: api_key, in: header, type: string, required: false, description: "Wordnik API key." }
outputRawFormat: json
outputParameters:
- { name: result, type: object, value: "$." }
- name: "authenticate"
method: GET
description: "Authenticate a user."
inputParameters:
- { name: username, in: path, type: string, required: true, description: "A confirmed Wordnik username." }
- { name: password, in: query, type: string, required: true, description: "The user's password." }
outputRawFormat: json
outputParameters:
- { name: result, type: object, value: "$." }
- name: "authenticatePost"
method: POST
description: "Authenticate a user via POST body."
inputParameters:
- { name: username, in: path, type: string, required: true, description: "A confirmed Wordnik username." }
- { name: body, in: body, type: object, required: true, description: "Password payload." }
outputRawFormat: json
outputParameters:
- { name: result, type: object, value: "$." }
- name: "getLoggedInUser"
method: GET
description: "Return the currently authenticated user."
inputParameters:
- { name: auth_token, in: header, type: string, required: true, description: "Valid user auth token." }
outputRawFormat: json
outputParameters:
- { name: result, type: object, value: "$." }
- name: "getWordListsForLoggedInUser"
method: GET
description: "Return the authenticated user's word lists."
inputParameters:
- { name: auth_token, in: header, type: string, required: true, description: "Valid user auth token." }
- { name: skip, in: query, type: integer, required: false, description: "Results to skip." }
- { name: limit, in: query, type: integer, required: false, description: "Maximum number of lists to return." }
outputRawFormat: json
outputParameters:
- { name: result, type: object, value: "$." }
exposes:
- type: rest
namespace: "wordnik-account-rest"
port: 8080
description: "REST adapter for Wordnik — Account. One Spectral-compliant resource per consumed operation, prefixed with /v1."
resources:
- path: "/v1/account/api-token-status"
name: "api-token-status"
description: "REST surface for API token status."
operations:
- method: GET
name: "getApiTokenStatus"
description: "Return API token status."
call: "wordnik-account.getApiTokenStatus"
with:
api_key: "rest.api_key"
outputParameters:
- { type: object, mapping: "$." }
- path: "/v1/account/authenticate/{username}"
name: "authenticate"
description: "REST surface for user authentication."
operations:
- method: GET
name: "authenticate"
description: "Authenticate a user."
call: "wordnik-account.authenticate"
with:
username: "rest.username"
password: "rest.password"
outputParameters:
- { type: object, mapping: "$." }
- method: POST
name: "authenticatePost"
description: "Authenticate a user via POST body."
call: "wordnik-account.authenticatePost"
with:
username: "rest.username"
body: "rest.body"
outputParameters:
- { type: object, mapping: "$." }
- path: "/v1/account/user"
name: "logged-in-user"
description: "REST surface for the current authenticated user."
operations:
- method: GET
name: "getLoggedInUser"
description: "Return the currently authenticated user."
call: "wordnik-account.getLoggedInUser"
with:
auth_token: "rest.auth_token"
outputParameters:
- { type: object, mapping: "$." }
- path: "/v1/account/word-lists"
name: "user-word-lists"
description: "REST surface for the user's word lists."
operations:
- method: GET
name: "getWordListsForLoggedInUser"
description: "Return the authenticated user's word lists."
call: "wordnik-account.getWordListsForLoggedInUser"
with:
auth_token: "rest.auth_token"
skip: "rest.skip"
limit: "rest.limit"
outputParameters:
- { type: object, mapping: "$." }
- type: mcp
namespace: "wordnik-account-mcp"
port: 9090
transport: http
description: "MCP adapter for Wordnik — Account. One tool per consumed operation, routed inline through this capability's consumes block."
tools:
- name: "check-api-token-status"
description: "Return API token status."
hints: { readOnly: true, destructive: false, idempotent: true }
call: "wordnik-account.getApiTokenStatus"
with:
api_key: "tools.api_key"
outputParameters:
- { type: object, mapping: "$." }
- name: "authenticate-user"
description: "Authenticate a user."
hints: { readOnly: true, destructive: false, idempotent: true }
call: "wordnik-account.authenticate"
with:
username: "tools.username"
password: "tools.password"
outputParameters:
- { type: object, mapping: "$." }
- name: "authenticate-user-post"
description: "Authenticate a user via POST body."
hints: { readOnly: true, destructive: false, idempotent: false }
call: "wordnik-account.authenticatePost"
with:
username: "tools.username"
body: "tools.body"
outputParameters:
- { type: object, mapping: "$." }
- name: "get-logged-in-user"
description: "Return the currently authenticated user."
hints: { readOnly: true, destructive: false, idempotent: true }
call: "wordnik-account.getLoggedInUser"
with:
auth_token: "tools.auth_token"
outputParameters:
- { type: object, mapping: "$." }
- name: "list-user-word-lists"
description: "Return the authenticated user's word lists."
hints: { readOnly: true, destructive: false, idempotent: true }
call: "wordnik-account.getWordListsForLoggedInUser"
with:
auth_token: "tools.auth_token"
skip: "tools.skip"
limit: "tools.limit"
outputParameters:
- { type: object, mapping: "$." }