In this guide we will see how you can customize your API's response.
## Introduction
To be able to update the default data response you have first to understand how it works.
When you create a content type, it generates an API with the following list of [endpoints](../content-api/api-endpoints.md).
Each of these endpoint triggers a controller action. Here is the list of [controller actions](../concepts/controllers.md) that exist by default when a content type is created.
If you check the controller file of your generated API `./api/{content-type}/controller/{Content-Type}.js`, you will see an empty file. It is because all the default logic is managed by Strapi. But you can override these actions with your own code.
And that is what we will do to manage our custom data response.
## Example
In our example we will use a restaurant type with a chef. By default when you fetch restaurants, you will get all information for the chef.
Let's consider you don't want to expose the chef's email for privacy reasons.
After saving the new function, let's restart the `GET /restaurants` request. We will see `strapi` as response.
## Get the data back
We now know the function we have to update, but we just want to customize the returned restaurant values.
In the [controller documentation](../concepts/controllers.html#extending-a-model-controller) you will find the default implementation of every actions. It will help you overwrite the fetch logic.