> ## 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.

# Platform App

export const SignupCTA = ({children}) => {
  return <div className="flex flex-wrap items-center gap-4 p-5 rounded-lg border border-gray-200 dark:border-gray-700 my-6" style={{
    background: "linear-gradient(135deg, rgba(0, 97, 213, 0.06), rgba(0, 97, 213, 0.02))"
  }}>
      <div className="flex-1 text-sm leading-relaxed text-gray-700 dark:text-gray-300" style={{
    minWidth: "280px"
  }}>
        {children}
      </div>
      <div className="flex flex-col items-center gap-2">
        <a href="https://account.box.com/signup/developer#ty9l3" className="signup-cta-button inline-flex items-center whitespace-nowrap px-5 py-2 text-sm font-semibold text-white no-underline">
          Get started for free
        </a>
        <a href="https://account.box.com/developers/console" className="signup-cta-login text-xs text-gray-500 dark:text-gray-400 no-underline whitespace-nowrap">
          Already have an account? Log in
        </a>
      </div>
    </div>;
};

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>;
};

Platform App typically presents Box functionality to a user through a
custom interface. Box offers pre-built, customizable user interface components,
known as <Link href="/guides/embed/ui-elements">UI Elements</Link>, for functionalities like browsing, searching, and
previewing content.

## Authentication methods

Platform Apps support <Link href="/guides/authentication/oauth2">OAuth 2.0</Link>, <Link href="/guides/authentication/jwt">JWT</Link>, and
<Link href="/guides/authentication/client-credentials">Client Credentials Grant</Link> authentication methods.

<Card href="/guides/authentication/select" arrow title="Learn more about authentication methods" />

## When to use

Use a Platform App when you want to:

* Use <Link href="/guides/authentication/oauth2">OAuth 2.0</Link>, <Link href="/guides/authentication/jwt">JWT</Link> or <Link href="/guides/authentication/client-credentials">Client Credentials Grant</Link> for authentication.
* Upload and download files
* Access both your own files and files owned by <Link href="/platform/user-types/#managed-users/">managed or external users</Link>.
* List the application in the Box Integrations
* Provide integration into the Box Web App

## Use cases

Example use cases include:

* A file vault in an application that allows an end user to access files that have been shared with them, while also providing access for employees to the same files through the Box Web app.

  An example of this is financial advisor sharing statements and investment
  prospectuses with investors that can be viewed and commented on within a
  platform application.

* A file upload feature in an application that allows an end user to submit and upload files from within a custom-built application to Box. These uploads then initiate a business process with the Box Web app.

  An example of this is a candidate submitting a PDF of a resume to a
  recruiting portal then can then be routed to an appropriate employee for
  review.

<SignupCTA>
  A free developer account gives you access to the Developer Console, where you can create Platform Apps using your preferred authentication method.
</SignupCTA>

## Approval

Platform Apps may require approval before use.

<Card href="/guides/authorization/platform-app-approval" arrow title="Learn how to approve Platform Apps" />

<RelatedLinks
  title="RELATED GUIDES"
  items={[
{ label: translate("OAuth 2.0 Auth"), href: "/guides/authentication/oauth2/index", badge: "GUIDE" },
{ label: translate("JWT Auth"), href: "/guides/authentication/jwt/index", badge: "GUIDE" },
{ label: translate("Client Credentials Grant"), href: "/guides/authentication/client-credentials/index", badge: "GUIDE" }
]}
/>
