---
title: "API Dashboard"
url: "https://docs.signnow.com/docs/account"
type: "page"
section: "Documentation"
slug: "account"
---

# API Dashboard

# SignNow API dashboard: monitor and manage your integrations

Create API applications and keys, read request logs, manage webhooks, and track invite usage.

After registering for a [free development account](https://www.signnow.com/api) and verifying your email address, your SignNow account will be ready.

To access the API dashboard from your SignNow account, click the **API** icon (`</>`) in the top-right corner.

![api-dashboard-access-header-icon.png](/reference-assets/images/API%20dashboard/new_onboarding/api-dashboard-access-header-icon.png)

The API dashboard provides a centralized hub for developers to manage integrations. Key features include:

✅ [**Overview**](/docs/account#overview): Send a test signature invite and copy ready-made code samples.

✅ [**Apps and Keys**](#apps-and-keys): Create and manage your API applications and keys.

✅ [**Logs**](#logs): Monitor API request logs for troubleshooting.

✅ [**Webhooks**](#webhooks): View, create, and manage webhook subscriptions and events. 

✅ [**Plan Usage**](#plan-usage): Track your API usage and signature invite limits.

✅ [**Email Notifications**](#api-email-notifications): Configure API-related email notifications.

✅ **Developer Tools**: shortcuts to the developer resources — the **Quickstart Guide**, which walks you through sending your first document for signature in three steps, and the **API Helper MCP**, an MCP server that lets an AI coding assistant look up the SignNow API reference while you build. Plus the API Reference, Postman collections, GitHub, sample apps, and SDKs.

## Overview

**Overview** is the landing page after you sign up, where you can explore the SignNow API at a glance. Your first application and API key are created for you, so you can send a signature invite before writing any code.

- **Test Your API Key** — click **Send Test Invite** and SignNow creates a document and emails you an invite to sign it. About a minute end to end. **Learn more about how invites work** opens the **Quickstart Guide**.
- **Code sample** — the same request in your language. Pick one from the selector and copy it.
- **Try Sample Apps** — working proofs of concept to start from. **See All Apps** lists them all.

![dashboard_overview_upd.png](/reference-assets/images/API%20dashboard/new_onboarding/dashboard_overview_upd.png)

## Apps and Keys

**Apps and Keys** lists your applications. Your first application is created for you in **Development mode**.

- **Mode** — **Development** or **Live**. See [the comparison below](#create-an-application).
- **Status** — whether the application is active. **Deactivate** switches it off; a deactivated application stops serving API requests.
- **API Keys** — how many keys the application currently has.
- **Owner** — the account the application belongs to. On a Site License or a multi-user account, filter by **All Owners** to see a specific teammate's applications.

Search by application name, or filter by mode and owner. **Go Live** switches a Development application to Live mode. **More (...)** opens the rest of the actions for an application: **Details**, **Go Live**, **Deactivate**, **Rename**, and **Delete**.

![dashboard_add_app_upd.png](/reference-assets/images/API%20dashboard/new_onboarding/dashboard_add_app_upd.png)

### Create an application

Click **Add Application**. Without a free trial or active subscription, the application is created in **Development mode**. With either, you can choose **Development** or **Live mode**.

| | 🚧 App in Development mode | 🚀 App in Live mode |
|---|---|---|
| **Purpose** | Test your application and the SignNow API for free. You can seamlessly switch to **Live mode** when ready. | Run your application in production with legally binding invites and branding. |
| **Availability** | For all accounts | Requires an API free trial, an active API subscription, or a Site License |
| **Signed PDFs** | Include watermarks and are not legally binding | Legally binding, customizable with your company branding |
| **API requests** | Up to 500 per hour | Up to 1,000 per hour by default (see [API rate limits](#api-rate-limits)) |
| **Signature invites** | Up to 500 without an active plan or trial. With an active plan or trial, invites sent in Development mode don't count toward your plan limit. | According to your plan |
| **Webhooks** | Cannot be created without an active plan or trial | Real-time notifications via webhook subscriptions |
| **Email notifications** | Cannot be activated without an active plan or trial | Available |

Before switching from **Development** to **Live mode**, you don't need to get new tokens or keys, transfer settings, create a new app, etc. All your application data will be automatically transferred.

> [!WARNING]
> Once an application is switched to **Live mode**, it cannot be reverted to **Development mode**.

### Application details page

Click an application to open its details page, which shows the owner, creation date, mode, and status. Rename it with the pencil icon, switch it to Live with **Go Live**, or use **More (...)** to deactivate or delete it.

> [!WARNING]
> If you delete your app, the integration with this app will be permanently stopped.

Credentials sit on two tabs: **API Keys** and **OAuth 2.0**. To send API requests, authorize your application with one of them — an API key passed in the request headers, or an access token obtained through the OAuth 2.0 flow. A refresh token gets you a new access token without repeating that flow. For the full flows, see [Authentication](/docs/authentication).

#### API keys

An API key is generated automatically when the application is created. Click the eye icon to reveal it, the copy icon to copy it, and use it in the `Authorization` header after **Bearer**:

```json
--header 'Authorization: Bearer {{API_key}}
```

**Create New Key** adds another. You can create an unlimited number of keys and use any of them for any API request; the trash icon deletes one.

> [!WARNING]
> You can generate an API key only for an active application. Deleting a key immediately stops any application using it from working.

![dashboard_api_keys_upd.png](/reference-assets/images/API%20dashboard/new_onboarding/dashboard_api_keys_upd.png)

Learn more about [API keys](/docs/authentication#generate-an-api-key).

#### OAuth 2.0

The **OAuth 2.0** tab holds four values, each with a copy icon:

- **Basic Authorization Token** — use it to [generate an access token](/docs/oauth2/operations/post-oauth2-token).
- **Application ID** — identifies the application.
- **Client ID** and **Secret Key** — your application's OAuth 2.0 credentials.

> [!WARNING]
> Never share your access token publicly. Anyone who has it can access your account.

![dashboard_oauth_upd.png](/reference-assets/images/API%20dashboard/new_onboarding/dashboard_oauth_upd.png)

Learn more about an [access token](/docs/authentication#generate-access-token-bearer-token).

## Logs

**Logs** lists every API call your applications make, with the application name, date, method, URL, and response status. **Refresh** reloads the most recent calls, and clicking a log entry opens its details page.

**Add filters** opens the **Filters** panel, where you can narrow the list by application, owner, date range, method, URL, and status. Each section shows how many values you have selected. Click **Apply** to filter the list.

To get automated error reports in your inbox, click **Go to Email Notifications** on the **Receive Error Reports via Email** banner. See [API email notifications](#api-email-notifications).

![dashboard_logs_upd.png](/reference-assets/images/API%20dashboard/new_onboarding/dashboard_logs_upd.png)

## Webhooks

> [!NOTE]
> An API free trial, an active API subscription, or a Site License is required to create webhook subscriptions.

**Webhooks** has two tabs: **Subscriptions**, your event subscriptions, and **Events History**, the delivery log for all of them. **How it works?** opens the [webhooks guide](/docs/guides-webhooks).

### Subscriptions

Each subscription shows its application, event name, status, creation date, and owner, plus:

- **Entity ID** — the user, document, or document group the subscription watches.
- **Callback URL** — where SignNow sends the payload when the event fires.
- **Events count** — how many events have fired for this subscription so far.

Search by entity ID or callback URL, and use **Add filters** to narrow by application, event, date, and status. Events are grouped there by entity type — **User**, **Document**, and **Document Group** — so you can expand just the one you need. Click a column heading to sort by it and again to reverse the order; the default is newest first.

Click a subscription, or **More (...)** > **Open Event History**, to open its own delivery log.

> [!WARNING]
> You can view event subscriptions created with both Webhooks 1.0 and Webhooks 2.0. However, Webhooks 1.0 is deprecated and no longer supported.

![dashboard_subscriptions_upd.png](/reference-assets/images/API%20dashboard/new_onboarding/dashboard_subscriptions_upd.png)

#### Webhook ownership on a Site License

Every user on a Site License subscription can create webhooks and manage their own: activate, deactivate, unsubscribe, and resend events.

The subscription owner sees all webhooks created under the subscription — the **Owner** column on both tabs shows each webhook's owner. Webhooks can only be managed by the user who created them; for webhooks owned by someone else the management actions are unavailable: *Only the event subscription owner can edit this webhook*.

### Events history

**Events History** logs every delivery attempt across all your subscriptions, with the application, event name, entity ID, response status code, and start time.

Search by entity, initiator, or callback URL. The **initiator ID** is the user who triggered the webhook — for `user.document.update`, the user who changed the document. **Add filters** narrows by application, event, entity type, response status code, and start time. Applied filters appear as chips above the list, where **Reset All Filters** clears them and **Edit Filter** changes them.

![dashboard_event_history_upd.png](/reference-assets/images/API%20dashboard/new_onboarding/dashboard_event_history_upd.png)

Opening a single subscription shows its configuration above its own delivery log — event, request method, entity type, callback URL, status, and owner, with **Show More** revealing retries number, delay, additional payload data, and the HMAC signature.

![dashboard_filter_single_event_upd.png](/reference-assets/images/API%20dashboard/new_onboarding/dashboard_filter_single_event_upd.png)

#### Event details

Click an event to open **Event details**: response status code, duration, request start and end time, and the full **Request headers** and **Request content**, each with **Copy Code**.

![dashboard_event_details_upd.png](/reference-assets/images/API%20dashboard/new_onboarding/dashboard_event_details_upd.png)

### Create a webhook subscription

To create a webhook event subscription, you need a publicly available callback URL. This is the URL where SignNow will send event data.

> [!TIP]
> For testing purposes, you can use a URL from an online webhook test tool to receive and check the payload.

1. Click **Create Webhook**.
2. Insert your callback URL and select **Validate link**. The host of the link must be available.
3. Select the entity type (user, document, or document group). You can choose only one entity for one subscription.
4. If the entity type is a document or document group, insert its ID. To find the ID, go to **Documents** > **More (...)** next to the document or document group, and select **Copy ID** from the dropdown.
5. Select the event or events that should trigger the webhook. See the [full list of events](/docs/guides-webhooks#entity-events).
6. (Optional) Under **Additional Settings**:
    - Enable **access tokens** or **custom metadata** in the payload. Metadata is linked via API and not visible to signers.
    - Set up an **HMAC signature** for payload verification. Enter your own authentication key or click **Generate New Key** to create one, then copy and save the key.
    > Generating a new key replaces any existing HMAC signature for this subscription.
    - **Retries Number**: how many times to retry on 5xx errors, from 1 to 10.
    - **Delay**: seconds between the event firing and the callback being sent, from 0 to 100.
7. Click **Create**.

![dashboard_create_webhooks_upd.png](/reference-assets/images/API%20dashboard/new_onboarding/dashboard_create_webhooks_upd.png)

### Retries

If your webhook event was unsuccessful, SignNow runs [automatic retries](/docs/guides-webhooks#retries).

After automatic retries are exhausted, the failed event stays in **Events History** and you can manually resend it — as long as the subscription is still active. Go to **Events History** > **More (...)** > **Resend**, or click **Resend** on the **Event details** page.

Resending triggers your webhook once, and a successful resend updates the event's status. If it fails again, **Event details** tells you why: **Response status code** is the HTTP error your callback URL returned, and **Response content** carries the error `code` and `message`. Fix the problem on your side before resending.

> [!NOTE]
> If you are a Site License owner, you cannot resend webhooks for users managed under your subscription.

### Deactivate and unsubscribe

To stop your application from listening for an event subscription, click **More (...)** next to it on either tab and select **Deactivate Event** to pause it without deleting, or **Unsubscribe** to remove it permanently.

Learn more about [webhooks](/docs/guides-webhooks).

## Plan usage

**Plan Usage** shows your API plan statistics for applications in **Development** and **Live mode**. **Total Signature Invites Sent** is how many invites your plan allows, how many you have sent, and how many remain until the plan expires. Your plan name sits alongside it.

> [!NOTE]
> For users without a free trial or active subscription, only **Development mode** statistics are shown.

> [!NOTE]
> If you have a free trial or active subscription, signature invites sent in **Development mode** won’t count toward your limit.
>
> If you don’t have a free trial or active subscription, you can send up to 500 signature invites in **Development mode**.

Different **request types** count towards your signature invites total:

| Request Type | Description | How We Charge |
|--------------|-------------|---------------|
|  [Invite to Sign](/docs/document-field-invite/operations/post-document-doc-id-invite)      | An invite to sign a document is sent via email. The document has fields that need to be completed. The invite is role-based: you can set up a multi-step process with different people processing a document at different steps. |  Charging applies per invite sent. If multiple signers are included in one invite, it counts as a single invite. |
| [Signing Link](/docs/signing-link/operations/create-signing-link)       | A link to the document that requires a signature is generated. | Charging applies when the last signer completes the signing process (if there is more than one signer). |
| [Freeform Invite](/docs/doc-freeform-invite/operations/post-freeform-document-id-invite)       | An email invitation to sign a document/document group without predefined fields. Signers can place their signature anywhere in the document. | **For a document**: You can add one signer per invite. Charging applies per invite sent. If you send a freeform invite to multiple signers, each invite is charged separately.<br>**For a document group**: You can add multiple signers in a single invite. Charging applies per invite sent. |
|   [Bulk Invite](/docs/template/operations/bulk-invite)     | Invites to sign a document are sent to multiple signers simultaneously. Each recipient will receive their own copy of the document to fill out and sign. Documents are generated from a template. | Charging applies per invite sent (for each record in the CSV file, which contains signers' roles, emails, and document names). |
|   [Embedded Invite](/docs/document-embedded-signing/operations/create-embedded-signing-invite)     | A link to sign a document is generated and you can embed it into your website. | Charging applies per invite sent (via a link or email), even if multiple signers are included in one invite. |
|   [Document Group Invite](/docs/doc-group-field-invite/operations/invite-to-sign-document-group)     | An invite to sign a document group is sent via email. Documents have fields that need to be completed. The invite is role-based: you can set up a multi-step process with different people processing documents at different steps. | Charging applies per invite sent. If multiple signers are added to a document group invite, it counts as a single invite. |
|   [Document Group Signing Link](/docs/signing-link/operations/post-v2-document-group-document-group-id-signing-links)     | A link to the document group that requires a signature is generated. | Charging applies when the first signer completes the signing process (if there is more than one signer). |
|   [Document Group Freeform Invite](/docs/doc-group-freeform-invite/operations/post-v2-document-groups-document-group-id-free-form-invites)     | An email invitation to sign a document group without predefined fields. Signers can place their signature anywhere in the documents. | Charging applies per invite sent. If you send a freeform invite to multiple signers, each invite is charged separately. |
|   [Embedded Group Invite](/docs/doc-group-embedded-signing/operations/create-embedded-invite-document-group)    | A link to sign a document group is generated and you can embed it into your website.| Charging applies per invite sent (via a link or email), even if multiple signers are included in one invite. |

Two tabs show your usage. **Invite Logs** lists every signature invite sent during the billing period, for the last 30 days. **Stats per month** groups the invite counts by month and type.

Each log shows the request type, where it came from, a description, the date, and the app mode. **Add filters** narrows the list by date, request type, app mode (**Live** or **Development**), and **Request From** — **API**, **Web**, or **Integration**. For **Web** you can select up to 50 seats to filter by.

![dashboard_plan_usage_upd.png](/reference-assets/images/API%20dashboard/new_onboarding/dashboard_plan_usage_upd.png)

Click a log entry to open its details: the method, URL, status, owner, and the **Request Query Parameters**, **Request Body**, and **Response Body**, each with **Copy Code**.

> [!NOTE]
> Log details are available for invites sent via the API. Invites sent from the web application or an integration are listed without details.

![dashboard_invite_log_details_upd.png](/reference-assets/images/API%20dashboard/new_onboarding/dashboard_invite_log_details_upd.png)

Click **Generate and Download Report** to build an XLSX report of your signature invites for a date range and app.

#### Manage subscription plan

**Invoices** and **Manage subscription**, next to your plan name, both open the **Manage subscription** page.

**Subscription** shows your current plan with its status, billing frequency, start and expiration dates, and seats usage. **Past subscriptions** lists your earlier plans. **User history** and **Billing** are in the left panel.

The subscription owner can also add seats and transfer or cancel the subscription.

![dashboard_plan_usage_subscription_upd.png](/reference-assets/images/API%20dashboard/new_onboarding/dashboard_plan_usage_subscription_upd.png)

## Subscription plans

SignNow API offers flexible subscription plans tailored to your business needs. Choose a plan based on the estimated annual number of signature invites sent to recipients.

<!-- theme: warning -->

> [!NOTE]
> SignNow API plans are separate from SignNow business plans: an active Business or Enterprise plan for the web application does not include API access. API access is included with a [paid API plan](https://snseats.signnow.com/purchase/api/pricing), an [API free trial](https://snseats.signnow.com/purchase/api/pricing), or a [Site License](https://snseats.signnow.com/purchase/business_plans/pricing), which combines the web application and the API. On a Site License, make sure all API users are added to the subscription plan, as described in the [Go-live checklist](/docs/go-live-checklist).

When you register for a free development account, you can create applications and test the SignNow API features as long as you need. 

> [!WARNING]
> The signatures you collect in **Development mode** are not legally binding.

When you are ready to go live with your application, start a **free trial** — it includes all paid features, 250 signature invites risk-free ($500 value), and automatic volume discounts as your plan grows.

> [!NOTE]
> Unused invites expire after one year. You won’t be charged if you don’t use them.

Paid plans are priced by the number of signature invites you send per year. For the current plans and their limits, see [API pricing](https://snseats.signnow.com/purchase/api/pricing). If none of them fit, contact sales.

## API email notifications

> [!NOTE]
> An API free trial, an active API subscription, or a Site License is required to use email notifications.

**Email Notifications** sends alerts about your API usage and performance to your **Account Email** and to any **Additional Emails** you add. Each address has its own preferences and its own toggle, so you can pause an address without removing it.

For an existing address, **More (...)** offers **Change Email** and **Remove**.

![dashboard_email_notifications_upd.png](/reference-assets/images/API%20dashboard/new_onboarding/dashboard_email_notifications_upd.png)

Click **Add Emails** to add recipients — one address or several at once, up to 15 — and set their preferences in the same dialog.

![dashboard_add_emails_upd.png](/reference-assets/images/API%20dashboard/new_onboarding/dashboard_add_emails_upd.png)

### Manage notifications

**Manage Notifications** opens the preferences for one address, grouped into **Usage and Subscription**, **Webhooks**, and **API Reports**. Tick a group to enable all of its notifications, or pick individual ones.

**Usage and Subscription**

- Your subscription expires in a set number of days — the default is 7.
- You have used a set percentage of your paid signatures — the default is 80%.
- Your subscription has expired.
- Your subscription was renewed or updated.
- Your subscription invite limit was exceeded.

**Webhooks**

- A webhook unsubscribed automatically after too many errors: 30 or more in the past hour.
- A webhook is about to unsubscribe: 10 or more errors in the past 10 minutes.

**API Reports**

- **Log error report** — scheduled reports of `4xx` and `5xx` errors. Choose the applications, the status codes, the time period, and the scheduled time.
- **Webhook error report** — a report when errors pass a threshold. **Number of Errors** offers more than `5`, `10`, `25`, or `50`, and **Error Frequency** covers `1`, `2`, `3`, `4`, `6`, `12`, or `24` hours. The report uses events from all your active webhook subscriptions by default; **Select Callback URL** narrows it to one subscription.

![dashboard_manage_notifications_upd.png](/reference-assets/images/API%20dashboard/new_onboarding/dashboard_manage_notifications_upd.png)

Each email includes an unsubscribe link. If a recipient unsubscribes, the API dashboard settings update automatically.

## **API rate limits**

SignNow has established API call efficiency guidelines for the reliability and stability of both **Development** and **Live** modes. To ensure the operational efficiency of the system, each application has an API rate limitation set on the number of calls per hour to maintain an effective load balance.

Every new application has a default limit of 1,000 requests per hour (500 requests in **Development mode**). Each API request receives the following parameters in the response header:

```
X-RateLimit-Limit => count of number of allowed requests per this hour
X-RateLimit-Remaining => count of number of remaining requests per this hour
X-RateLimit-Reset => timestamp, when the remaining number will be reset
```
If the limit of requests per hour is exceeded, the user will receive the 429 error code along with the following message: 

```
“You exceeded the rate limit of {limit} API requests per hour”.
```

If your application consistently exceeds 1,000 calls per hour, you can request an increased limit by contacting [SignNow support](https://support.signnow.com) for assistance.  


---
*Full page: https://docs.signnow.com/docs/account*
