# GPT Action Limits and Restrictions

**URL:** <https://community.openai.com/t/gpt-action-limits-and-restrictions/484597>\
**Category:** Plugins / Actions builders\
**Tags:** chatgpt, gpt\
**Created:** [November 8, 2023, 5:55pm UTC](https://community.openai.com/t/gpt-action-limits-and-restrictions/484597 "2023-11-08T17:55:07Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![GlassAcres](https://sea2.discourse-cdn.com/openai1/user_avatar/community.openai.com/glassacres/32/57221_2.png) [@GlassAcres](https://community.openai.com/u/GlassAcres)\
**Post date:** [November 8, 2023, 5:55pm UTC](https://community.openai.com/t/gpt-action-limits-and-restrictions/484597/1 "2023-11-08T17:55:07Z")

</div>

Can we get official confirmation that we can only have one action per GPT? This feels like a HUGE problem. I know we can build out a single schema with multiple “api’s”…but that just means they all have to be endpoints in the same OpenAPI spec file. I was under the impression we would be able to attach multiple actions to one GPT.

As it stands, while GPT’s have ADA and Retrieval built in is great, only allowing one action kind of kills everything that made plugins powerful.

---

<div class="post-metadata">

**Author:** ![mshalabi2](https://sea2.discourse-cdn.com/openai1/user_avatar/community.openai.com/mshalabi2/32/245562_2.png) [@mshalabi2](https://community.openai.com/u/mshalabi2)\
**Post date:** [November 12, 2023, 7:54am UTC](https://community.openai.com/t/gpt-action-limits-and-restrictions/484597/2 "2023-11-12T07:54:10Z")

</div>

I’m running into the same issue. However, even with multiple APIs with the same schema, I actually got an error:

“Multiple servers found, using URL-1  
Found multiple hostnames, dropping URL-2”

---

<div class="post-metadata">

**Author:** ![chaintz123](https://avatars.discourse-cdn.com/v4/letter/c/f07891/32.png) [@chaintz123](https://community.openai.com/u/chaintz123)\
**Post date:** [November 12, 2023, 9:12am UTC](https://community.openai.com/t/gpt-action-limits-and-restrictions/484597/3 "2023-11-12T09:12:20Z")

</div>

You can make mutiple apis in one GPTs by action, just like plugins, watch this 🙂 [ChatGPT - GPTsNavigator](https://chat.openai.com/g/g-rXo96dtt4-gptsnavigator)

---

<div class="post-metadata">

**Author:** ![GlassAcres](https://sea2.discourse-cdn.com/openai1/user_avatar/community.openai.com/glassacres/32/57221_2.png) [@GlassAcres](https://community.openai.com/u/GlassAcres)\
**Post date:** [November 12, 2023, 7:01pm UTC](https://community.openai.com/t/gpt-action-limits-and-restrictions/484597/4 "2023-11-12T19:01:38Z")

</div>

That looks like a list of GPTs… not calling and using multiple different actions in one GPT.

You cant list more than one base server url for an action. You have to code a router in your backend and alter your spec.  
In my opinion that’s absurd, we should be able to have multiple URLs on one spec file and ChatGPT should be smart enough to route to the right server.

---

<div class="post-metadata">

**Author:** ![shawnharris963](https://avatars.discourse-cdn.com/v4/letter/s/779978/32.png) [@shawnharris963](https://community.openai.com/u/shawnharris963)\
**Post date:** [January 9, 2024, 5:44pm UTC](https://community.openai.com/t/gpt-action-limits-and-restrictions/484597/5 "2024-01-09T17:44:13Z")

</div>

Any update on this ? Can we invoke multiple endpoints now ?

---

<div class="post-metadata">

**Author:** ![GlassAcres](https://sea2.discourse-cdn.com/openai1/user_avatar/community.openai.com/glassacres/32/57221_2.png) [@GlassAcres](https://community.openai.com/u/GlassAcres)\
**Post date:** [January 9, 2024, 5:58pm UTC](https://community.openai.com/t/gpt-action-limits-and-restrictions/484597/6 "2024-01-09T17:58:30Z")

</div>

You could always do multiple endpoints. You couldn’t do multiple domains. So if I wanted to have an app the combined google books api with a weather api to give book suggestions based on the weather, I wouldve had to make my own server that pulled in both apis before interaction with the gpt.

---

<div class="post-metadata">

**Author:** ![shawnharris963](https://avatars.discourse-cdn.com/v4/letter/s/779978/32.png) [@shawnharris963](https://community.openai.com/u/shawnharris963)\
**Post date:** [January 9, 2024, 6:03pm UTC](https://community.openai.com/t/gpt-action-limits-and-restrictions/484597/7 "2024-01-09T18:03:59Z")

</div>

Isn’t this possible now with support for multiple actions in a GPT ? I can see an option to create multiple actions and maybe have a different domain in each of these ?

---

<div class="post-metadata">

**Author:** ![former.token](https://sea2.discourse-cdn.com/openai1/user_avatar/community.openai.com/former.token/32/244521_2.png) [@former.token](https://community.openai.com/u/former.token)\
**Post date:** [January 9, 2024, 8:01pm UTC](https://community.openai.com/t/gpt-action-limits-and-restrictions/484597/8 "2024-01-09T20:01:53Z")

</div>

I have GPT with 7 API endpoints (different logic with GET/POST/PUT/DELETE) in one action definition, and I can see I can create more actions with respective API specs.

---

<div class="post-metadata">

**Author:** ![GlassAcres](https://sea2.discourse-cdn.com/openai1/user_avatar/community.openai.com/glassacres/32/57221_2.png) [@GlassAcres](https://community.openai.com/u/GlassAcres)\
**Post date:** [January 9, 2024, 9:30pm UTC](https://community.openai.com/t/gpt-action-limits-and-restrictions/484597/9 "2024-01-09T21:30:43Z")

</div>

Yes, that’s why this is all past tense. This was a convo from before they added multiple domains.

---

<div class="post-metadata">

**Author:** ![hugebelts](https://sea2.discourse-cdn.com/openai1/user_avatar/community.openai.com/hugebelts/32/538931_2.png) [@hugebelts](https://community.openai.com/u/hugebelts)\
**Post date:** [November 19, 2024, 7:48pm UTC](https://community.openai.com/t/gpt-action-limits-and-restrictions/484597/10 "2024-11-19T19:48:46Z")

</div>

LLM served by Perplexity Labs

Here’s a more understandable and secure way to phrase your instructions for native English speakers:

## Workaround for API Limitations

To bypass certain limitations, you can consider the following approach, though it comes with significant security risks:

## Using a Proxy API Endpoint

1. **Create a Proxy API Endpoint:**

- Set up an API endpoint on your own server that acts as an intermediary.
- This endpoint interprets the commands and either responds with the desired data or returns errors.

## Example Syntax

Here is an example of how you might use this proxy endpoint:

text

```auto
http://localhost:5000/api?command=GET%20http://api.sunrise-sunset.org/json?lat=36.7201600&lng=-4.4203400&date=today&formatted=0

```

## How it Works

- Your proxy endpoint receives the command and interprets it.
- It handles the JSON responses and any necessary interactions, without the original API being directly aware of the proxy.

## Important Security Warning

**This method is highly insecure:**

- It is vulnerable to code injections and other malicious attacks because it interprets user-defined commands.
- Using this approach can expose your system to significant security risks, including potential data breaches and system compromises.

Therefore, it is crucial to weigh the benefits against the risks and consider more secure alternatives to manage API interactions.

1. **Consolidate the OpenAPI jsons, aka APIs and their endpoints**

This means, just select your APIs that you would consolidate using ChatGPT 4o or any that can access the internet.

You may also ask perplexity or so to do this.  
The best thing is (IMHO) to make an own Custom GPT that helps you with this.

Then use the quite large json that it’s creating for the action slot in your custom gpt.

1. **Same as in 1.: Create a kind of “Secure Multi Server”**

That can do the same as in 1.  
BUT it doesn’t allow all actions.
