Alphavima Technologies

May 13th, 2026

Power Apps Custom Connector: Connect to Any REST API Step-by-Step

Power Apps comes with hundreds of pre-built connectors covering Microsoft services, popular SaaS applications, and cloud databases. But what if the system you need to connect to isn’t in the list? That’s where custom connectors come in.

A custom connector lets you define an API connection from scratch – specifying the endpoints, authentication method, request/response formats, and display properties – and then use it in any Power App or Power Automate flow exactly like a built-in connector.

In this guide, you will learn how to build a custom connector in Power Apps from blank, configure authentication, add actions, test the connection, and use it inside a canvas app.

What You’ll Build: A custom connector that calls an external REST API (we’ll use JSONPlaceholder – a free public test API – so you can follow along without needing your own API).

Custom connectors are a recurring deliverable in Alphavima’s Microsoft Power Platform consulting engagements with enterprise customers.

What Is a Custom Connector?

A custom connector is a wrapper around any REST API (or SOAP web service) that makes it available as a connector in Power Apps, Power Automate, and Logic Apps. Once created and shared, everyone in your organisation can use it without needing to know the API’s technical details.

Custom connectors support:

  • No authentication – public APIs
  • API Key – header or query string token
  • OAuth 2.0 – Microsoft Azure AD, generic OAuth providers
  • Basic authentication – username + password
  • Windows authentication – on-premises systems via the on-premises data gateway

For teams building more advanced apps, custom connectors complement the Power Apps Code App approach described in our Power Apps Code App tutorial.

Prerequisites

How Custom Connectors Work

When you create a custom connector:

  1. You define Actions – each action maps to one API endpoint (e.g., GET /users, POST /posts)
  2. You specify the request parameters (path params, query params, headers, body)
  3. You define the response schema so Power Apps knows what data to expect
  4. Power Apps generates a typed connector your formulas can call
Power Apps custom connector workflow showing Canvas App integration with external REST APIs using authentication, actions, and typed responses
Architecture / Flow Diagram

Step 1: Navigate to Custom Connectors

  1. Go to powerapps.com.
  2. In the left navigation, click … MoreDiscover all → search for Custom connectors.
  3. Alternatively: DataCustom connectors (in some versions of the maker portal).
  4. Click + New custom connectorCreate from blank.
  5. Name your connector: JSONPlaceholder API
  6. Click Continue.

