> ## Documentation Index
> Fetch the complete documentation index at: https://invopop-fi-party-endpoints.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Authentication guide

> After completing this quick start guide you'll have generated and tested an authentication token that can be used in all subsequent requests to the Invopop API.

## Requirements

You don't need to be a developer to use this guide, but you will need to have a
bit of experience using the command line and know how to create a text file.
For sending requests to the server we use the "curl" command, and for easy
visualization of the response, the "jq" command — both included with most
operating systems. Install "curl" and "jq" in case they are not installed
in your system.

## Create an account

Head over to the [Invopop Console](https://console.invopop.com) and follow
the steps to either log in or create an account.

## Get a token

1. Once inside the console, click **Settings**.

2. Enter the <kbd>API Keys</kbd> section.

3. Tap the <kbd>New API Key</kbd> button.

4. Provide a name for future reference, and any notes perhaps describing a use
   case, then click <kbd>Save</kbd>.

5. You'll be presented with a new token in text and a button to copy the
   details. Tap the <kbd>copy</kbd> button, and paste the token somewhere safe.

<Tip>
  Invopop uses JSON Web Tokens. If you're interested in seeing the contents,
  head over to [JWT.io](https://jwt.io) and paste your token to see what's
  inside.
</Tip>

## Test

To test our new token, open the Terminal and prepare our environment using the
following command, replacing `<TOKEN>` with the actual token generated from the
Invopop console in the last step:

```bash theme={"system"}
export INVOPOP_TOKEN="<TOKEN>"
```

This saves us from copying and pasting the token every time we need to use it,
and we can now make a call to the Invopop Ping service:

```bash theme={"system"}
curl -H "Authorization: Bearer $INVOPOP_TOKEN" https://api.invopop.com/utils/v1/ping | jq .
```

Response:

```json theme={"system"}
{
  "ping": "pong"
}
```

This ping call doesn't do anything useful, other than ensuring that your
connection and credentials are valid.

<Note>
  Most examples throughout this documentation will assume you have set the
  `$INVOPOP_TOKEN` variable.
</Note>

<Prompt description="Have your agent wire the token into this project and verify it." icon="key" actions={["copy", "cursor"]}>
  Read [https://docs.invopop.com/guides/authentication.md](https://docs.invopop.com/guides/authentication.md). Add Invopop API access to this project: read the token from the INVOPOP\_TOKEN environment variable or this project's secrets mechanism, never from source code, and send it as an Authorization Bearer header to [https://api.invopop.com](https://api.invopop.com). Implement a small client with a ping method that calls GET /utils/v1/ping and returns true on pong, plus a helper that fetches a UUID from GET /utils/v1/uuid?v=7 for idempotent PUT requests. Keep one client instance per workspace, because each Invopop workspace has its own token. Add a test that calls ping when the variable is set and is skipped otherwise.
</Prompt>

## Conclusion

You've now managed to authenticate with the Invopop API using a generated token.

<Card title="Participate in our community" icon="forumbee" href="https://community.invopop.com" arrow="true" horizontal>
  Ask and answer questions about authentication →
</Card>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.