---
title: "Getting started"
description: "What API Hub is and the concepts it is built on: actions, scopes and apps."
canonical: index.html
---

<a id="getting-started"></a>

<a id="getting-started-1"></a>

# Getting started

API Hub gives external applications access to the functions of TYPO3 through an
HTTP API. It uses three concepts:

- **Actions**

  An action is a typed operation, for example "get a record" or "update a
  record". TYPO3 and extensions supply actions. A
  [JSON Schema](https://json-schema.org/) describes the parameters and the
  result of each action. TYPO3 uses it to validate requests and responses,
  and to generate an [OpenAPI](https://www.openapis.org/) document of the
  whole API. Each action has an HTTP endpoint below `/typo3/api/`.
- **Scopes**

  Scopes put actions into groups and give general access to them, for
  example `content:read` to read records. A caller can call an action only
  if it has all scopes of the action.
- **Apps**

  An app is the record of an external application in TYPO3. It sets the scopes that the
  application can use, and how it authenticates: with a static token or with
  OAuth 2.0. Each request of an app uses a backend user, so all permissions
  of this user apply.

```diagram
flow canvas=940
  columns 1,1,1
  gap 110,72
title "An app reaches content through scopes and permissions"
description "An app invokes an action if its scopes allow it, and acts on behalf of a backend user. The permissions of this user apply when the action reads or modifies records and files."

app "App"
  at 0,0
  body "Authenticates with a token"
action "Action"
  at 1,0
  body "A typed operation"
content "Records and files"
  at 2,0
  store
user "Backend user"
  at 2,1
  person

app => action "scopes"
action -> content
app -> user "acts on behalf of"
  via v
user -> content "permissions"
```

*The scopes set the actions that an app can call. The permissions of the backend user set what these actions can do.*

**[Installation](installation.md)**
The requirements, the installation with Composer and the next steps
to the first request.

**[Features](features.md)**
What API Hub provides, and what this package contains.
