Hello Everyone,
I am encountering a critical issue while building Custom GPT Actions that integrate with the ClickUp API.
1. Situation
- I am trying to configure an action that calls the ClickUp API endpoint:
GET https://api.clickup.com/api/v2/team/{team_id}/task
- This endpoint supports advanced filtering, including by multiple assignee IDs, passed as repeated query parameters.
ClickUp expects this format:
GET /team/36242225/task?assignees=42540721&assignees=54088468
Each
assignees
parameter appears separately in the query string.
This is standard OpenAPI behavior with:
style: form
explode: true
2. Current OpenAPI Schema Setup
I defined the parameter in my Action schema as:
{
"name": "assignees",
"in": "query",
"required": false,
"style": "form",
"explode": true,
"schema": {
"type": "array",
"items": {
"type": "integer"
}
},
"description": "Filter by one or more assignee user IDs."
}
This is 100% compliant with the OpenAPI 3.1.0 specification.
According to the spec, this setup should serialize multiple
assignees
query params separately (e.g., assignees=1&assignees=2
).
3. Behavior in OpenAI Custom GPT Actions
Unfortunately, when running the Action:
- OpenAI’s environment does not handle
explode: true
correctly for array query parameters. - Instead of sending multiple separate
assignees=...&assignees=...
params, it incorrectly serializes the array into a single stringified format, or fails entirely. - As a result, the ClickUp API returns a 400 Bad Request:
{ "err": "assignees must be an array", "ECODE": "PUBAPITASK_017" }
Thus, the Action cannot successfully retrieve tasks filtered by assignee as needed.
4. How OpenAI’s Action Environment Currently Works
It appears that:
- The Action framework serializes array query parameters incorrectly.
explode: true
is ignored when building real outgoing API requests.- Arrays are either:
- Passed incorrectly as JSON inside a single query parameter (which ClickUp does not accept), or
- Flattened improperly.
This makes it impossible to work with APIs that use standard exploded array query parameters (like ClickUp, JIRA, Zendesk, and others).
5. What I need:
- Fix the OpenAI Custom Actions environment to correctly support:
style: form
explode: true
type: array
for query parameters.
- Make sure multiple repeated parameters (
param=value¶m=value
) are sent properly.
6. Why it matters:
Many large APIs, including ClickUp, JIRA, Zendesk, and others, require repeated parameters for filtering and bulk operations.
Without this fix, it is impossible to fully integrate GPTs with these real-world APIs using Custom Actions.
7. Optional: Example reference
OpenAPI official serialization rules for style: form, explode: true
:
- OpenAPI 3.1 Specification (Query Parameter Serialization)
Expected:
GET /team/36242225/task?assignees=123&assignees=456
but OpenAI GPT currently cannot produce that request.
Thank you very much for your help and attention!
This issue severely limits the real-world integration power of GPT Actions, and I would be happy to provide logs, examples, or help test any fixes.