> ## 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 a Platform App

export const MultiRelatedLinks = ({sections = []}) => {
  if (!sections || sections.length === 0) {
    return null;
  }
  return <div className="space-y-8">
      {sections.map((section, index) => <RelatedLinks key={index} title={section.title} items={section.items} />)}
    </div>;
};

export const RelatedLinks = ({title, items = []}) => {
  const getBadgeClass = badge => {
    if (!badge) return "badge-default";
    const badgeType = badge.toLowerCase().replace(/\s+/g, "-");
    return `badge-${badge === "ガイド" ? "guide" : badgeType}`;
  };
  if (!items || items.length === 0) {
    return null;
  }
  return <div className="my-8">
      {}
      <h3 className="text-sm font-bold uppercase tracking-wider mb-4">{title}</h3>

      {}
      <div className="flex flex-col gap-3">
        {items.map((item, index) => <a key={index} href={item.href} className="py-2 px-3 rounded related_link hover:bg-[#f2f2f2] dark:hover:bg-[#111827] flex items-center gap-3 group no-underline hover:no-underline border-b-0">
            {}
            <span className={`px-2 py-1 rounded-full text-xs font-semibold uppercase tracking-wide flex-shrink-0 ${getBadgeClass(item.badge)}`}>
              {item.badge}
            </span>

            {}
            <span className="text-base">{item.label}</span>
          </a>)}
      </div>
    </div>;
};

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

A Platform App allows for interaction with our 150+ endpoints.
For example, downloading/uploading, searching, applying metadata and more.

## Prerequisites

Access to the [Developer Console][dev-console].

## Create a Platform App

1. Navigate to the [Developer Console][dev-console].
2. Select **Create Platform App**.
3. Provide a name for your app.
4. Select the authentication method you want to use.
5. Click **Create App**.

## Configure application settings

After you create a Platform App, the settings screen is displayed.

### General settings

* **App Name** - the name you set up during the app creation, you can change it here if needed.
* **App Description** - provide a description for your app (optional).
* **Contact Email** - this is set to the developer of the application by default.
  Keep in mind that once you publish your app, this email is publicly visible to Box users
  who view your app in the <Link href="/guides/applications/integrations">Integrations</Link>. We recommend to change it to a
  support email address, so that users can reach out to support in case of any issues with
  the integration.

### Configuration

* **Purpose** - select the purpose of your app from the drop-down list.
  Depending on the option you choose, you might need to specify further details.

| Purpose                           | Details                                                                                                                                  |
| --------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| **Automation**, **Custom Portal** | Specify if the app is built by a customer or partner.                                                                                    |
| **Integration**                   | Specify the integration category, external system name if you're integrating with one, and if the app is built by a customer or partner. |
| *Other*                           | Specify the app purpose and if it is built by a customer or partner.                                                                     |

* **Authentication Method** - choose how your app will authenticate to the Box APIs.

Depending on the authentication method you choose, you need to specify further details.

| Authentication Method        | Details                                                                              |
| ---------------------------- | ------------------------------------------------------------------------------------ |
| **OAuth 2.0**                | Specify the client ID and client secret.                                             |
| **JWT**                      | Add a public key or generate a public/private key pair. Choose the app access level. |
| **Client Credentials Grant** | Specify the client ID and client secret. Choose the app access level.                |

* **Developer Token** - a developer token is created automatically when you create a Platform App.
* **Application Scopes** - choose the scopes you want to grant to your app. See the <Link href="/guides/api-calls/permissions-and-errors/scopes">scopes guide</Link> for detailed information on each option.
* **Advanced Features** - enable the advanced features your application requires.
* **CORS Domains** - add the domains you want to allow requests from.

[dev-console]: https://app.box.com/developers/console

<RelatedLinks
  title="RELATED GUIDES"
  items={[
{ label: translate("Select Auth Method"), href: "/guides/authentication/select", badge: "GUIDE" }
]}
/>
