{
  "service": "customgpt",
  "displayName": "CustomGPT.ai",
  "categories": [
    "AI",
    "Productivity"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Key",
      "placeholder": "CUSTOMGPT_API_KEY",
      "description": "CustomGPT API key sent as an Authorization Bearer token. Create it in the CustomGPT profile API tab: https://app.customgpt.ai/profile#api."
    }
  ],
  "homepageUrl": "https://customgpt.ai",
  "actions": [
    {
      "id": "customgpt.create_conversation",
      "service": "customgpt",
      "name": "create_conversation",
      "description": "Create a CustomGPT conversation for an agent and return its session ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "projectId": {
            "type": "integer",
            "minimum": 1,
            "description": "The unique CustomGPT agent identifier used in project path parameters."
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "Optional conversation name."
          }
        },
        "additionalProperties": false,
        "required": [
          "projectId"
        ],
        "description": "Input parameters for creating a CustomGPT conversation."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "conversation": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "A CustomGPT object returned by the upstream API, preserving provider-defined fields."
          },
          "sessionId": {
            "anyOf": [
              {
                "type": "string",
                "description": "The session ID used for follow-up conversation messages."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "A CustomGPT object returned by the upstream API, preserving provider-defined fields."
          }
        },
        "additionalProperties": false,
        "description": "A CustomGPT conversation creation result."
      }
    },
    {
      "id": "customgpt.get_agent",
      "service": "customgpt",
      "name": "get_agent",
      "description": "Get details and current status for a CustomGPT agent.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "projectId": {
            "type": "integer",
            "minimum": 1,
            "description": "The unique CustomGPT agent identifier used in project path parameters."
          },
          "width": {
            "type": "string",
            "minLength": 1,
            "description": "Embed-code width to request from CustomGPT."
          },
          "height": {
            "type": "string",
            "minLength": 1,
            "description": "Embed-code height to request from CustomGPT."
          }
        },
        "additionalProperties": false,
        "required": [
          "projectId"
        ],
        "description": "Input parameters for retrieving a CustomGPT agent."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "agent": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "A CustomGPT object returned by the upstream API, preserving provider-defined fields."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "A CustomGPT object returned by the upstream API, preserving provider-defined fields."
          }
        },
        "additionalProperties": false,
        "description": "CustomGPT agent details."
      }
    },
    {
      "id": "customgpt.list_agents",
      "service": "customgpt",
      "name": "list_agents",
      "description": "List CustomGPT agents in the authenticated account with optional pagination.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page number to retrieve. Page numbering starts at 1."
          },
          "duration": {
            "type": "integer",
            "description": "The duration filter for agents when supported by CustomGPT."
          },
          "order": {
            "type": "string",
            "enum": [
              "asc",
              "desc"
            ],
            "description": "Sort direction for CustomGPT list results."
          },
          "orderBy": {
            "type": "string",
            "enum": [
              "id",
              "created_at"
            ],
            "description": "CustomGPT field used to sort list results."
          },
          "width": {
            "type": "string",
            "minLength": 1,
            "description": "Embed-code width to request from CustomGPT."
          },
          "height": {
            "type": "string",
            "minLength": 1,
            "description": "Embed-code height to request from CustomGPT."
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Agent name filter."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for listing CustomGPT agents."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "agents": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A CustomGPT object returned by the upstream API, preserving provider-defined fields."
            },
            "description": "CustomGPT agents returned for this page."
          },
          "pagination": {
            "type": "object",
            "properties": {
              "currentPage": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The current response page number."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "lastPage": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The last available page number."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "perPage": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The number of items returned per page."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "total": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The total number of items reported by CustomGPT."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "nextPageUrl": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The upstream URL for the next page when available."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "previousPageUrl": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The upstream URL for the previous page when available."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": false,
            "description": "Normalized pagination metadata from CustomGPT list responses."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "A CustomGPT object returned by the upstream API, preserving provider-defined fields."
          }
        },
        "additionalProperties": false,
        "description": "A page of CustomGPT agents."
      }
    },
    {
      "id": "customgpt.list_conversations",
      "service": "customgpt",
      "name": "list_conversations",
      "description": "List conversations for a CustomGPT agent.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "projectId": {
            "type": "integer",
            "minimum": 1,
            "description": "The unique CustomGPT agent identifier used in project path parameters."
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page number to retrieve. Page numbering starts at 1."
          },
          "order": {
            "type": "string",
            "enum": [
              "asc",
              "desc"
            ],
            "description": "Sort direction for CustomGPT list results."
          },
          "orderBy": {
            "type": "string",
            "enum": [
              "id",
              "created_at"
            ],
            "description": "CustomGPT field used to sort list results."
          },
          "userFilter": {
            "type": "string",
            "enum": [
              "all",
              "anonymous",
              "team_member",
              "me"
            ],
            "description": "Conversation user-type filter."
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Conversation name filter."
          },
          "lastUpdatedAfter": {
            "type": "string",
            "description": "Return conversations updated after this timestamp.",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "required": [
          "projectId"
        ],
        "description": "Input parameters for listing CustomGPT conversations."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "conversations": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A CustomGPT object returned by the upstream API, preserving provider-defined fields."
            },
            "description": "CustomGPT conversations returned for this page."
          },
          "pagination": {
            "type": "object",
            "properties": {
              "currentPage": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The current response page number."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "lastPage": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The last available page number."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "perPage": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The number of items returned per page."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "total": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The total number of items reported by CustomGPT."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "nextPageUrl": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The upstream URL for the next page when available."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "previousPageUrl": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The upstream URL for the previous page when available."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": false,
            "description": "Normalized pagination metadata from CustomGPT list responses."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "A CustomGPT object returned by the upstream API, preserving provider-defined fields."
          }
        },
        "additionalProperties": false,
        "description": "A page of CustomGPT conversations."
      }
    },
    {
      "id": "customgpt.list_documents",
      "service": "customgpt",
      "name": "list_documents",
      "description": "List indexed documents in a CustomGPT agent knowledge base.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "projectId": {
            "type": "integer",
            "minimum": 1,
            "description": "The unique CustomGPT agent identifier used in project path parameters."
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page number to retrieve. Page numbering starts at 1."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "description": "Maximum number of documents to return."
          },
          "order": {
            "type": "string",
            "enum": [
              "asc",
              "desc"
            ],
            "description": "Sort direction for CustomGPT list results."
          },
          "search": {
            "type": "string",
            "minLength": 1,
            "description": "Case-insensitive search term for document URL or filename."
          },
          "crawlStatus": {
            "type": "string",
            "enum": [
              "all",
              "ok",
              "failed",
              "n/a",
              "queued",
              "limited"
            ],
            "description": "Crawl status filter for documents."
          },
          "indexStatus": {
            "type": "string",
            "enum": [
              "all",
              "ok",
              "failed",
              "n/a",
              "queued",
              "limited"
            ],
            "description": "Index status filter for documents."
          }
        },
        "additionalProperties": false,
        "required": [
          "projectId"
        ],
        "description": "Input parameters for listing CustomGPT indexed documents."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "project": {
            "anyOf": [
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "The CustomGPT agent object returned with the document page."
              },
              {
                "type": "null"
              }
            ]
          },
          "documents": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A CustomGPT object returned by the upstream API, preserving provider-defined fields."
            },
            "description": "Indexed documents returned for this page."
          },
          "pagination": {
            "type": "object",
            "properties": {
              "currentPage": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The current response page number."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "lastPage": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The last available page number."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "perPage": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The number of items returned per page."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "total": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The total number of items reported by CustomGPT."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "nextPageUrl": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The upstream URL for the next page when available."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "previousPageUrl": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The upstream URL for the previous page when available."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": false,
            "description": "Normalized pagination metadata from CustomGPT list responses."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "A CustomGPT object returned by the upstream API, preserving provider-defined fields."
          }
        },
        "additionalProperties": false,
        "description": "A page of indexed CustomGPT documents."
      }
    },
    {
      "id": "customgpt.list_messages",
      "service": "customgpt",
      "name": "list_messages",
      "description": "List messages in a CustomGPT conversation.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "projectId": {
            "type": "integer",
            "minimum": 1,
            "description": "The unique CustomGPT agent identifier used in project path parameters."
          },
          "sessionId": {
            "type": "string",
            "minLength": 1,
            "description": "The CustomGPT conversation session ID."
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page number to retrieve. Page numbering starts at 1."
          },
          "order": {
            "type": "string",
            "enum": [
              "asc",
              "desc"
            ],
            "description": "Sort direction for CustomGPT list results."
          },
          "includeInsights": {
            "type": "boolean",
            "description": "Whether CustomGPT should include customer intelligence data."
          }
        },
        "additionalProperties": false,
        "required": [
          "projectId",
          "sessionId"
        ],
        "description": "Input parameters for listing CustomGPT conversation messages."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "messages": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A CustomGPT object returned by the upstream API, preserving provider-defined fields."
            },
            "description": "CustomGPT messages returned for this page."
          },
          "pagination": {
            "type": "object",
            "properties": {
              "currentPage": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The current response page number."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "lastPage": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The last available page number."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "perPage": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The number of items returned per page."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "total": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The total number of items reported by CustomGPT."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "nextPageUrl": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The upstream URL for the next page when available."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "previousPageUrl": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The upstream URL for the previous page when available."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": false,
            "description": "Normalized pagination metadata from CustomGPT list responses."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "A CustomGPT object returned by the upstream API, preserving provider-defined fields."
          }
        },
        "additionalProperties": false,
        "description": "A page of CustomGPT conversation messages."
      }
    },
    {
      "id": "customgpt.send_message",
      "service": "customgpt",
      "name": "send_message",
      "description": "Send a non-streaming text prompt to a CustomGPT conversation and return the agent response.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "projectId": {
            "type": "integer",
            "minimum": 1,
            "description": "The unique CustomGPT agent identifier used in project path parameters."
          },
          "sessionId": {
            "type": "string",
            "minLength": 1,
            "description": "The CustomGPT conversation session ID."
          },
          "prompt": {
            "type": "string",
            "minLength": 1,
            "description": "Prompt text to send to the CustomGPT agent."
          },
          "lang": {
            "type": "string",
            "minLength": 2,
            "description": "ISO 639-1 language code for the response language."
          },
          "externalId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128,
            "description": "External prompt history identifier."
          },
          "customPersona": {
            "type": "string",
            "minLength": 1,
            "description": "Request-only persona override."
          },
          "chatbotModel": {
            "type": "string",
            "minLength": 1,
            "description": "CustomGPT chatbot model identifier."
          },
          "responseSource": {
            "type": "string",
            "enum": [
              "default",
              "own_content",
              "openai_content"
            ],
            "description": "Knowledge source mode for the response."
          },
          "customContext": {
            "type": "string",
            "minLength": 1,
            "description": "Custom context supplied with this prompt."
          },
          "agentCapability": {
            "type": "string",
            "enum": [
              "fastest-responses",
              "optimal-choice",
              "advanced-reasoning",
              "complex-tasks"
            ],
            "description": "CustomGPT agent capability preset."
          },
          "labels": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 100,
              "description": "A CustomGPT source label ID or name."
            },
            "description": "Source label IDs or names to search as one CustomGPT OR label group.",
            "minItems": 1,
            "maxItems": 50
          },
          "labelsExclusive": {
            "type": "boolean",
            "description": "Whether CustomGPT should search only pages with provided labels."
          },
          "actionOverrides": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Per-request action override object JSON-encoded into multipart form data."
          }
        },
        "additionalProperties": false,
        "required": [
          "projectId",
          "sessionId",
          "prompt"
        ],
        "description": "Input parameters for sending a CustomGPT conversation message."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "A CustomGPT object returned by the upstream API, preserving provider-defined fields."
          },
          "messageId": {
            "anyOf": [
              {
                "type": "integer",
                "description": "The CustomGPT prompt history identifier."
              },
              {
                "type": "null"
              }
            ]
          },
          "response": {
            "anyOf": [
              {
                "type": "string",
                "description": "The agent response text when CustomGPT returned one."
              },
              {
                "type": "null"
              }
            ]
          },
          "citations": {
            "description": "Citation payload returned by CustomGPT for the message."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "A CustomGPT object returned by the upstream API, preserving provider-defined fields."
          }
        },
        "additionalProperties": false,
        "description": "A CustomGPT non-streaming message response."
      }
    }
  ]
}
