# Which API to use

Choose an MK.IO API based on the resource you need to manage, not the kind of code you are writing. The cloud APIs share a base URL and bearer authentication, but they own different parts of the platform and are often combined in a single automation flow.

## Start with the workflow

Use this table for a quick answer:

<table>
  <thead>
    <tr>
      <th style="text-align: left">To automate...</th>
      <th style="text-align: left">Use the...</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td style="text-align: left">Reusable content, sources, destinations, storage registration, assets, transforms, jobs, Media API live events and live outputs, streaming locators, streaming endpoints, streaming policies, or content key policies</td>
      <td style="text-align: left"><a href="/api-reference/media-api">Media API</a></td>
    </tr>
    <tr>
      <td style="text-align: left">Template-based live channels, live events, and static multiview resources</td>
      <td style="text-align: left"><a href="/api-reference/live-api">Live API</a></td>
    </tr>
    <tr>
      <td style="text-align: left">Discover encoding presets, create reusable configs, and manage config versions</td>
      <td style="text-align: left"><a href="/api-reference/templates-api">Templates API</a></td>
    </tr>
    <tr>
      <td style="text-align: left">Organizations, projects, users, teams, tokens, payment methods, usage reports, metrics, or webhook rules</td>
      <td style="text-align: left"><a href="/api-reference/management-api">Management API</a></td>
    </tr>
  </tbody>
</table>

## How the APIs fit together

The APIs are separate, but the workflows connect:

1. Use the **Management API** to create a project and assign billing.
2. Use the **Media API** to process or publish content inside that project.
3. Use the **Management API** again to add webhook rules, so your integration reacts to events instead of polling.

A complete platform integration typically uses the Management API for setup, then the Media, Live, or Templates API for day-to-day operations.

## Media API

The Media API owns media processing and delivery, and it is where most developers start. Reach for it to ingest, encode, package, protect, or stream content. Its resources include storage instances and credentials, assets and asset filters, transforms and jobs, live events and live outputs, streaming locators and endpoints, and streaming policies and content key policies.

## Live and Templates APIs

Use the Live API for the resources shown in the portal's **Live** view: live channels, live events, and static multiview channels and events. The Templates API supplies the encoding and composition configs they reference. The Media API supplies their sources, content, destinations, recording assets, and playback resources.

Start with the [Live event walkthrough](/mkio/api-guides/how-to/live/walkthrough) for one camera or the [Multiview walkthrough](/mkio/api-guides/how-to/live/multiview/multiview-walkthrough) for a composed output. Existing integrations using `/media/liveEvents` and `/media/liveEvents/{event_name}/liveOutputs` use the separate [Media live-streaming workflow](/mkio/api-guides/how-to/media/live-streaming), shown under **Live Events** in the portal.

## Management API

The Management API owns organization and project administration: access, billing, and account-level configuration. Reach for it to provision an environment, assign permissions, issue tokens, or configure event delivery. Its resources include organizations and projects, users and invites, teams, roles and scopes, personal and organization tokens, payment methods, usage and metrics, and webhook rules.

## Common combinations

<table>
  <thead>
    <tr>
      <th style="text-align: left">Workflow</th>
      <th style="text-align: left">APIs involved</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td style="text-align: left">Build a template-based live or multiview stream</td>
      <td style="text-align: left">Media API for sources and publishing, Templates API for configs, Live API for processing</td>
    </tr>
    <tr>
      <td style="text-align: left">Create a project, assign billing, then start a VOD workflow</td>
      <td style="text-align: left">Management API, then Media API</td>
    </tr>
    <tr>
      <td style="text-align: left">Register a webhook for job-completion events</td>
      <td style="text-align: left">Management API and Media API</td>
    </tr>
    <tr>
      <td style="text-align: left">Audit token usage and restrict automation access</td>
      <td style="text-align: left">Management API</td>
    </tr>
  </tbody>
</table>

## Next step

Once you know which API owns your workflow, make one authenticated request before you build anything larger. [Your first API call](/mkio/api-guides/getting-started/first-api-call) is the quickest way to confirm that your base URL, token, and project access are correct.
