> ## Documentation Index
> Fetch the complete documentation index at: https://docs.refold.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Using Refold AI

> Create a custom app by simply providing API documentation to our AI

To create a custom app using Refold AI, click on `+ Add App` in the **Custom Apps** section of Refold, provide the **official documentation URL** and a prompt describing the app you want to build and click on send button.

<Info>
  You will not be able to provide the prompt if the documentation URL is not given.
</Info>

<img height="200" src="https://mintcdn.com/cobalt-55/yYFE4rj1UK1LIP4D/images/Guides/Platform/custom-app_ai.png?fit=max&auto=format&n=yYFE4rj1UK1LIP4D&q=85&s=875eae1b95e4ee2bfc3daa6d31fa36d8" alt="Custom App in the Apps list in Refold" data-path="images/Guides/Platform/custom-app_ai.png" />

Refold AI will start building the app and following steps will occur.

### App Details generation

Based on the documentation link provided, Refold AI will generate the app name, description and logo.

### App Authorization creation

Next, Refold AI will generate the Authorization of the app based on the documentation.

<img height="200" src="https://mintcdn.com/cobalt-55/vPGojg1WCLHlMpWZ/images/Guides/Platform/custom-app_details.png?fit=max&auto=format&n=vPGojg1WCLHlMpWZ&q=85&s=53d108b47cf709cddeb4236fb16216f8" alt="Custom App details generated in Refold" data-path="images/Guides/Platform/custom-app_details.png" />

Click on the Authorization type generated and verify and configure it.

In the **Overview** tab, you can see the basic details of the authorization type based on documentation.

Verify the auth type and make changes if required. Based on the selected auth type, you can see the fields end-user will need to input for the authorization under **Configure** tab. Provide the credentials required there so that you can test the API Actions generated by AI.

<Tip>
  If you want to make any changes in the authorization configuration, you can do so later once Refold AI has generated the app fully.
</Tip>

### App Actions generation

Based on the prompt provided, Refold AI will generate actions in the app.

<img height="200" src="https://mintcdn.com/cobalt-55/yYFE4rj1UK1LIP4D/images/Guides/Platform/custom-app_actions.png?fit=max&auto=format&n=yYFE4rj1UK1LIP4D&q=85&s=dca3be520a0c8ce8e3bf53bea1b41832" alt="Custom App Actions generated by Refold AI" data-path="images/Guides/Platform/custom-app_actions.png" />

Click on `Test` for any action and you can now test it by providing payload if required and then clicking on `Test Action`.

<Warning>
  The action will work during testing only if you provided the required API credentials in the **Configure** tab of Authorization generated by Refold AI.
</Warning>

Once tested and if you want to publish that action, click on `Create Action` button and it will be available as action in your Custom App.

<Check>
  The Custom App is now created by Refold AI. If everything is correct, you can click on `Publish` and make the integration available for use. If you would like to make changes in Authorization or action, click on the info button beside Publish button of the app.
</Check>

### Making changes in the AI App

If you want to make any changes to the app's authorization, navigate to the `Authorization` tab and do it.

Custom Apps support multiple authentication methods. To setup the Authorization for the Custom App, navigate to `Authorization` in the App and choose the desired method.

The methods of **Authorization** are:

