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

# Curator API Overview

> Complete guide to the Curator API including metadata access, content management and integration command capabilities.

The Integration System gives you many options for interfacing programmatically with the backend. This API
gives you access to the metadata behind your portal content as well as the ability to update content and run
integration commands.
Before you do, though, you'll need an API Key and the endpoint!

## 1. Obtaining an API Key

To access the API, you will need an API key. You can create an API Key in the /backend area of your portal.
API Keys are managed in Settings -> API Keys. Curator generates the key when you create it. Open the key and click
**Show** or **Copy** to get it. See [Managing API keys](https://docs.curator.interworks.com/curator_api/api_docs/authentication.md#managing-api-keys) for
expiration and regenerating a key.

## 2. Accessing the API

Once you have an API Key, you can access the API through the "api" folder on your portal's URL.
For example: `https://yourportal.example.com/api/v1/portal/upgrade?apikey=my_api_key_here`

## 3. API Response

All of the Integration System's APIs return JSON. You can convert this easily to an array in most languages.
(json\_decode, for example, in PHP)

## Auto Generate API Links

You can also use Curator's backend to generate links to the various Curator API endpoints

1. Login to the backend of your Curator instance (e.g. `http://curatorexample.com/backend`).
2. Navigate to the **Settings** > **Curator** > **API Keys** section from the left-hand menu.
3. Open an API key, and in the **Try the API** section choose the **Section** and **Method** you would like to try.
4. Use **Copy URL** or **Open** to start using the endpoint. The URL on the page shows `[apikey]` until you click
   **Show**, but both buttons fill in the real key. *Note: Some variables may be missing from these preview links.*

## Restrict an API Key to Specific Endpoints

By default, an API key can call every Curator API endpoint. You can limit a key to the endpoints it needs.

1. Log in to the backend of your Curator instance (e.g. `http://curatorexample.com/backend`).
2. Navigate to the **Settings** > **Curator** > **API Keys** section from the left-hand menu, and open the API key.
3. Turn on the **Limit this key to chosen endpoints** switch. The endpoint check list opens below it.
4. The section shows one card for each API path, such as Portal or User. Each card lists the endpoints of that
   path with a check box for each one. A checked box means the key can call that endpoint. Clear the check box of each
   endpoint the key must not call.
5. Save the API key.

Use the **Allow all** and **Deny all** links to change many check boxes at once. The links on a card change only
the endpoints of that card. The links in the toolbar above the cards change every endpoint. The **Denied:** line at
the bottom of each card lists the endpoints of that card that are not checked.

When a restricted key calls a denied endpoint, Curator does not run the request. It returns this JSON response:

```json theme={null}
{"result": "Failure", "msg": "This key is restricted from using this end point"}
```

> [!NOTE]
>
> Curator stores the list of denied endpoints, not the list of allowed endpoints. When a Curator upgrade adds a new
> endpoint, a restricted key can call it until you clear its check box. Review the API key after each upgrade.

If you turn off **Limit this key to chosen endpoints**, the key can call every endpoint again. Curator keeps the
denied list, so the same endpoints are denied if you turn the switch back on.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.