> For the complete documentation index, see [llms.txt](https://bugpilot.gitbook.io/api-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://bugpilot.gitbook.io/api-docs/sdk-js/getting-started.md).

# Getting Started

This page helps you understand what's the SDK for and how to start generating bug reports with it.

## Overview

The [Bugpilot](https://www.bugpilot.io) SDK for JavaScript is an easy way to start bug reporting from your app front-end.

{% hint style="info" %}
If you are looking for a way to start screen recording, or collect bug reports, from your app back-end, from a server-side flow, check the [HTTP API](/api-docs/http-api/authentication.md) instead.
{% endhint %}

## Prerequisites

To get started with the SDK, you must follow these steps:

1. [Signup](https://dash.bugpilot.io/signup) for Bugpilot
2. [Install the Bugpilot tracking code](https://docs.bugpilot.io/en/articles/6389274-installing-the-bugpilot-script) to your web app
3. **Recommended.** Identify users

## Using the SDK

The SDK methods are available on the global Bugpilot object.&#x20;

#### Accessing the Bugpilot object

By default, the Bugpilot tracking code loads asynchronously, to minimize the impact on your pages performance. Before calling any SDK method, make sure the page has finished loading.

**For traditional apps:**&#x20;

{% code overflow="wrap" lineNumbers="true" %}

```javascript
function doSomethingWithBugpilot() {
  window.Bugpilot.saveReport({
    source: "feedbackWidget",
    userProvidedDescription: `Feedback: ${feedback}`,
  });
}

window.addEventListener('load', doSomethingWithBugpilot);
if (document.readyState === 'complete') { doSomethingWithBugpilot(); }
```

{% endcode %}

**For Single-Page-Apps:**\
Call the SDK methods after your app has initialized and authenticated the users. You may also want to use the Optional Chaining operator to avoid throwing errors in case you call SDK methods while Bugpilot is not yet available:

```javascript
window.Bugpilot?.saveReport?.({
  source: "feedbackWidget",
  userProvidedDescription: `Feedback: ${feedback}`,
});
```

## SDK Methods

Here's what you can do with the SDK for JavaScript:

{% content-ref url="/pages/oZ44utzkKjDU1k3jPUaO" %}
[Saving Bug Reports](/api-docs/sdk-js/getting-started/saving-bug-reports.md)
{% endcontent-ref %}

## Need help?

Our team is always happy to chat with you! Talk to us using the chat widget in the bottom-right corner of your Bugpilot dashboard.
