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

# Create your first application

> Create, configure, and publish (optional) your first application.

export const Link = ({href, children, className, ...props}) => {
  const localizedHref = localizeLink(href);
  return <a href={localizedHref} className={className} {...props}>
      {children}
    </a>;
};

After you test Box APIs with the pre-built application in the <Link href="/guides/getting-started">Quick Start</Link>, create your own application in the Developer Console and configure it for your use case.

## Before you begin

Make sure you have:

* A Box developer account with access to the <Link href="https://cloud.app.box.com/developers/console">Developer Console</Link>
* A sense of how your application runs: as a **server** backend or a **user-facing** app (see <Link href="/guides/getting-started/plan-your-integration#choose-an-application-type">choose an application type</Link>)

<Note>
  On a free developer account, a default CCG application is created and authorized automatically. See <Link href="/guides/getting-started/free-developer-plan#default-application-and-authorization">default application and authorization</Link> on the free developer plan page. The steps below apply when you create additional applications or when an enterprise admin must authorize your app.
</Note>

## Create your first application

1. Go to the <Link href="https://cloud.app.box.com/developers/console">Developer Console</Link>.
2. Select **New App**.
3. Enter your application name.
4. Choose the application type: **Server** or **User**.
   * **Server**: Select the authentication method: **Client Credentials Grant (CCG)** or **JSON Web Token (JWT)**.
   * **User**: The authentication method is automatically set to **OAuth 2.0**.
5. Select **Create**.

After you create the application, Box opens the **Configuration** tab. Complete the settings in the following sections before you call production APIs.

## Configure the application

On the **Configuration** tab, set the options your application needs:

1. **App Access Level** — Controls whether the app can act only as its service account or also on behalf of enterprise users. See <Link href="/guides/authentication/client-credentials/client-credentials-setup#application-access">Application Access</Link> for Client Credentials Grant apps.
2. **Application Scopes** — Enable only the permissions your app requires. Add scopes before you authorize the app in the Admin Console.
3. **Additional Configuration** — Toggle advanced features such as **Generate User Access Tokens** when your server app must act as a specific user.
4. **CORS Domains** — Add domains if your application accesses Box resources from a browser on another origin.

<Warning>
  Changing scopes, access level, or advanced features after authorization of a CCG or JWT app requires an administrator to reauthorize the app in the Admin Console under **Integrations > Platform Apps**.
</Warning>

## App details and credentials

Still on the **Configuration** tab, open **App Details** to view and copy credentials:

* **Application status**
* **Service accounts** (for authorized server applications)
* **Client ID**, **Client Secret**, and **Developer Token**
* **Collaborators** (if you added any)
* **Properties**, including your user ID and enterprise ID

<Note>
  Your user ID and enterprise ID appear in the **Properties** section. To find IDs for other users, files, or folders, see <Link href="/guides/getting-started/locating-values">Locating IDs</Link>.
</Note>

Application **collaborators** are other Box users you invite to help configure the app in the Developer Console. Add them by email in **App Details** or from the **Options** menu on **My Platform Apps**. See <Link href="/guides/applications">applications</Link> for an overview.

<Note>
  **Free developer accounts:** You can add application collaborators who **already have a Box account** (for example, a teammate's developer account, personal account, or enterprise account). To collaborate with a larger team in an isolated environment, ask your Box admin about a <Link href="/guides/getting-started/sandbox">developer sandbox</Link> or <Link href="/guides/getting-started/free-developer-plan#upgrade-your-free-developer-plan">upgrade your plan</Link>.

  This is separate from **content collaborators** on files and folders. You can still invite existing Box users to content through the web app or <Link href="/guides/collaborations/share-content">collaborations API</Link>.
</Note>

### Other Developer Console tabs

After configuration, use the other tabs as needed:

* **Webhooks** — Register event triggers for your application
* **App Diagnostics** — Review recent API activity for the application

## Optional: Publish to Integrations

When your app is ready for customers, see <Link href="/guides/getting-started/plan-your-integration#publish-your-app">publish your app</Link> for the Developer Console submission flow and <Link href="/guides/applications/integrations">Box Integrations</Link> for the full checklist, assets, and partner review.

## What's next

* <Link href="/guides/authentication/select">Select an authentication method</Link> and wire it into your codebase
* <Link href="/guides/getting-started/sandbox">Developer sandbox</Link> to test before production deployment
* <Link href="/guides/getting-started/locating-values">Locating IDs</Link> for user, enterprise, file, and folder IDs used in API calls
* <Link href="/guides/getting-started/free-developer-plan#upgrade-your-free-developer-plan">Upgrade your free developer plan</Link> when you need more storage, higher limits, or additional features
