# Layer API Documentation > Start building with the Layer API. Connect Layer to the tools you use every day, creating powerful workflows. ## API Reference - [Power BI](https://layer-api.readme.io/reference/power-bi-1.md) - [Get all Projects](https://layer-api.readme.io/reference/getprojects.md): This operation can be used to retrieve the list of all projects. - [Get a Project by ID](https://layer-api.readme.io/reference/getproject.md): This operation can be used to retrieve the details of a specific project. - [Create a Project](https://layer-api.readme.io/reference/createproject.md): Creates a new project. - [Update a Project](https://layer-api.readme.io/reference/updateproject.md): Partially update a project. Send only the fields you want to change; omitted fields are left unchanged. - [Delete a Project](https://layer-api.readme.io/reference/deleteproject.md): Archives a project (soft delete). The project and its documents are retained; only project owners may perform this action. - [Apply Template to Project](https://layer-api.readme.io/reference/applytemplatetoproject.md): Applies a template to an existing project, copying its categories and fields. If this template has already been applied to the project, set confirm to true to re-apply. - [Get all Templates](https://layer-api.readme.io/reference/gettemplates.md): Returns all templates the authenticated user has access to. - [Batch Actions](https://layer-api.readme.io/reference/batchactions.md): Executes multiple write operations sequentially in a single request. Actions are processed one at a time to avoid Firestore transaction contention. Each action can succeed or fail independently — check results[].status and summary.failed after the call. Actions the caller lacks permission for are reported as individual failures rather than rejecting the whole request; a caller with no access to the project at all receives a 403. - [Get Categories](https://layer-api.readme.io/reference/getprojectcategories.md): This operation can be used to retrieve the list of all categories for a specific project. - [Get a Category by ID](https://layer-api.readme.io/reference/getprojectcategorybyid.md): This operation can be used to retrieve a specific category and its views within a project. - [Create a Category](https://layer-api.readme.io/reference/createprojectcategory.md): Create a new category in a project. - [Update a Category](https://layer-api.readme.io/reference/updateprojectcategory.md): Partially update a category. Send only the fields you want to change (name, initials, instance); omitted fields are left unchanged. - [Delete a Category](https://layer-api.readme.io/reference/deleteprojectcategory.md): Archives a category (soft delete). The category document is retained. Elements, fields, and automations in the category are always archived; associated files, notes, and tasks are detached (kept) by default, or archived when the matching removeFiles/removeNotes/removeTasks flag is set. - [Get all Category Views](https://layer-api.readme.io/reference/getcategoryviews.md): This operation can be used to retrieve all view from a category within a project. A view represents a list of items in a category that is filtered and displayed in a specific way. - [Get a Category View by ID](https://layer-api.readme.io/reference/getcategoryviewbyid.md): This operation can be used to retrieve a specific view from a category within a project. A view represents a list of items in a category that is filtered and displayed in a specific way. - [Create a Category View](https://layer-api.readme.io/reference/createcategoryview.md): Create a new view in a category. Optionally supply filterConfig and sort to pre-configure filtering and sorting; if omitted they default to empty. - [Update a Category View](https://layer-api.readme.io/reference/updatecategoryview.md): Partially update a category view. Accepts any combination of filterConfig, sort, fieldDisplay, and name. Omitted fields are left unchanged. displayType and type cannot be changed after creation. - [Delete a Category View](https://layer-api.readme.io/reference/deletecategoryview.md): Archives a category view (soft delete). The view is removed from the category and project-user view summaries by a background trigger. - [Get Elements](https://layer-api.readme.io/reference/getelements.md): Get all elements in a project. Optionally, a categoryId or viewId can be provided to return elements inside a particular category or view. - [Create an Element](https://layer-api.readme.io/reference/createelement.md): Create an Element in a Project - [Get an Element by ID](https://layer-api.readme.io/reference/getelement.md): Gets a specific element by its ID - [Update an Element](https://layer-api.readme.io/reference/updateelement.md) - [Delete an Element](https://layer-api.readme.io/reference/deleteelement.md): Deletes a specific element - [Bulk Create Elements](https://layer-api.readme.io/reference/createelements.md): Create multiple Elements in a Project category - [Search Elements](https://layer-api.readme.io/reference/searchelements.md): Search the elements in a single category. Supply categoryId (required) plus an optional filterConfig (the same shape used to create a view) and/or a free-text query (matched against element name and indexed field values, as in the in-app search). When both are provided an element must match the filters and the text query. Results are returned in the same shape as Get Elements. - [Get Fields](https://layer-api.readme.io/reference/getfields.md): Get all fields in a project. Optionally, a categoryId or viewId can be provided to return fields inside a particular category or view. - [Create a Field](https://layer-api.readme.io/reference/createfield-1.md): Create a Field in a Project - [Get a Field by ID](https://layer-api.readme.io/reference/getfield.md): This operation can be used to retrieve the details of a specific field within a project - [Delete a Field](https://layer-api.readme.io/reference/deletefield.md): Deletes a specific field - [Update a Field](https://layer-api.readme.io/reference/updatefield.md): Update a Field in a Project - [Get Files](https://layer-api.readme.io/reference/getprojectfiles.md): This operation can be used to retrieve the list of all files for a project. - [Create a File](https://layer-api.readme.io/reference/createfile.md): Create a File in a Project by uploading multipart data or importing a hosted image URL - [Get a File by ID](https://layer-api.readme.io/reference/getfile.md): This operation can be used to retrieve the details of a specific file within a project. - [Delete a File](https://layer-api.readme.io/reference/deletefile.md): Deletes a specific file