Step 2: Set the General Information

  1. You are now in the custom connector wizard. The first tab is General.

    1. Icon: Upload a small square PNG icon representing the API (optional but recommended for recognition).
    2. Icon background colour: Pick a colour (e.g., #4A90D9 for blue).
    3. Description: Connects to JSONPlaceholder – a free fake REST API for testing.
    4. Scheme: HTTPS
    5. Host: jasonplaceholder.typicode.com
    6. Base URL: /

    Click Security to continue.

Step 3: Configure Authentication

  1. For this tutorial, the API has no authentication. In real scenarios, select the appropriate type.

    1. Authentication type: No authentication (for JSONPlaceholder)

    For API Key authentication (most common for external APIs):

    1. Select API Key
    2. Parameter label: API Key
    3. Parameter name: Authorization (or whatever the API expects – check the API docs)
    4. Parameter location: Header

    For OAuth 2.0 with Azure AD:

    1. Select OAuth 2.0
    2. Identity provider: Azure Active Directory
    3. Enter your App Registration’s Client ID, Client Secret, and Resource URL

    Click Definition to continue.

Step 4: Add Your First Action

  1. Actions define the individual API calls your connector exposes. Let’s add a “Get all posts” action.

    1. Under Actions, click + New action.
    2. Fill in:
    • Summary: Get Posts
    • Description: Returns a list of posts from the API
    • Operation ID: GetPosts (no spaces – this is used in Power Apps formulas)
    • Visibility: Important (shows prominently in Power Apps)
    1. Under Request, click + Import from sample.
    2. Configure:
    • Verb: GET
    • URL: https://jsonplaceholder.typicode.com/posts
    • Headers: (leave blank for this API)
    • Body: (leave blank for GET)
    1. Click Import.

    Power Apps populates the request definition automatically.

Step 5: Define the Response Schema

Power Apps needs to know what the API returns so it can auto-complete field names in your formulas.

  1. Under Response, click + Add default response.
  2. Click + Import from sample.
  3. Paste a sample response from the API. For JSONPlaceholder posts:
				
					[
  {
    "userId": 1,
    "id": 1,
    "title": "Sample post title",
    "body": "This is the body of the post."
  }
]
				
			

Click Import – Power Apps generates the response schema.

Important: If your response schema is incomplete, Power Apps will treat the response as any type, making it harder to work with in formulas. Always define schemas for your expected responses.

Step 6: Add a Second Action - Get Post by ID

Let’s add a parameterised action that retrieves a single post by its ID.

  1. Click + New action.
  2. Summary: Get Post by ID, Operation ID: GetPostById
  3. Under Request+ Import from sample:
  • Verb: GET
  • URL: https://jsonplaceholder.typicode.com/posts/{id}
  1. Click Import.
  2. Power Apps detects {id} as a path parameter
  3. Click the id parameter → set Is required: Yes, Type:
  4. Import a single post as the response schema:
				
					{
  "userId": 1,
  "id": 1,
  "title": "Sample post title",
  "body": "This is the body of the post."
}
				
			

Step 7: Save and Create the Connector

  1. Click ✓ Create connector (top right).
  2. The connector is created and added to your environment.
  3. You will see a green confirmation message.

Step 8: Test the Connector

  1. Before using the connector in a canvas app, test it directly in the wizard.

    1. Click the Test
    2. Click + New connectionCreate (for no-auth connectors).
    3. Under Operations, select GetPosts.
    4. Click Test operation.
    5. You should see a 200 OK response with a JSON array of posts.

    Test GetPostById:

    1. Select GetPostById.
    2. Enter id: 1
    3. Click Test operation → verify the response shows the first post.

    If the test fails, go back to the Definition tab and verify the host, base URL, and action paths.

Step 9: Use the Connector in a Canvas App

  1. Create a new Canvas App in Power Apps (blank layout).
  2. In the left panel, click Data+ Add data.
  3. Search for JSONPlaceholder API – your custom connector appears.
  4. Click Connect.
  5. The connector is now available in your app’s data panel.
Display posts in a Gallery:
  1. Insert a Gallery (Vertical).
  2. Set the Items property to:

JSONPlaceholderAPI.GetPosts()

  1. Set the Gallery’s Title field to title.
  2. Set the Subtitle to “Post ID: ” & ThisItem.id.
Get a single post on button press:
  1. Insert a Text input for the user to enter an ID.
  2. Insert a Button labelled “Get Post”.
  3. Set the Button’s OnSelect property to:

Set(varPost, JSONPlaceholderAPI.GetPostById({id: Value(TextInput1.Text)}))

  1. Display varPost.title and varPost.body in text labels.

For advanced data retrieval patterns, also see our guide on retrieving Dataverse records in Power Apps Code Apps.

Step 10: Share the Connector with Your Organisation

  1. Go back to Custom connectors in the maker portal.
  2. Find your connector → click Share.
  3. Add the users or AAD security groups who should be able to use it.
  4. They can now find and use the connector in their own Power Apps and Power Automate flows.

Note: Users need their own connection (authentication) to the underlying API – sharing the connector definition does not share the credentials.

Common Issues and Fixes

Issue

Cause

Fix

401 Unauthorized

Wrong API key placement

Check header vs query string in authentication config

Response shows as any

No response schema defined

Import a sample response in the Definition tab

Connector not appearing in app

Connector not shared or wrong environment

Share connector; verify you’re in the correct environment

GetPosts() returns empty table

Schema mismatch

Regenerate schema from a fresh API sample

Best Practices

  • Use OpenAPI (Swagger) import when your API provider supplies a spec file – this saves hours of manual action definition
  • Version your connectors – when the underlying API changes, create a new connector version rather than modifying in-place
  • Use throttling policies in the connector definition to avoid overwhelming external APIs
  • Document each action thoroughly – other makers in your organisation will benefit from clear descriptions and examples
  • Monitor usage via the Power Platform admin centre – connector usage is logged and auditable

Need Help Building Power Apps Custom Connectors?

Connect Power Apps and Power Automate with external REST APIs using secure authentication, reusable actions, and structured response handling.

Conclusion

Custom connectors remove the ceiling on what Power Apps can integrate with. Any system with a REST API – internal line-of-business tools, financial platforms, logistics systems, marketing APIs – can become a data source or action target for your Power Apps and Power Automate flows.

Once you understand the connector definition pattern, building connectors becomes fast. Start with one or two external APIs your business uses today, and you’ll quickly build a library of reusable connectors your entire team benefits from. Concrete examples we’ve covered: the Business Central API integration with Power Automate, the Bing Maps API integration with Dynamics 365, and using custom connectors from a Copilot Studio Dataverse agent. For resilient async patterns, pair your custom connector with Azure Service Bus integration in Power Automate, and if you expose the connector inside a Power Pages portal, secure the underlying Dataverse with Power Pages table permissions.

Need a custom connector built for your specific API or system? AlphaVima’s Power Apps team builds, tests, and deploys custom connectors for enterprise environments. Contact our Power Platform consulting team near you.

Have a specific API you’re trying to connect? Leave a comment below and we’ll help you work through the connector definition.

FAQs

Have a specific API you're trying to connect? Leave a comment below and we'll help you work through the connector definition.

Yes. Custom connectors are a premium feature in Power Apps and Power Automate. Users who run apps or flows that use a custom connector must have a Power Apps Premium or Power Automate Premium licence. If not all users have premium licences, consider abstracting the API call into a Power Automate flow with an HTTP trigger.

Can a custom connector call APIs that require OAuth 2.0 authentication?

Yes. Custom connectors support multiple authentication types: API Key, Basic Authentication, OAuth 2.0 (Authorization Code and Client Credentials flows), and Windows Authentication. For OAuth 2.0, configure the authorization URL, token URL, client ID, and client secret in the connector's Security tab. The connector handles token refresh automatically.

How do I handle paginated API responses in a custom connector action?

Custom connectors do not natively handle pagination - each action call returns a single response. To handle pagination in Power Apps or Power Automate, call the action in a loop (Do Until or Apply to Each), incrementing the page parameter on each iteration and collecting results until the API returns an empty page or a no-more-data flag.

Can I share a custom connector across multiple environments in Power Platform?

Custom connectors are environment-specific by default. To deploy a connector to multiple environments, export it as a solution component from the source environment and import it into the target environments. When included in a managed solution, it can be distributed and updated centrally.

What is the maximum payload size a custom connector can handle?

Power Platform has a data operation limit of 100 MB for HTTP responses through connectors. For larger payloads, use chunked transfer if the API supports it, or retrieve only the data subset you need using API filtering parameters. Very large binary files should be handled separately via Azure Blob Storage.

How do I debug a custom connector action that is returning errors?

In Power Apps Studio, open the Monitor tool under Advanced Tools → Monitor to see the connector request and response in real time. In Power Automate, check the run history - expand the failed action to see the full request URL, headers, body sent, and the response status code and body received.

Can a custom connector be used in both Power Apps and Power Automate?

Yes. Once created, a custom connector is available in both Power Apps and Power Automate within the same environment. You can use the same connector definition in canvas apps, model-driven apps, and cloud flows without any additional setup.

Is there a limit on the number of actions a single custom connector can have?

There is no documented hard limit on actions per connector, but for maintainability, group related operations into a single connector and use clear naming conventions. Very large connectors can be split into multiple connectors by domain area - for example, one connector for read operations and one for write operations.

    Get in Touch