Skip to main content

Personal API-token management

Token-management operations require an already authenticated client. A newly created token is active immediately.

The plaintext analog-wakatime_live_<token_uuid>_<32-character-secret> value is returned only by creation. Listing tokens returns metadata, never the secret or its stored hash.

Create the client

import Analog_WakaTime_SDK

async with Analog_WakaTime_SDK.ApiClient(configuration) as api_client:
auth_api = Analog_WakaTime_SDK.AuthApi(api_client)

Create a token

import Analog_WakaTime_SDK

request = Analog_WakaTime_SDK.CreateApiTokenRequest(
name="reporting-script",
)
created = await auth_api.create_api_token(request)

# Save created.token securely now. It cannot be retrieved again.
print(created.api_token.uuid)
print(created.api_token.prefix)

Do not print created.token in production logs.

Optional expiration

import Analog_WakaTime_SDK
from datetime import datetime, timezone

request = Analog_WakaTime_SDK.CreateApiTokenRequest(
name="temporary-report",
expires_at=datetime(2099, 1, 1, tzinfo=timezone.utc),
)

Omit expires_at to create a token without an automatic expiration date.

List token metadata

tokens = await auth_api.get_api_tokens()

for token in tokens.api_tokens:
print(
token.uuid,
token.name,
token.prefix,
token.is_active,
token.expires_at,
token.last_used_at,
)

Disable a token

import Analog_WakaTime_SDK
from uuid import UUID

request = Analog_WakaTime_SDK.UpdateApiTokenRequest(is_active=False)
await auth_api.update_api_token(
token_uuid=UUID("00000000-0000-0000-0000-000000000000"),
update_api_token_request=request,
)

Enable a token again

import Analog_WakaTime_SDK
from uuid import UUID

request = Analog_WakaTime_SDK.UpdateApiTokenRequest(is_active=True)
await auth_api.update_api_token(
token_uuid=UUID("00000000-0000-0000-0000-000000000000"),
update_api_token_request=request,
)

Delete a token

from uuid import UUID

await auth_api.delete_api_token(
token_uuid=UUID("00000000-0000-0000-0000-000000000000"),
)

Deletion is permanent. Create a new token if an integration needs access again.

Rotation procedure

  1. Create a new named token.
  2. Store it in the integration's secret store.
  3. Confirm the integration can read a protected endpoint.
  4. Disable the old token.
  5. Delete the old token after the migration window.