<Accordion title="Key Based ">
  If the Custom App requires API Key based authentication, select `Key Based`. It requires users to set up an API for generating access tokens.

  <img height="200" src="https://mintcdn.com/cobalt-55/vPGojg1WCLHlMpWZ/images/Guides/Platform/key.png?fit=max&auto=format&n=vPGojg1WCLHlMpWZ&q=85&s=6805e2b9da6dec492ae381102085c801" alt="Key-based authorization" data-path="images/Guides/Platform/key.png" />

  Follow the steps below to setup your custom app:

  <Steps>
    <Step title="Select Key Auth type">
      Select either of **Basic Auth**, **Bearer Token** or **API Key** as the auth mechanism.
    </Step>

    <Step title="Configure User Input Fields">
      Add the input fields that will be visible to your users asking for the required API credentials and click on `Save`.
    </Step>

    <Step title="Map Auth fields">
      Once you have added the required user input fields, map those fields now to setup auth data.

      <img height="200" src="https://mintcdn.com/cobalt-55/vPGojg1WCLHlMpWZ/images/Guides/Platform/key-setup.png?fit=max&auto=format&n=vPGojg1WCLHlMpWZ&q=85&s=75fec73dceef2f629a2a18c8dbff83f9" alt="Key-based authorization setup" data-path="images/Guides/Platform/key-setup.png" />
    </Step>

    <Step title="Add Base URL">
      Provide the Base URL of the API endpoints for the custom app and the key code for Invalid API Credentials.
    </Step>

    <Step title="Setup Identifier and Validation">
      Optionally, you can also provide an endpoint which will be called to perform validation of the provided credentials.

      <Tip>
        Its recommended to provide a GET API endpoint to perform validation, so as to avoid modifying any data using the credentials.
      </Tip>

      <img height="200" src="https://mintcdn.com/cobalt-55/vPGojg1WCLHlMpWZ/images/Guides/Platform/key-valid.png?fit=max&auto=format&n=vPGojg1WCLHlMpWZ&q=85&s=5f4cad9cea2243021019ef9d3504d151" alt="Key-based auth validation" data-path="images/Guides/Platform/key-valid.png" />
    </Step>
  </Steps>

  <Check>
    Congratulations!

    You have successfully setup a Key based Custom Application in Refold.
  </Check>
</Accordion>

<Accordion title="OAuth 2.0 ">
  If you want to provide OAuth 2.0 type authorization, select `OAuth 2.0` in the methods.

  <img height="200" src="https://mintcdn.com/cobalt-55/vPGojg1WCLHlMpWZ/images/Guides/Platform/oauth_setup.png?fit=max&auto=format&n=vPGojg1WCLHlMpWZ&q=85&s=cd2b6a44d16de6e207a5bd790ac97eca" alt="OAuth 2.0 authorization" data-path="images/Guides/Platform/oauth_setup.png" />

  Follow the steps below to configure OAuth mechanism for your custom app:

  <Steps>
    <Step title="Provide OAuth Credentials">
      Add the **Client ID**, **Client Secret** and the **Scopes** of the developer OAuth 2.0 app that you have created.

      <Warning>
        Ensure that you add the provided `Callback URL` in your developer OAuth 2.0 app.
      </Warning>
    </Step>

    <Step title="Add Authorization and Token URL">
      Add the Authorization and Token URL required for OAuth authentication in the provided fields, select `Client Authentication` type and `Save`.

      <Info>
        You can find both the URLs from the Authentication documentation of the custom app that you are setting up.
      </Info>
    </Step>

    <Step title="Setup Refresh Mechanism and API Base URL">
      In the `API Setup` section, provide the **Base URL** for the APIs and appropriate code i.e. **Expired Access Token Codes** which is received on token expiry for the Refresh mechanism to work.

      <img height="200" src="https://mintcdn.com/cobalt-55/vPGojg1WCLHlMpWZ/images/Guides/Platform/oauth_refresh.png?fit=max&auto=format&n=vPGojg1WCLHlMpWZ&q=85&s=8eb7594fbf6fe4cd928c33545115020b" alt="OAuth 2.0 Refresh mechanism" data-path="images/Guides/Platform/oauth_refresh.png" />
    </Step>

    <Step title="Extract Access Token & Refresh Token">
      In the `Auth Tokens Data` section, you will provide the mapping using which the tokens can be extracted once received on callback on successful authorization.

      Usually an object is received after authorization which will be saved as `access_token_response` on Refold's end and you need to provide the key mapping of the required fields from the object.
    </Step>

    <Step title="Setup Identifier">
      Optionally, you can also provide an endpoint which will be called and used to set a field from the API response to use as an identifier for the user.

      <Tip>
        Its recommended to provide a GET API endpoint to perform validation, so as to avoid modifying any data using the credentials.
      </Tip>

      <img height="200" src="https://mintcdn.com/cobalt-55/vPGojg1WCLHlMpWZ/images/Guides/Platform/oauth_tokens.png?fit=max&auto=format&n=vPGojg1WCLHlMpWZ&q=85&s=cd36b360eeed734e2b187c0536621f13" alt="Setup an Identifier of your users" data-path="images/Guides/Platform/oauth_tokens.png" />
    </Step>
  </Steps>

  <Check>
    Congratulations!

    You have successfully setup a OAuth 2.0 Custom Application in Refold.
  </Check>
</Accordion>

<Check>
  Once done, click on the `Go Live` button and your Custom App is now ready to use.
</Check>
