Superface

Superface · Actions GPT

Superface Hub

  • POST /api/hub/sessionsuperface_hub_configuration

    Get link with tools list and configurations

  • POST /api/hub/perform/calendar-management__add-conference-link__AddConferenceLinkcalendar-management__add-conference-link__AddConferenceLink

    Creates Google Meet link and updates an existing event in Google Calendar.

  • POST /api/hub/perform/calendar-management__create-event__InsertEventcalendar-management__create-event__InsertEvent

    Creates a new event in the specified calendar based on provided details.

  • POST /api/hub/perform/calendar-management__delete-event__DeleteEventcalendar-management__delete-event__DeleteEvent

    Deletes an event in Google Calendar.

  • POST /api/hub/perform/calendar-management__find-calendar__CalendarSearchcalendar-management__find-calendar__CalendarSearch

    Search for calendars by name or ID in the user's list of Google Calendars. The result will be a list of calendars whose names include the search term, or a single calendar whose ID matches the search term exactly. You can use search term 'primary' to find the user's primary calendar.

  • POST /api/hub/perform/calendar-management__get-event__RetrieveEventcalendar-management__get-event__RetrieveEvent

    Returns an event based on its Google Calendar ID.

  • POST /api/hub/perform/calendar-management__get-primary-calendar__GetPrimaryCalendarcalendar-management__get-primary-calendar__GetPrimaryCalendar

    Get the user's primary calendar.

  • POST /api/hub/perform/calendar-management__list-calendars__ListUserCalendarscalendar-management__list-calendars__ListUserCalendars

    Retrieve the list of calendars from the user's calendar list using the Google Calendar API.

  • POST /api/hub/perform/calendar-management__list-events__ListCalendarEventscalendar-management__list-events__ListCalendarEvents

    Returns events on the specified calendar. Inform the user that there are move events if nextPageToken is present in the result. Instead of printing the event ID to the user, prefer to print the event summary.

  • POST /api/hub/perform/calendar-management__update-event__UpdateEventcalendar-management__update-event__UpdateEvent

    Updates an existing event in Google Calendar based on its Google Calendar ID.

  • POST /api/hub/perform/chat-management__channel-history__FetchChannelHistorychat-management__channel-history__FetchChannelHistory

    Fetches a channel history of messages and events. Always use the channel ID as the channel_id input parameter, if you do not have the ID, get it using the List Channels tool.

  • POST /api/hub/perform/chat-management__list-channels__ListChannelschat-management__list-channels__ListChannels

    Retrieve a list of channels in a workspace, including public channels, private channels, direct messages, and group messages.

  • POST /api/hub/perform/chat-management__post-message__SendMessagechat-management__post-message__SendMessage

    Send a Slack message into a channel.

  • POST /api/hub/perform/gmail__send-message__SendMessagegmail__send-message__SendMessage

    Send an email message.

  • POST /api/hub/perform/google-sheets__add-column__AddColumngoogle-sheets__add-column__AddColumn

    Updates next empty column in specified spreadsheet sheet, returns updated sheet

  • POST /api/hub/perform/google-sheets__add-row__AddRowgoogle-sheets__add-row__AddRow

    Updates next empty row in specified spreadsheet sheet, returns updated sheet

  • POST /api/hub/perform/google-sheets__append-rows__AppendRowsgoogle-sheets__append-rows__AppendRows

    Updates next empty rows in specified spreadsheet sheet.

  • POST /api/hub/perform/google-sheets__find-rows__FindRowsgoogle-sheets__find-rows__FindRows

    Fetches the specified sheet rows within spreadsheet, filters the rows by specified column values.

  • POST /api/hub/perform/google-sheets__get-spreadsheet__RetrieveSpreadsheetgoogle-sheets__get-spreadsheet__RetrieveSpreadsheet

    Fetches the specified spreadsheet, with optional grid data inclusion.

  • POST /api/hub/perform/google-sheets__post-sheets__CreateSheetgoogle-sheets__post-sheets__CreateSheet

    Creates a new sheet in specified (existing) spreadsheet and returns the created sheet data.

  • POST /api/hub/perform/google-sheets__post-spreadsheets__CreateSpreadsheetgoogle-sheets__post-spreadsheets__CreateSpreadsheet

    Creates a new spreadsheet and returns the created spreadsheet.

  • POST /api/hub/perform/google-sheets__put-spreadsheets__UpdateSpreadsheetgoogle-sheets__put-spreadsheets__UpdateSpreadsheet

    Updates specified spreadsheet sheet, returns updated sheet. Use the `get-spreadsheet` usecase to get the current data. Rows and columns are indexed from 0. The data is written to the sheet starting from the cell specified by updatePosition input.

  • POST /api/hub/perform/todo__complete-task__CompleteTasktodo__complete-task__CompleteTask

    Closes a specified task in the Todoist application. Regular tasks are marked complete and moved to history, along with their subtasks. Tasks with recurring due dates will be scheduled to their next occurrence.

  • POST /api/hub/perform/todo__create-project__CreateProjecttodo__create-project__CreateProject

    Create a new project in the user's Todoist account.

  • POST /api/hub/perform/todo__create-task__CreateTasktodo__create-task__CreateTask

    Create a new task in a project using the Todoist API.

  • POST /api/hub/perform/todo__find-project__FindProjecttodo__find-project__FindProject

    Finds projects in a user's Todoist account by the desired project name.

  • POST /api/hub/perform/todo__get-task__GetTasktodo__get-task__GetTask

    Retrieve a single active task by its ID from the Todoist API. Returns the task details as a JSON object.

  • POST /api/hub/perform/todo__list-tasks__ListTaskstodo__list-tasks__ListTasks

    Fetches a list of all active tasks from the user's Todoist account. The tasks can be filtered by project, section, label, and other supported filters. The service returns a list of tasks with their details.

  • POST /api/hub/perform/todo__update-task__UpdateTasktodo__update-task__UpdateTask

    Update a specific task's properties, such as due_string, in the Todoist API.

  • POST /api/hub/perform/weather__current-weather__CurrentWeatherweather__current-weather__CurrentWeather

    Retrieve current weather information for a specified location.

