# APIs

REST APIs are the essence of Backend Development, the most used way for your frontend (client) to talk to your backend layer.

## Creating APIs

There are various ways to create APIs in your Cosmocloud project -

* [Using Templates](#using-templates)
* [Building from Scratch](#building-from-scratch)

### Using Templates <a href="#using-templates" id="using-templates"></a>

You can quickly start creating the APIs and their corresponding models using use-case based Templates. These help you in auto generating convention based APIs and models for faster productivity.

You can then [customise](#customising-api-flow-logic) and edit any API or Model that is created via Templates.

#### Available Templates <a href="#available-templates" id="available-templates"></a>

* Entity CRUD APIs
* Entity Search APIs
* Fetch / Upload Media APIs

### Building from Scratch <a href="#building-from-scratch" id="building-from-scratch"></a>

This is the method where you can start building your APIs from scratch. This will help you in customising your API endpoints, request methods as well as any [Query Param](https://docs.cosmocloud.io/models#query-params-model) Models / [Request Body](https://docs.cosmocloud.io/models#request-body-model) Models you want to use.

## Customising API Flow Logic

After creating an API, you can create or customise the APIs logic, using Cosmocloud's [Flow Builder](https://docs.cosmocloud.io/flow-builder). To be able to customise this -

1. Navigate to APIs listing page from **Application Layer -> APIs**.
2. Open the API you want to edit.
3. Switch to the **Flow** tab of the particular API.
4. Start editing!

{% hint style="info" %}
Checkout Cosmocloud's [Flow Builder](https://docs.cosmocloud.io/flow-builder) for more details on customising flows in Cosmocloud.
{% endhint %}

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th data-hidden></th><th data-hidden></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>Creating Flows</strong></td><td></td><td></td><td><a href="broken-reference">Broken link</a></td></tr><tr><td><strong>Magical Autocomplete</strong></td><td></td><td></td><td><a href="../flow-builder/cql-cosmocloud-query-language/magical-autocomplete">magical-autocomplete</a></td></tr><tr><td><strong>Node Types</strong></td><td></td><td></td><td><a href="../flow-builder/node-types">node-types</a></td></tr></tbody></table>
