> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dojah.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Developers

> Your integration hub — manage API keys and apps, create and revoke API tokens, and subscribe to webhooks, all in one place.

The **Developers** page is where you wire Dojah into your product. It’s split into three tabs — [Configuration](#configuration), [API Tokens](#api-tokens), and [Webhooks](#webhooks) — with a link out to the full API **Documentation**.

<Warning>
  **Keep your secrets secret.** Your private key and API tokens grant access to your account — never expose them in client-side code or commit them to source control. Revoking a token or generating new keys takes effect immediately, so anything still using the old credential will stop working.
</Warning>

## Configuration

The **Configuration** tab holds your API keys and your apps. A badge shows whether you’re viewing **Production** or **Sandbox** keys — this follows your live/sandbox mode, so toggle modes to switch which set you see.

<img src="https://mintcdn.com/dojah/LZxS1bz_9Y9K9GSQ/images/dashboard-guide/developers-config.png?fit=max&auto=format&n=LZxS1bz_9Y9K9GSQ&q=85&s=f6c6f6d8525ebae8b85f49297c35c456" alt="The Developers Configuration tab showing API keys and the apps table" width="2880" height="1900" data-path="images/dashboard-guide/developers-config.png" />

| Element | What it does |
| - | - |
| Public key | Shown in full. Use **Copy** to grab it — it’s safe to use in client-side integrations. |
| Private key | Hidden by default. Select **Reveal key** and enter your password to view it, then **Copy**. Keep it secret. |
| Generate New Keys | Rotates your keys (password required). Existing keys are invalidated immediately. |

### Apps

An **app** represents a single integration — typically one product or service you’re connecting to Dojah. Each app has its own **App ID** and brand assets (a logo and primary color, used to style the verification experiences your users see), and your [API tokens](#api-tokens) and [webhooks](#webhooks) are each tied to a specific app. If you run more than one product, giving each its own app keeps their credentials, webhooks, and branding cleanly separate.

| Element | What it does |
| - | - |
| Create App | Sets up a new app with a name, logo, and brand color. Each app gets its own **App ID**. |
| Apps table | Lists your apps with their App ID and creation date. Use the **Edit** and **Delete** icons on a row to update or remove an app. |

## API Tokens

The **API Tokens** tab manages the tokens that authenticate your requests. Each token has a name and a masked **Token ID** — select the eye icon and enter your password to reveal it. Use **Create Token** to add one (give it a name and choose the app it belongs to).

<img src="https://mintcdn.com/dojah/LZxS1bz_9Y9K9GSQ/images/dashboard-guide/developers-tokens.png?fit=max&auto=format&n=LZxS1bz_9Y9K9GSQ&q=85&s=13aa92a514600c7708a52e3ab0433ad3" alt="The Developers API Tokens tab with inline Edit and Delete actions" width="2880" height="1900" data-path="images/dashboard-guide/developers-tokens.png" />

Manage an existing token with the two actions on its row:

| Action | What it does |
| - | - |
| ✎ Edit | Rename the token. Its ID stays the same. |
| 🗑 Delete | Revoke the token for good. Any application using it loses access immediately, so confirm nothing depends on it first. |

## Webhooks

The **Webhooks** tab lets you receive real-time event notifications. Select **Subscribe** to point an app at an endpoint: choose the app, enter your **Webhook URL**, and pick the service whose events you want.

<img src="https://mintcdn.com/dojah/LZxS1bz_9Y9K9GSQ/images/dashboard-guide/developers-webhooks.png?fit=max&auto=format&n=LZxS1bz_9Y9K9GSQ&q=85&s=d324684d4fd3493723059c948dd47e78" alt="The Developers Webhooks tab listing webhook subscriptions" width="2880" height="1900" data-path="images/dashboard-guide/developers-webhooks.png" />

| Column | What it shows |
| - | - |
| App Name | The app the webhook belongs to. |
| Environment | **Live** or **Sandbox**. |
| Service Type | The service whose events are delivered, e.g. KYC Widget or SMS. |
| Date Subscribed | When the subscription was created. |
| End Point | The URL events are sent to. |
| Actions | **Copy** the endpoint, **View** the subscription, or **Delete** it. |

## Frequently asked questions

<AccordionGroup>
  <Accordion title="Where do I find my Dojah API keys?">
    Open **Developers** under **Integrations** and stay on the **Configuration** tab. Your public key is shown in full; reveal the private key by selecting **Reveal key** and entering your password. The badge tells you whether you’re viewing Production or Sandbox keys — switch your live/sandbox mode to see the other set.
  </Accordion>

  <Accordion title="What is an app in Dojah, and what is it used for?">
    An **app** represents one integration — usually a single product or service you’re connecting to Dojah. It has its own **App ID** and brand assets (logo and primary color, used to style the verification experiences your users see), and your API tokens and webhook subscriptions are each linked to a specific app. Running several products? Give each its own app so their credentials, webhooks, and branding stay separate.
  </Accordion>

  <Accordion title="What’s the difference between API keys and API tokens?">
    Your **API keys** (public and private) are the core credentials for an environment and live on the Configuration tab. **API tokens** are named credentials you create on the API Tokens tab — handy when you want separate, individually revocable tokens for different uses. You can rename or revoke a token without touching your main keys.
  </Accordion>

  <Accordion title="How do I edit or delete an API token?">
    On the **API Tokens** tab, each token row has two icons at the end: **Edit** (the pencil) to rename it, and **Delete** (the trash) to revoke it. Deleting is permanent and takes effect immediately — anything using that token will lose access.
  </Accordion>

  <Accordion title="How do I set up a webhook in Dojah?">
    Go to the **Webhooks** tab and select **Subscribe**. Choose the app, enter the **Webhook URL** where events should be delivered, and pick the service whose events you want to receive. The new subscription appears in the table, where you can copy, view, or delete it.
  </Accordion>

  <Accordion title="What happens when I generate new keys?">
    Generating new keys rotates your credentials and **invalidates the existing ones immediately**. Any integration still using the old keys will start failing, so update your apps with the new keys right away. You’ll be asked for your password to confirm.
  </Accordion>
</AccordionGroup>


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