---
schema_version: "1"
id: b532ddf7fe441e59cd252e35d0b70502957caa3b7a1ea216426b64b718d7c412
title: Create an API Specification Project in Anypoint Studio
collection: mulesoft
version: current
locale: en-us
portal_url: https://docs.salesforce.com/mulesoft/current/en-us/studio/create-api-specification-studio.md
canonical_url: https://docs.mulesoft.com/studio/create-api-specification-studio
source_site: docs.mulesoft.com
content_type: documentation
content_hash: 0e3894f4c0daed536842cee2ec458fda2d34edee0224a8091ebcf817bafceb63
description: MuleSoft Documentation Site
latest: true
---
---
product: Studio
---

# Create an API Specification Project in Anypoint Studio

> For the full documentation index, see: https://docs.mulesoft.com/llms.txt

Studio enables you to create a RAML API specification, an OAS 2.0 or 3.0 API specification, or an
API fragment, and automatically sync it with MuleSoft VCS.

> [!NOTE] Studio uses the EGit plugin to edit API specifications offline. Studio doesn’t support the
> EGit plugin for Mule application projects tracked with your own VCS.

To start creating an API specification project in Studio, log in to Anypoint Platform. See
[Add Your Anypoint Platform Account to Access Organization Resources](https://docs.mulesoft.com/studio/set-credentials-in-studio-to).

1.  In the taskbar of the Anypoint Studio display, select **File** > **New** > **API Specification
    Project**.

2.  Select the tab of type of API specification project to create:

    - Create a new API specification by selecting the **New API Specification** tab and the type of
      API.

      ![The New API Specification tab and file type drop-down menu highlighted in the New API Specification window](/mulesoft/current/en-us/studio/_images/create-api-specification.png)

    - To create a new API fragment, select the **New API Fragment** tab, and then select the type of
      API fragment.

      ![The New API Fragment tab and the type of API fragment highlighted in the New API Specification window](/mulesoft/current/en-us/studio/_images/create-api-fragment.png)

3.  Type a name for your project.

4.  Select **Finish**.

Studio prompts you to switch to the API design perspective.

In the API design perspective, use the API editor to write your API specification or API fragment.
Additionally, you can use the API Console view to mock a live service so you can test your API
specification.

Studio uses VCS to track the development of your API specification project and keep it synchronized
with MuleSoft VCS.

## Create Branches

Using a different branch enables you to use a modified API definition in certain cases, without
modifying the main branch in MuleSoft VCS.

To create a different branch in Studio:

1.  In the Package Explorer view, right-click your API specification project and select **Team** >
    **Switch To** > **New Branch**.

    ![New branch highlighted in the context menu](/mulesoft/current/en-us/studio/_images/switch-to-new-branch.png)

2.  In the **Create Branch** window, configure your new branch:

    ![\*Branch name\* field, \*Configure upstream for push and pull\* option, and \*Check out new branch\* option highlighted in the \*Create Branch\* window](/mulesoft/current/en-us/studio/_images/create-new-branch.png)

<table><tbody><tr><td><i data-value="1"></i><b>1</b></td><td>In the <strong>branch name</strong> field, type the name of your new branch.</td></tr><tr><td><i data-value="2"></i><b>2</b></td><td>You can select the <strong>Configure upstream for push and pull</strong> option if you want to also pull changes from MuleSoft VCS into your local branch.<div><p>When configuring this option, you must select the behavior you want Git to have when it pulls the changes from MuleSoft VCS.</p></div></td></tr><tr><td><i data-value="3"></i><b>3</b></td><td>Select the <strong>Check out new branch</strong> for Git to switch to this new branch as soon as you create it.</td></tr></tbody></table>

3.  Select **Finish**.

With a newly created branch, you can start committing your changes.

## Commit Changes to Your API Specification Project

The VCS in Studio tracks every change you make to your project and shows them in the **Unstaged
Changes** area of your **Git Staging** view.

You can track your changes to a file by right-clicking it in the **Unstaged Changes** section and
selecting **Compare with index**:

![\*Compare with index\* menu option highlighted in the \*Unstaged Changes\* window.](/mulesoft/current/en-us/studio/_images/compare-with-index.png)

After applying your changes, add them to your index:

![\*Add selected files to the index\* and \*Use the Add all files including not selected ones to the index\* icons highlighted in the comparison window.](/mulesoft/current/en-us/studio/_images/compare-to-index-view.png)

<table><tbody><tr><td><i data-value="1"></i><b>1</b></td><td>Use the <strong>Add selected files to the index</strong> icon to stage for commit the files that you selected.</td></tr><tr><td><i data-value="2"></i><b>2</b></td><td>Use the <strong>Add all files including not selected ones to the index</strong> icon to stage for commit all unstaged changes.</td></tr></tbody></table>

When you staged the changes that you want to commit, write a commit message in the **Commit
Message** section:

![\*Commit Message\* section highlighted.](/mulesoft/current/en-us/studio/_images/add-commit-message.png)

<table><tbody><tr><td><i data-value="1"></i><b>1</b></td><td>Select <strong>Commit and Push</strong> to also push the change to MuleSoft VCS.<div><p>See <a href="#push-branch">Push Your Branch to MuleSoft VCS</a> below for more information.</p></div></td></tr><tr><td><i data-value="2"></i><b>2</b></td><td>Select <strong>Commit</strong> to add the commit to your local copy.</td></tr></tbody></table>

See [Git Staging View Reference](https://docs.mulesoft.com/studio/git-staging-view-reference) for more information about this view.

## Merge and Push Your API Specification Project

Merge the changes made to your API specification to your main branch and sync it with MuleSoft VCS.

1.  In the Package Explorer view, right-click your API specification project and select **Team** >
    **Merge** > **Push Branch**.

    ![\*Merge\* option highlighted in the context menu.](/mulesoft/current/en-us/studio/_images/merge-menu.png)

2.  Select the local branch to which you want to merge your changes:

    ![Local branch highlighted in the \*Merge\* window.](/mulesoft/current/en-us/studio/_images/merge-view.png)

3.  Select **Merge**.

## Push Your Branch to MuleSoft VCS

You can choose to publish your local branch to MuleSoft VCS after you committed all your changes to
your local branch:

1.  In the Package Explorer view, right-click your API specification project and select **Team** >
    **Switch To** > **Push Branch**.

    ![\*Push branch\* option highlighted in the Mule project context menu.](/mulesoft/current/en-us/studio/_images/push-branch.png)

2.  Verify the changes that you are pushing to MuleSoft VCS.

    ![\*Push Branch\* window options highlighted.](/mulesoft/current/en-us/studio/_images/push-branch-view.png)

<table><tbody><tr><td><i data-value="1"></i><b>1</b></td><td>The <strong>Source</strong> section shows the changes that you are pushing to MuleSoft VCS.</td></tr><tr><td><i data-value="2"></i><b>2</b></td><td>The <strong>Remote</strong> section shows the coordinates to the remote you are pushing to.</td></tr><tr><td><i data-value="3"></i><b>3</b></td><td>The <strong>Branch</strong> section shows the local branch that you are pushing.</td></tr><tr><td><i data-value="4"></i><b>4</b></td><td>You can select the <strong>Configure upstream for push and pull</strong> option if you want to also pull changes from MuleSoft VCS into your local branch.<br>When configuring this option, you must select the behavior you want Git to have when it pulls the changes from MuleSoft VCS.</td></tr><tr><td><i data-value="5"></i><b>5</b></td><td>Select the <strong>Force overwrite branch in remote if it exists and has diverged</strong> only if you know that your local changes must overwrite the changes in MuleSoft VCS.<br>This option force pushes your changes to the branch in MuleSoft VCS.</td></tr></tbody></table>

3.  Select **Preview** to see a summary of the changes you are pushing.

4.  Select **Push**

In certain scenarios, someone else might have modified the version in MuleSoft VCS while you
modified the same version locally. This triggers conflicts in Git.  
See [Solve Conflicts](https://docs.mulesoft.com/studio/solving-conflicts-api-projects) for more information.

## See Also

- [Import an API Specification from Exchange](https://docs.mulesoft.com/studio/import-api-specification-exchange)