Schéma original API
{
  "openapi": "3.1.0",
  "info": {
    "version": "1.0.0",
    "title": "Superface Hub"
  },
  "security": [
    {
      "bearer_token": []
    }
  ],
  "paths": {
    "/api/hub/session": {
      "post": {
        "operationId": "superface_hub_configuration",
        "description": "Get link with tools list and configurations",
        "x-openai-isConsequential": true,
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {},
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "default": {
            "description": "Tool configuration response"
          }
        }
      }
    },
    "/api/hub/perform/calendar-management__add-conference-link__AddConferenceLink": {
      "post": {
        "operationId": "calendar-management__add-conference-link__AddConferenceLink",
        "description": "Creates Google Meet link and updates an existing event in Google Calendar.\n",
        "x-openai-isConsequential": true,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "calendarId",
                  "eventId",
                  "conferenceSolutionType"
                ],
                "properties": {
                  "calendarId": {
                    "type": "string",
                    "title": "Calendar identifier. Use 'primary' for the primary calendar of the currently logged in user."
                  },
                  "eventId": {
                    "type": "string",
                    "title": "Event identifier."
                  },
                  "conferenceSolutionType": {
                    "enum": [
                      "hangoutsMeet"
                    ],
                    "title": "Which conference solution to use for the event. The conference solution type has to be supported by the calendar."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "default": {
            "description": "Tool response"
          }
        }
      }
    },
    "/api/hub/perform/calendar-management__create-event__InsertEvent": {
      "post": {
        "operationId": "calendar-management__create-event__InsertEvent",
        "description": "Creates a new event in the specified calendar based on provided details.\n",
        "x-openai-isConsequential": true,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "calendarId",
                  "event"
                ],
                "properties": {
                  "maxAttendees": {
                    "type": "number",
                    "title": "The maximum number of attendees to include in the response."
                  },
                  "calendarId": {
                    "type": "string",
                    "title": "Calendar identifier. Use the 'primary' keyword for the primary calendar of the currently logged in user."
                  },
                  "event": {
                    "type": "object",
                    "required": [
                      "description",
                      "name",
                      "start",
                      "end",
                      "attendees"
                    ],
                    "properties": {
                      "description": {
                        "type": "string"
                      },
                      "name": {
                        "type": "string"
                      },
                      "location": {
                        "type": "string"
                      },
                      "start": {
                        "type": "object",
                        "required": [
                          "dateTime"
                        ],
                        "properties": {
                          "dateTime": {
                            "type": "string",
                            "title": "Start date time of the event (formatted according to RFC3339). A time zone offset is required unless a time zone is explicitly specified in timeZone."
                          },
                          "timeZone": {
                            "type": "string",
                            "title": "The time zone in which the time is specified. (Formatted as an IANA Time Zone Database name, e.g. \"Europe/Zurich\".)"
                          }
                        }
                      },
                      "end": {
                        "type": "object",
                        "required": [
                          "dateTime"
                        ],
                        "properties": {
                          "dateTime": {
                            "type": "string",
                            "title": "Start date time of the event (formatted according to RFC3339). A time zone offset is required unless a time zone is explicitly specified in timeZone."
                          },
                          "timeZone": {
                            "type": "string",
                            "title": "The time zone in which the time is specified. (Formatted as an IANA Time Zone Database name, e.g. \"Europe/Zurich\".)"
                          }
                        }
                      },
                      "attendees": {
                        "items": {
                          "type": "object",
                          "required": [
                            "email",
                            "displayName",
                            "optional"
                          ],
                          "properties": {
                            "email": {
                              "type": "string"
                            },
                            "displayName": {
                              "type": "string"
                            },
                            "optional": {
                              "type": "boolean"
                            }
                          }
                        },
                        "type": "array"
                      },
                      "conferenceSolutionType": {
                        "enum": [
                          "hangoutsMeet",
                          "none"
                        ],
                        "title": "Which conferencing solution to use for the event. Use none if no conference link is to be created. The default is none. The conference solution type has to be supported by the calendar."
                      },
                      "sendUpdates": {
                        "enum": [
                          "all",
                          "externalOnly",
                          "none"
                        ],
                        "description": "Warning: Using the value none can have significant adverse effects, including events not syncing to external calendars or events being lost altogether for some users. For calendar migration tasks, consider using the events.import method instead.",
                        "title": "Whether to send notifications about the creation of the new event. Note that some emails might still be sent. The default is all."
                      }
                    },
                    "title": "Event object containing event details."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "default": {
            "description": "Tool response"
          }
        }
      }
    },
    "/api/hub/perform/calendar-management__delete-event__DeleteEvent": {
      "post": {
        "operationId": "calendar-management__delete-event__DeleteEvent",
        "description": "Deletes an event in Google Calendar.\n",
        "x-openai-isConsequential": true,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "calendarId",
                  "eventId"
                ],
                "properties": {
                  "calendarId": {
                    "type": "string",
                    "title": "Calendar identifier. Use 'primary' for the primary calendar of the currently logged in user."
                  },
                  "eventId": {
                    "type": "string",
                    "title": "Event identifier."
                  },
                  "sendUpdates": {
                    "enum": [
                      "all",
                      "externalOnly",
                      "none"
                    ],
                    "title": "Guests who should receive notifications about the deletion of the event."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "default": {
            "description": "Tool response"
          }
        }
      }
    },
    "/api/hub/perform/calendar-management__find-calendar__CalendarSearch": {
      "post": {
        "operationId": "calendar-management__find-calendar__CalendarSearch",
        "description": "Search for calendars by name or ID in the user's list of Google Calendars. The result will be a list of calendars whose names include the search term, or a single calendar whose ID matches the search term exactly. You can use search term 'primary' to find the user's primary calendar.\n",
        "x-openai-isConsequential": false,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "searchTerm": {
                    "type": "string",
                    "title": "The name or ID of the calendar to search for. This value is used to match against the calendar's name or ID. You can use search term 'primary' to find the user's primary calendar."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "default": {
            "description": "Tool response"
          }
        }
      }
    },
    "/api/hub/perform/calendar-management__get-event__RetrieveEvent": {
      "post": {
        "operationId": "calendar-management__get-event__RetrieveEvent",
        "description": "Returns an event based on its Google Calendar ID.\n",
        "x-openai-isConsequential": false,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "calendarId",
                  "eventId"
                ],
                "properties": {
                  "calendarId": {
                    "type": "string",
                    "title": "Calendar identifier. Use the 'primary' keyword for the primary calendar of the currently logged in user."
                  },
                  "eventId": {
                    "type": "string",
                    "title": "Event identifier."
                  },
                  "maxAttendees": {
                    "type": "number",
                    "title": "The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "default": {
            "description": "Tool response"
          }
        }
      }
    },
    "/api/hub/perform/calendar-management__get-primary-calendar__GetPrimaryCalendar": {
      "post": {
        "operationId": "calendar-management__get-primary-calendar__GetPrimaryCalendar",
        "description": "Get the user's primary calendar.\n",
        "x-openai-isConsequential": false,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        },
        "responses": {
          "default": {
            "description": "Tool response"
          }
        }
      }
    },
    "/api/hub/perform/calendar-management__list-calendars__ListUserCalendars": {
      "post": {
        "operationId": "calendar-management__list-calendars__ListUserCalendars",
        "description": "Retrieve the list of calendars from the user's calendar list using the Google Calendar API.\n",
        "x-openai-isConsequential": false,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "maxResults": {
                    "type": "number",
                    "title": "Specifies the maximum number of results to be returned by the request. The maximum can not exceed 250. The default value is 100."
                  },
                  "minAccessRole": {
                    "enum": [
                      "freeBusyReader",
                      "owner",
                      "reader",
                      "writer"
                    ],
                    "title": "Filters the calendars returned by the minimum access role the user has. Options include 'freeBusyReader', 'owner', 'reader', and 'writer'."
                  },
                  "pageToken": {
                    "type": "string",
                    "title": "Token specifying which result page to return. Used for pagination."
                  },
                  "showDeleted": {
                    "type": "boolean",
                    "title": "Determines whether to include deleted calendar list entries. The default is false."
                  },
                  "showHidden": {
                    "type": "boolean",
                    "title": "Determines whether to show hidden entries. The default is false."
                  },
                  "syncToken": {
                    "type": "string",
                    "title": "Token obtained from the nextSyncToken field returned on the last page of results from the previous list request. It makes the result of this list request contain only entries that have changed since then."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "default": {
            "description": "Tool response"
          }
        }
      }
    },
    "/api/hub/perform/calendar-management__list-events__ListCalendarEvents": {
      "post": {
        "operationId": "calendar-management__list-events__ListCalendarEvents",
        "description": "Returns events on the specified calendar.\nInform the user that there are move events if nextPageToken is present in the result. Instead of printing the event ID to the user, prefer to print the event summary.",
        "x-openai-isConsequential": false,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "calendarId"
                ],
                "properties": {
                  "calendarId": {
                    "type": "string",
                    "title": "Calendar identifier. Use the 'primary' keyword for the primary calendar of the currently logged in user."
                  },
                  "maxResults": {
                    "type": "number",
                    "title": "Maximum number of events returned on one result page. The number of events in the resulting page may be less than this value, or none at all, even if there are more events matching the query."
                  },
                  "pageToken": {
                    "type": "string",
                    "title": "Token specifying which result page to return."
                  },
                  "q": {
                    "type": "string",
                    "title": "Free text search terms to find events that match these terms in the following fields: summary, description, location, attendee's displayName, attendee's email."
                  },
                  "timeMax": {
                    "type": "string",
                    "title": "Upper bound (exclusive) for an event's start time to filter by. The default is not to filter by start time. Must be an RFC3339 timestamp with mandatory time zone offset."
                  },
                  "timeMin": {
                    "type": "string",
                    "title": "Lower bound (exclusive) for an event's end time to filter by. The default is not to filter by end time. Must be an RFC3339 timestamp with mandatory time zone offset."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "default": {
            "description": "Tool response"
          }
        }
      }
    },
    "/api/hub/perform/calendar-management__update-event__UpdateEvent": {
      "post": {
        "operationId": "calendar-management__update-event__UpdateEvent",
        "description": "Updates an existing event in Google Calendar based on its Google Calendar ID.\n",
        "x-openai-isConsequential": true,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "calendarId",
                  "eventId",
                  "event"
                ],
                "properties": {
                  "calendarId": {
                    "type": "string",
                    "title": "Calendar identifier. Use 'primary' for the primary calendar of the currently logged in user."
                  },
                  "eventId": {
                    "type": "string",
                    "title": "Event identifier."
                  },
                  "event": {
                    "type": "object",
                    "required": [
                      "summary",
                      "location",
                      "start",
                      "end"
                    ],
                    "properties": {
                      "summary": {
                        "type": "string",
                        "title": "Title of the event."
                      },
                      "location": {
                        "type": "string",
                        "title": "Geographical location of the event as free-form text."
                      },
                      "start": {
                        "type": "object",
                        "required": [
                          "dateTime",
                          "timeZone"
                        ],
                        "properties": {
                          "dateTime": {
                            "type": "string",
                            "title": "The start time of the event, as a combined date-time value (formatted according to RFC3339). A time zone offset is required unless a time zone is explicitly specified in timeZone."
                          },
                          "timeZone": {
                            "type": "string",
                            "title": "The time zone in which the time is specified. (Formatted as an IANA Time Zone Database name, e.g. 'Europe/Zurich'.)"
                          }
                        }
                      },
                      "end": {
                        "type": "object",
                        "required": [
                          "dateTime",
                          "timeZone"
                        ],
                        "properties": {
                          "dateTime": {
                            "type": "string",
                            "title": "The end time of the event, as a combined date-time value (formatted according to RFC3339). A time zone offset is required unless a time zone is explicitly specified in timeZone."
                          },
                          "timeZone": {
                            "type": "string",
                            "title": "The time zone in which the time is specified. (Formatted as an IANA Time Zone Database name, e.g. 'Europe/Zurich'.)"
                          }
                        }
                      },
                      "attendees": {
                        "items": {
                          "type": "object",
                          "required": [
                            "email",
                            "displayName",
                            "optional"
                          ],
                          "properties": {
                            "email": {
                              "type": "string"
                            },
                            "displayName": {
                              "type": "string"
                            },
                            "optional": {
                              "type": "boolean"
                            }
                          }
                        },
                        "type": "array"
                      },
                      "extendedProperties": {
                        "type": "object",
                        "required": [
                          "private",
                          "shared"
                        ],
                        "properties": {
                          "private": {
                            "type": "object",
                            "properties": {}
                          },
                          "shared": {
                            "type": "object",
                            "properties": {}
                          }
                        }
                      },
                      "hangoutLink": {
                        "type": "string"
                      },
                      "reminders": {
                        "type": "object",
                        "required": [
                          "useDefault",
                          "overrides"
                        ],
                        "properties": {
                          "useDefault": {
                            "type": "boolean"
                          },
                          "overrides": {
                            "items": {
                              "type": "object",
                              "required": [
                                "method",
                                "minutes"
                              ],
                              "properties": {
                                "method": {
                                  "type": "string"
                                },
                                "minutes": {
                                  "type": "number"
                                }
                              }
                            },
                            "type": "array"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "default": {
            "description": "Tool response"
          }
        }
      }
    },
    "/api/hub/perform/chat-management__channel-history__FetchChannelHistory": {
      "post": {
        "operationId": "chat-management__channel-history__FetchChannelHistory",
        "description": "Fetches a channel history of messages and events.\nAlways use the channel ID as the channel_id input parameter, if you do not have the ID, get it using the List Channels tool.",
        "x-openai-isConsequential": false,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "channel_id"
                ],
                "properties": {
                  "channel_id": {
                    "type": "string",
                    "title": "Conversation ID to fetch history for."
                  },
                  "latest": {
                    "type": "number",
                    "title": "End of time range of messages to include in results."
                  },
                  "oldest": {
                    "type": "number",
                    "title": "Start of time range of messages to include in results."
                  },
                  "limit": {
                    "type": "number",
                    "title": "The maximum number of items to return. Fewer than the requested number of items may be returned, even if the end of the users list hasn't been reached. Default is 100 but use 10"
                  },
                  "cursor": {
                    "type": "string",
                    "title": "Paginate through collections of data by setting the `cursor` parameter to a `next_cursor` attribute returned by a previous request's `response_metadata`. Default value (undefined) fetches the first 'page' of the collection."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "default": {
            "description": "Tool response"
          }
        }
      }
    },
    "/api/hub/perform/chat-management__list-channels__ListChannels": {
      "post": {
        "operationId": "chat-management__list-channels__ListChannels",
        "description": "Retrieve a list of channels in a workspace, including public channels, private channels, direct messages, and group messages.\n",
        "x-openai-isConsequential": false,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "cursor": {
                    "type": "string",
                    "title": "Paginate through collections of data by setting the `cursor` parameter to a `next_cursor` attribute returned by a previous request's `response_metadata`. Default value (undefined) fetches the first 'page' of the collection."
                  },
                  "exclude_archived": {
                    "type": "boolean",
                    "title": "Set to 'true' to exclude archived channels from the list."
                  },
                  "limit": {
                    "type": "number",
                    "title": "The maximum number of items to return. Use 10 at most for better performance"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "default": {
            "description": "Tool response"
          }
        }
      }
    },
    "/api/hub/perform/chat-management__post-message__SendMessage": {
      "post": {
        "operationId": "chat-management__post-message__SendMessage",
        "description": "Send a Slack message into a channel.\n",
        "x-openai-isConsequential": true,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "channel",
                  "text"
                ],
                "properties": {
                  "channel": {
                    "type": "string",
                    "title": "Channel to send message to. Can be a public channel, private group, or IM channel. Can be an encoded ID or a name."
                  },
                  "text": {
                    "type": "string",
                    "title": "Text of the message to send."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "default": {
            "description": "Tool response"
          }
        }
      }
    },
    "/api/hub/perform/gmail__send-message__SendMessage": {
      "post": {
        "operationId": "gmail__send-message__SendMessage",
        "description": "Send an email message.\n",
        "x-openai-isConsequential": true,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "userId",
                  "toRecipients",
                  "from",
                  "subject",
                  "body"
                ],
                "properties": {
                  "userId": {
                    "type": "string",
                    "title": "The user's email address. The special value me can be used to indicate the authenticated user."
                  },
                  "toRecipients": {
                    "items": {
                      "type": "string"
                    },
                    "type": "array",
                    "title": "Email addresses of the recipients."
                  },
                  "ccRecipients": {
                    "items": {
                      "type": "string"
                    },
                    "type": "array",
                    "title": "Email addresses of the \"carbon\" copy recipients."
                  },
                  "bccRecipients": {
                    "items": {
                      "type": "string"
                    },
                    "type": "array",
                    "title": "Email addresses of the \"blind carbon\" copy recipients. Recipients will receive the email without other recipients being aware."
                  },
                  "from": {
                    "type": "string",
                    "title": "Address of the sender."
                  },
                  "subject": {
                    "type": "string",
                    "title": "The message subject."
                  },
                  "mimeType": {
                    "enum": [
                      "TEXT_PLAIN",
                      "TEXT_HTML"
                    ],
                    "title": "The message body mime type. Default is TEXT_PLAIN."
                  },
                  "body": {
                    "type": "string",
                    "title": "The message body."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "default": {
            "description": "Tool response"
          }
        }
      }
    },
    "/api/hub/perform/google-sheets__add-column__AddColumn": {
      "post": {
        "operationId": "google-sheets__add-column__AddColumn",
        "description": "Updates next empty column in specified spreadsheet sheet, returns updated sheet\n",
        "x-openai-isConsequential": true,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "spreadsheetId",
                  "rows"
                ],
                "properties": {
                  "spreadsheetId": {
                    "type": "string",
                    "title": "The ID of the spreadsheet to update."
                  },
                  "sheetName": {
                    "type": "string",
                    "title": "The name of the sheet to update. If not specified, the first sheet will be updated."
                  },
                  "rows": {
                    "items": {
                      "oneOf": [
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "string"
                        }
                      ]
                    },
                    "type": "array",
                    "title": "The values in the column, each item is a value of a cell."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "default": {
            "description": "Tool response"
          }
        }
      }
    },
    "/api/hub/perform/google-sheets__add-row__AddRow": {
      "post": {
        "operationId": "google-sheets__add-row__AddRow",
        "description": "Updates next empty row in specified spreadsheet sheet, returns updated sheet\n",
        "x-openai-isConsequential": true,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "spreadsheetId",
                  "columns"
                ],
                "properties": {
                  "spreadsheetId": {
                    "type": "string",
                    "title": "The ID of the spreadsheet to update."
                  },
                  "sheetName": {
                    "type": "string",
                    "title": "The name of the sheet to update. If not specified, the first sheet will be updated."
                  },
                  "columns": {
                    "items": {
                      "oneOf": [
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "string"
                        }
                      ]
                    },
                    "type": "array",
                    "title": "The values in the row, each item is a value of a cell."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "default": {
            "description": "Tool response"
          }
        }
      }
    },
    "/api/hub/perform/google-sheets__append-rows__AppendRows": {
      "post": {
        "operationId": "google-sheets__append-rows__AppendRows",
        "description": "Updates next empty rows in specified spreadsheet sheet.\n",
        "x-openai-isConsequential": true,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "spreadsheetId",
                  "rows"
                ],
                "properties": {
                  "spreadsheetId": {
                    "type": "string",
                    "title": "The ID of the spreadsheet to update."
                  },
                  "sheetName": {
                    "type": "string",
                    "title": "The name of the sheet to update. If not specified, the first sheet will be updated."
                  },
                  "rows": {
                    "items": {
                      "items": {
                        "oneOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "type": "number"
                          },
                          {
                            "type": "string"
                          }
                        ]
                      },
                      "type": "array"
                    },
                    "type": "array",
                    "description": "rows = [\n  //First row data\n  [\n    // First row and first column value\n    \"example\",\n    // First row and second column value\n    1,\n    // First row and third column value\n    true\n  ]\n  //second row data\n  []\n]",
                    "title": "The values in the rows, each item is a list of values in a row. Use it like this:"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "default": {
            "description": "Tool response"
          }
        }
      }
    },
    "/api/hub/perform/google-sheets__find-rows__FindRows": {
      "post": {
        "operationId": "google-sheets__find-rows__FindRows",
        "description": "Fetches the specified sheet rows within spreadsheet, filters the rows by specified column values.\n",
        "x-openai-isConsequential": false,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "spreadsheetId"
                ],
                "properties": {
                  "spreadsheetId": {
                    "type": "string",
                    "title": "The spreadsheet."
                  },
                  "sheetTitleOrId": {
                    "type": "string",
                    "title": "The title or ID of the sheet. If not specified, the first sheet will be used."
                  },
                  "columnIndexesOrNames": {
                    "items": {
                      "oneOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "string"
                        }
                      ]
                    },
                    "type": "array",
                    "title": "Column indexes or names from the header row to match. And operator is used to match all columns."
                  },
                  "columnValues": {
                    "items": {
                      "oneOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        }
                      ]
                    },
                    "type": "array",
                    "title": "Column values to match."
                  },
                  "maxRows": {
                    "type": "number",
                    "title": "Maximum number of rows to return. If not specified, all rows will be returned."
                  },
                  "headerRowIndex": {
                    "type": "number",
                    "title": "The row index of the header row. If not specified, the first row will be used."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "default": {
            "description": "Tool response"
          }
        }
      }
    },
    "/api/hub/perform/google-sheets__get-spreadsheet__RetrieveSpreadsheet": {
      "post": {
        "operationId": "google-sheets__get-spreadsheet__RetrieveSpreadsheet",
        "description": "Fetches the specified spreadsheet, with optional grid data inclusion.\n",
        "x-openai-isConsequential": false,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "spreadsheetId"
                ],
                "properties": {
                  "spreadsheetId": {
                    "type": "string",
                    "title": "The spreadsheet to request."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "default": {
            "description": "Tool response"
          }
        }
      }
    },
    "/api/hub/perform/google-sheets__post-sheets__CreateSheet": {
      "post": {
        "operationId": "google-sheets__post-sheets__CreateSheet",
        "description": "Creates a new sheet in specified (existing) spreadsheet and returns the created sheet data.\n",
        "x-openai-isConsequential": true,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "spreadsheetId",
                  "sheet"
                ],
                "properties": {
                  "spreadsheetId": {
                    "type": "string",
                    "title": "ID of the spreadsheet to create the sheet in."
                  },
                  "sheet": {
                    "type": "object",
                    "required": [
                      "title"
                    ],
                    "properties": {
                      "title": {
                        "type": "string",
                        "title": "The title of the sheet."
                      },
                      "rows": {
                        "items": {
                          "type": "object",
                          "properties": {
                            "columns": {
                              "items": {
                                "type": "object",
                                "properties": {
                                  "boolValue": {
                                    "type": "boolean",
                                    "title": "Represents a boolean value."
                                  },
                                  "formulaValue": {
                                    "type": "string",
                                    "title": "Represents a formula."
                                  },
                                  "numberValue": {
                                    "type": "number",
                                    "title": "Represents a double value. Note: Dates, Times and DateTimes are represented as doubles in SERIAL_NUMBER format."
                                  },
                                  "stringValue": {
                                    "type": "string",
                                    "title": "Represents a string value. Leading single quotes are not included. For example, if the user typed `'123` into the UI, this would be represented as a `stringValue` of `'123'`."
                                  }
                                }
                              },
                              "type": "array",
                              "title": "The values in the column, each item is one value"
                            }
                          }
                        },
                        "type": "array",
                        "title": "The values in the row, each item is one row. If you want to add multiple rows you must add multiple items to this list."
                      }
                    },
                    "title": "The sheet to be created."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "default": {
            "description": "Tool response"
          }
        }
      }
    },
    "/api/hub/perform/google-sheets__post-spreadsheets__CreateSpreadsheet": {
      "post": {
        "operationId": "google-sheets__post-spreadsheets__CreateSpreadsheet",
        "description": "Creates a new spreadsheet and returns the created spreadsheet.\n",
        "x-openai-isConsequential": true,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "spreadsheet"
                ],
                "properties": {
                  "spreadsheet": {
                    "type": "object",
                    "required": [
                      "title",
                      "sheets"
                    ],
                    "properties": {
                      "title": {
                        "type": "string",
                        "title": "The title of the spreadsheet."
                      },
                      "sheets": {
                        "items": {
                          "type": "object",
                          "required": [
                            "title"
                          ],
                          "properties": {
                            "title": {
                              "type": "string",
                              "title": "The title of the sheet."
                            },
                            "rows": {
                              "items": {
                                "type": "object",
                                "properties": {
                                  "columns": {
                                    "items": {
                                      "oneOf": [
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "number"
                                        },
                                        {
                                          "type": "boolean"
                                        }
                                      ]
                                    },
                                    "type": "array",
                                    "title": "The values in the column, each item is one value"
                                  }
                                }
                              },
                              "type": "array",
                              "title": "The values in the row, each item is one row. If you want to add multiple rows you must add multiple items to this list."
                            }
                          }
                        },
                        "type": "array",
                        "title": "The sheets in the spreadsheet."
                      }
                    },
                    "title": "The spreadsheet to be created."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "default": {
            "description": "Tool response"
          }
        }
      }
    },
    "/api/hub/perform/google-sheets__put-spreadsheets__UpdateSpreadsheet": {
      "post": {
        "operationId": "google-sheets__put-spreadsheets__UpdateSpreadsheet",
        "description": "Updates specified spreadsheet sheet, returns updated sheet.\nUse the `get-spreadsheet` usecase to get the current data.\nRows and columns are indexed from 0. The data is written to the sheet starting from the cell specified by updatePosition input.",
        "x-openai-isConsequential": true,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "spreadsheetId",
                  "sheetName",
                  "updatePosition",
                  "rows"
                ],
                "properties": {
                  "spreadsheetId": {
                    "type": "string",
                    "title": "The ID of the spreadsheet to update."
                  },
                  "sheetName": {
                    "type": "string",
                    "title": "The name of the sheet to update."
                  },
                  "updatePosition": {
                    "type": "object",
                    "required": [
                      "row",
                      "column"
                    ],
                    "properties": {
                      "row": {
                        "type": "number"
                      },
                      "column": {
                        "type": "number"
                      }
                    },
                    "title": "The cell from which to write data."
                  },
                  "rows": {
                    "items": {
                      "type": "object",
                      "required": [
                        "columns"
                      ],
                      "properties": {
                        "columns": {
                          "items": {
                            "type": "object",
                            "properties": {
                              "boolValue": {
                                "type": "boolean",
                                "title": "Represents a boolean value."
                              },
                              "formulaValue": {
                                "type": "string",
                                "title": "Represents a formula."
                              },
                              "numberValue": {
                                "type": "number",
                                "title": "Represents a double value. Note: Dates, Times and DateTimes are represented as doubles in SERIAL_NUMBER format."
                              },
                              "stringValue": {
                                "type": "string",
                                "title": "Represents a string value. Leading single quotes are not included. For example, if the user typed `'123` into the UI, this would be represented as a `stringValue` of `'123'`."
                              }
                            }
                          },
                          "type": "array",
                          "title": "The values in the column, each item is one cell"
                        }
                      }
                    },
                    "type": "array",
                    "description": "Rows contains the values in the row, each item is one row. If you want to add multiple rows you must add multiple items to this list.",
                    "title": "The data to be written to the sheet."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "default": {
            "description": "Tool response"
          }
        }
      }
    },
    "/api/hub/perform/todo__complete-task__CompleteTask": {
      "post": {
        "operationId": "todo__complete-task__CompleteTask",
        "description": "Closes a specified task in the Todoist application. Regular tasks are marked complete and moved to history, along with their subtasks.\nTasks with recurring due dates will be scheduled to their next occurrence.",
        "x-openai-isConsequential": true,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "taskId"
                ],
                "properties": {
                  "taskId": {
                    "type": "string",
                    "title": "The ID of the task to be completed."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "default": {
            "description": "Tool response"
          }
        }
      }
    },
    "/api/hub/perform/todo__create-project__CreateProject": {
      "post": {
        "operationId": "todo__create-project__CreateProject",
        "description": "Create a new project in the user's Todoist account.\n",
        "x-openai-isConsequential": true,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "projectName"
                ],
                "properties": {
                  "projectName": {
                    "type": "string",
                    "title": "The name of the project to be created."
                  },
                  "parentProjectId": {
                    "type": "string",
                    "title": "The ID of the parent project, if the new project is a subproject."
                  },
                  "projectColor": {
                    "enum": [
                      "berry_red",
                      "light_blue",
                      "red",
                      "blue",
                      "orange",
                      "grape",
                      "yellow",
                      "violet",
                      "olive_green",
                      "lavender",
                      "lime_green",
                      "magenta",
                      "green",
                      "salmon",
                      "mint_green",
                      "charcoal",
                      "teal",
                      "grey",
                      "sky_blue"
                    ],
                    "title": "The color of the project icon."
                  },
                  "isFavorite": {
                    "type": "boolean",
                    "title": "Indicates whether the project should be marked as a favorite."
                  },
                  "viewStyle": {
                    "type": "string",
                    "title": "Determines how the project is displayed within Todoist clients ('list' or 'board')."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "default": {
            "description": "Tool response"
          }
        }
      }
    },
    "/api/hub/perform/todo__create-task__CreateTask": {
      "post": {
        "operationId": "todo__create-task__CreateTask",
        "description": "Create a new task in a project using the Todoist API.\n",
        "x-openai-isConsequential": true,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "taskContent"
                ],
                "properties": {
                  "taskContent": {
                    "type": "string",
                    "title": "The main text of the task to be added."
                  },
                  "description": {
                    "type": "string",
                    "title": "A description for the task. This value may contain markdown-formatted text and hyperlinks."
                  },
                  "assignee_id": {
                    "type": "string",
                    "title": "The responsible user ID or null to unset (for shared tasks)."
                  },
                  "dueString": {
                    "type": "string",
                    "title": "Human-readable due date or time for the task.(ex.: 'next Monday', 'Tomorrow'). Value is set using local (not UTC) time."
                  },
                  "labels": {
                    "items": {
                      "type": "string"
                    },
                    "type": "array",
                    "title": "The task's labels (a list of names that may represent either personal or shared labels)."
                  },
                  "projectId": {
                    "type": "string",
                    "title": "Task project ID. This is NOT 'name'. You can use find-project to find out project ID. If not set, task is put to user's Inbox."
                  },
                  "parentId": {
                    "type": "string",
                    "title": "Parent task ID. This is NOT 'name'. You can use list-tasks to find out task ID."
                  },
                  "sectionId": {
                    "type": "string",
                    "title": "ID of section to put task into."
                  },
                  "dueLanguage": {
                    "type": "string",
                    "title": "Language code for parsing the dueString, if it's not in English."
                  },
                  "priorityLevel": {
                    "type": "number",
                    "title": "Priority of the task, from 1 (normal) to 4 (urgent)."
                  },
                  "duration": {
                    "type": "number",
                    "title": "A positive (greater than zero) integer for the amount of duration_unit the task will take. If specified, you must define a duration_unit."
                  },
                  "duration_unit": {
                    "enum": [
                      "minute",
                      "day"
                    ],
                    "title": "The unit of time that the duration field above represents. Must be either minute or day. If specified, duration must be defined as well."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "default": {
            "description": "Tool response"
          }
        }
      }
    },
    "/api/hub/perform/todo__find-project__FindProject": {
      "post": {
        "operationId": "todo__find-project__FindProject",
        "description": "Finds projects in a user's Todoist account by the desired project name.\n",
        "x-openai-isConsequential": false,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "projectName"
                ],
                "properties": {
                  "projectName": {
                    "type": "string",
                    "title": "The name of the project to search for."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "default": {
            "description": "Tool response"
          }
        }
      }
    },
    "/api/hub/perform/todo__get-task__GetTask": {
      "post": {
        "operationId": "todo__get-task__GetTask",
        "description": "Retrieve a single active task by its ID from the Todoist API. Returns the task details as a JSON object.\n",
        "x-openai-isConsequential": false,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "title": "The ID of the task to retrieve."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "default": {
            "description": "Tool response"
          }
        }
      }
    },
    "/api/hub/perform/todo__list-tasks__ListTasks": {
      "post": {
        "operationId": "todo__list-tasks__ListTasks",
        "description": "Fetches a list of all active tasks from the user's Todoist account. The tasks can be filtered by project, section, label, and other supported filters. The service returns a list of tasks with their details.\n",
        "x-openai-isConsequential": false,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "projectId": {
                    "type": "string",
                    "title": "Filter tasks by project ID."
                  },
                  "sectionId": {
                    "type": "string",
                    "title": "Filter tasks by section ID."
                  },
                  "label": {
                    "type": "string",
                    "title": "Filter tasks by label name."
                  },
                  "filter": {
                    "type": "string",
                    "description": "overdue - tasks that are past due date\n    search: email - tasks that contains 'email'\n    assigned by: me - tasks assigned by the user\n    assigned to: me - tasks assigned to the user\n    Saturday & @night - tasks due on Saturday night with a label 'night'\n    no due date - tasks without a due date\n    no due time - tasks without a due time\n    today - tasks due today\n    tomorrow - tasks due tomorrow\n    this week - tasks due in the next 7 days\n    next week - tasks due in the next 7-14 days\n    7 days - tasks due in the next 7 days\n    1 month - tasks due in the next month\n    3 months - tasks due in the next 3 months",
                    "title": "Filter by any supported filter. If not provided, the service will return all tasks. Fillters can be combined using logical (!, &, |) symbols and separated by ','. Examples of supported filters are:"
                  },
                  "lang": {
                    "type": "string",
                    "title": "IETF language tag defining what language filter is written in, if differs from default English."
                  },
                  "ids": {
                    "items": {
                      "type": "number"
                    },
                    "type": "array",
                    "title": "A list of the task IDs to retrieve."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "default": {
            "description": "Tool response"
          }
        }
      }
    },
    "/api/hub/perform/todo__update-task__UpdateTask": {
      "post": {
        "operationId": "todo__update-task__UpdateTask",
        "description": "Update a specific task's properties, such as due_string, in the Todoist API.\n",
        "x-openai-isConsequential": true,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "taskId",
                  "taskContent"
                ],
                "properties": {
                  "taskId": {
                    "type": "string",
                    "title": "The task ID."
                  },
                  "taskContent": {
                    "type": "string",
                    "title": "The main text of the task to be added."
                  },
                  "description": {
                    "type": "string",
                    "title": "A description for the task. This value may contain markdown-formatted text and hyperlinks."
                  },
                  "assignee_id": {
                    "type": "string",
                    "title": "The responsible user ID or null to unset (for shared tasks)."
                  },
                  "dueString": {
                    "type": "string",
                    "title": "Human-readable due date or time for the task.(ex.: 'next Monday', 'Tomorrow'). Value is set using local (not UTC) time."
                  },
                  "projectId": {
                    "type": "string",
                    "title": "Task project ID. If not set, task is put to user's Inbox."
                  },
                  "labels": {
                    "items": {
                      "type": "string"
                    },
                    "type": "array",
                    "title": "The task's labels (a list of names that may represent either personal or shared labels)."
                  },
                  "dueLanguage": {
                    "type": "string",
                    "title": "Language code for parsing the dueString, if it's not in English."
                  },
                  "priorityLevel": {
                    "type": "number",
                    "title": "Priority of the task, from 1 (normal) to 4 (urgent)."
                  },
                  "duration": {
                    "type": "number",
                    "title": "A positive (greater than zero) integer for the amount of duration_unit the task will take. If specified, you must define a duration_unit."
                  },
                  "duration_unit": {
                    "enum": [
                      "minute",
                      "day"
                    ],
                    "title": "The unit of time that the duration field above represents. Must be either minute or day. If specified, duration must be defined as well."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "default": {
            "description": "Tool response"
          }
        }
      }
    },
    "/api/hub/perform/weather__current-weather__CurrentWeather": {
      "post": {
        "operationId": "weather__current-weather__CurrentWeather",
        "description": "Retrieve current weather information for a specified location.\n",
        "x-openai-isConsequential": false,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "city"
                ],
                "properties": {
                  "city": {
                    "type": "string",
                    "description": "Name of the city including state and country, e.g.: \"Prague, Czech Republic\" or \"New York City, NY, USA\"",
                    "title": "city"
                  },
                  "units": {
                    "enum": [
                      "C",
                      "F",
                      "K"
                    ],
                    "description": "Units used to represent temperature - Fahrenheit, Celsius, Kelvin\nCelsius by default",
                    "title": "units"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "default": {
            "description": "Tool response"
          }
        }
      }
    }
  },
  "servers": [
    {
      "url": "https://pod.superface.ai"
    }
  ],
  "components": {
    "securitySchemes": {
      "bearer_token": {
        "type": "http",
        "scheme": "bearer"
      }
    },
    "schemas": {
      "some": {
        "type": "string"
      }
    }
  },
  "externalDocs": {
    "description": "Privacy Policy",
    "url": "https://pod.superface.ai/hub/privacy-policy/gpt/3awnj3un0n"
  }
}