For developers
Your lists, from a terminal.
The giftafari CLI calls the same operations as the app, over the REST API at https://api.giftafari.com/v1. It is in early access and not yet published to npm.Sign in to a group
giftafari auth login --server https://app.giftafari.comThe CLI prints a link and a code (on macOS it also opens the link). Approve the device for one gift group and the terminal finishes signing in. Each group you approve keeps its own credential: giftafari auth list shows them, and giftafari groups use <group-id> picks the one later commands use.
Credentials live in the macOS Keychain, or in ~/.config/giftafari/credentials.json (readable only by you) on other systems.
Sign in to your account
giftafari auth account --server https://app.giftafari.comAccount commands use a separate sign-in: groups list (every group you belong to), profile, notifications, export, and account closure.
Run commands
giftafari lists list
giftafari gifts list --data '{"listId":"…"}' --json
giftafari account export --jsonEvery command is giftafari <resource> <action>. Pass input as JSON with --data, and add --json for the full response envelope. Run giftafari --help for the complete list.
Each run of a create command makes something new. If a create times out, list the resource before running it again, or use the REST API with your own idempotency key.
Confirm sensitive changes
Lifecycle changes to a gift, list, person, or claim (such as trash or restore), removing a member, transferring ownership, leaving a group, revoking connections, and closing your account ask you to type yes first. In scripts, pass --yes instead. Closing your account also needs its confirmation field in --data.
When the CLI asks you to sign in again
The authorization expired, was revoked, or was made for an older API address. Run giftafari auth login again for a group, or giftafari auth account for account commands.
Related
The REST API guide covers tokens, writes, approvals, and scopes. Every endpoint is in the OpenAPI document.