WebGPT🤖

WebGPT🤖 · GPT Actions

Web Requests

A versatile plugin for browsing the web, building apps & games with just chat, and much more!

  • POST /scrape_urlBrowse the web via URL to load a web page or raw text file. Performs a Google search if search terms are provided.

    Use the `url` property to specify either a URL or search terms. When `is_search` is true, `url` is treated as search terms.

  • POST /rest_api_callMake a POST, PATCH, PUT, DELETE, HEAD, OPTIONS or GET HTTP API call with optional headers and body.

    This endpoint sends a request to an external HTTP/HTTPS API endpoint. It uses `chunk` (instead of page) and a unique `req_id` for paginating through large responses.

  • POST /get_transcriptRetrieve the transcript of a YouTube video.

    Fetches a paginated transcript of a YouTube video. Each page includes a formatted string with timestamps.

  • POST /get_system_messageRetrieve important system messages when `unread_system_message` is true.

    Provides system messages to help the AI assistant fulfill the optimal user experience.

  • POST /help_faqRetrieve FAQ information based on the provided category.

    Provides markdown-formatted FAQ details. For generic help, start with "What can Web Requests do?"

原始 API 定义
{
  "openapi": "3.1.0",
  "info": {
    "title": "Web Requests",
    "version": "1.1.8",
    "description": "A versatile plugin for browsing the web, building apps & games with just chat, and much more!"
  },
  "servers": [
    {
      "url": "https://plugin.wegpt.ai",
      "description": "Web Requests API"
    }
  ],
  "paths": {
    "/scrape_url": {
      "post": {
        "tags": [
          "Web Browser",
          "Scrape",
          "Search"
        ],
        "summary": "Browse the web via URL to load a web page or raw text file. Performs a Google search if search terms are provided.",
        "description": "Use the `url` property to specify either a URL or search terms. When `is_search` is true, `url` is treated as search terms.",
        "operationId": "scrape_url",
        "x-openai-isConsequential": false,
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ScrapeUrlRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Response from scraping a URL or search query.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ScrapeUrlResponse"
                }
              }
            }
          }
        }
      }
    },
    "/rest_api_call": {
      "post": {
        "tags": [
          "Rest API"
        ],
        "summary": "Make a POST, PATCH, PUT, DELETE, HEAD, OPTIONS or GET HTTP API call with optional headers and body.",
        "description": "This endpoint sends a request to an external HTTP/HTTPS API endpoint. It uses `chunk` (instead of page) and a unique `req_id` for paginating through large responses.",
        "operationId": "rest_api_call",
        "x-openai-isConsequential": false,
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RestApiCallRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "HTTP status and response from the API call.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RestApiCallResponse"
                }
              }
            }
          }
        }
      }
    },
    "/get_transcript": {
      "post": {
        "tags": [
          "YouTube",
          "Transcription"
        ],
        "summary": "Retrieve the transcript of a YouTube video.",
        "description": "Fetches a paginated transcript of a YouTube video. Each page includes a formatted string with timestamps.",
        "operationId": "get_transcript",
        "x-openai-isConsequential": false,
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GetTranscriptRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Transcript retrieval response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetTranscriptResponse"
                }
              }
            }
          }
        }
      }
    },
    "/get_system_message": {
      "post": {
        "tags": [
          "unread",
          "alerts",
          "system",
          "messages"
        ],
        "summary": "Retrieve important system messages when `unread_system_message` is true.",
        "description": "Provides system messages to help the AI assistant fulfill the optimal user experience.",
        "operationId": "get_system_message",
        "x-openai-isConsequential": false,
        "responses": {
          "200": {
            "description": "Retrieved system message.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetSystemMessageResponse"
                }
              }
            }
          },
          "204": {
            "description": "No system messages available."
          },
          "400": {
            "description": "Malformed request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/help_faq": {
      "post": {
        "tags": [
          "faq",
          "information",
          "help"
        ],
        "summary": "Retrieve FAQ information based on the provided category.",
        "description": "Provides markdown-formatted FAQ details. For generic help, start with \"What can Web Requests do?\"",
        "operationId": "help_faq",
        "x-openai-isConsequential": false,
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/HelpFaqRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "FAQ information retrieved successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HelpFaqResponse"
                }
              }
            }
          },
          "400": {
            "description": "Malformed request or unsupported category.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "ScrapeUrlRequest": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "description": "Page number for pagination.",
            "default": 1
          },
          "page_size": {
            "type": "integer",
            "description": "Maximum number of characters returned per page.",
            "default": 25000
          },
          "job_id": {
            "type": "string",
            "description": "Unique job ID used for pagination in endpoints like /scrape_url and /get_transcript."
          },
          "refresh_cache": {
            "type": "boolean",
            "description": "Indicates whether to refresh the cached content.",
            "default": false
          },
          "url": {
            "type": "string",
            "description": "(Required) The URL to load, or search terms if `is_search` is true."
          },
          "token": {
            "type": "string",
            "description": "(Conditional) Token for image generation if applicable."
          },
          "is_search": {
            "type": "boolean",
            "description": "(Optional) When true, treat `url` as search terms.",
            "default": false
          },
          "num_results_to_scrape": {
            "type": "integer",
            "description": "(Optional) Number of search results to return when `is_search` is true.",
            "default": 5
          },
          "no_strip": {
            "type": "boolean",
            "description": "(Optional) If true, skip stripping HTML tags; otherwise, sanitize HTML content.",
            "default": false
          }
        },
        "required": [
          "url"
        ]
      },
      "RestApiCallRequest": {
        "type": "object",
        "properties": {
          "chunk": {
            "type": "integer",
            "description": "Chunk number for paginated API call responses.",
            "default": 1
          },
          "req_id": {
            "type": "string",
            "description": "Unique request ID used for pagination in /rest_api_call."
          },
          "url": {
            "type": "string",
            "description": "(Required) Fully qualified HTTP/HTTPS endpoint for the API call."
          },
          "http_method": {
            "type": "string",
            "description": "(Required) HTTP method to use.",
            "default": "POST",
            "enum": [
              "GET",
              "POST",
              "PUT",
              "PATCH",
              "DELETE",
              "OPTIONS",
              "HEAD"
            ]
          },
          "strict_json": {
            "type": "boolean",
            "description": "If true, you are ensuring payload_headers, payload_body, and query_params are already-structured values. No auto-parsing/unwrapping will be attempted.",
            "default": true
          },
          "payload_headers": {
            "type": "object",
            "description": "Your carefully structured, strict JSON representation of the payload headers of the outbound API request that we will make. All items in this dict should be strings.",
            "properties": {},
            "additionalProperties": {
              "type": "string"
            }
          },
          "payload_body": {
            "type": "object",
            "description": "Your carefully structured, strict JSON representation of the payload body of the outbound API request that we will make.",
            "properties": {},
            "additionalProperties": true
          },
          "query_params": {
            "oneOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "string",
                "description": "LEGACY: JSON string. Parsed only when strict_json=false."
              }
            ]
          }
        },
        "required": [
          "url",
          "http_method"
        ]
      },
      "GetTranscriptRequest": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "description": "Page number for pagination.",
            "default": 1
          },
          "page_size": {
            "type": "integer",
            "description": "Maximum number of characters returned per page.",
            "default": 25000
          },
          "job_id": {
            "type": "string",
            "description": "Unique job ID used for pagination in endpoints like /scrape_url and /get_transcript."
          },
          "refresh_cache": {
            "type": "boolean",
            "description": "Indicates whether to refresh the cached content.",
            "default": false
          },
          "url": {
            "type": "string",
            "description": "(Required) The URL of the YouTube video for transcript retrieval."
          }
        },
        "required": [
          "url"
        ]
      },
      "HelpFaqRequest": {
        "type": "object",
        "properties": {
          "category": {
            "type": "string",
            "description": "FAQ category. Must be one of the predefined categories.",
            "enum": [
              "What can Web Requests do?",
              "What is Web Requests Pro?",
              "Image Generation?"
            ]
          }
        },
        "required": [
          "category"
        ]
      },
      "BaseResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Indicates whether the operation was successful."
          },
          "error": {
            "type": "string",
            "description": "Error message if the operation failed."
          },
          "alert": {
            "type": "string",
            "description": "Important system alert message."
          },
          "unread_system_message": {
            "type": "boolean",
            "description": "Indicates if there is an unread system message.",
            "default": false
          }
        }
      },
      "ScrapeUrlResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseResponse"
          },
          {
            "type": "object",
            "properties": {
              "content": {
                "type": "object",
                "description": "Content from the scraped web page or search results."
              },
              "has_more": {
                "type": "boolean",
                "description": "Indicates if additional pages are available."
              },
              "job_id": {
                "type": "string",
                "description": "Job ID used for pagination."
              },
              "cache_age": {
                "type": "integer",
                "description": "Age of the cached content in seconds."
              },
              "page_context": {
                "type": "string",
                "description": "Context of the current page relative to total pages."
              },
              "notice": {
                "type": "string",
                "description": "Additional system notice message."
              },
              "instructions": {
                "type": "string",
                "description": "Instructions for the AI assistant."
              }
            }
          }
        ]
      },
      "RestApiCallResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseResponse"
          },
          {
            "type": "object",
            "properties": {
              "content": {
                "type": "object",
                "description": "Content returned by the API call."
              },
              "chunk": {
                "type": "string",
                "description": "Identifier for the chunk of the response."
              },
              "has_more": {
                "type": "boolean",
                "description": "Indicates if additional chunks are available."
              },
              "req_id": {
                "type": "string",
                "description": "Unique request ID used for pagination."
              }
            }
          }
        ]
      },
      "GetTranscriptResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseResponse"
          },
          {
            "type": "object",
            "properties": {
              "content": {
                "type": "string",
                "description": "Formatted transcript text with timestamps."
              },
              "metadata": {
                "type": "string",
                "description": "Markdown-formatted metadata about the video."
              },
              "video_duration": {
                "type": "string",
                "description": "Total duration of the video in HH:MM:SS format."
              },
              "has_more": {
                "type": "boolean",
                "description": "Indicates if additional transcript pages are available."
              },
              "job_id": {
                "type": "string",
                "description": "Job ID used for pagination."
              },
              "cache_age": {
                "type": "integer",
                "description": "Age of the cached transcript in seconds."
              },
              "page_context": {
                "type": "string",
                "description": "Context of the current page relative to total pages."
              },
              "url": {
                "type": "string",
                "description": "The URL of the YouTube video."
              }
            }
          }
        ]
      },
      "GetSystemMessageResponse": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "description": "The system message intended for the user."
          },
          "instructions": {
            "type": "string",
            "description": "Additional instructions for the AI assistant."
          },
          "sponsored": {
            "type": "boolean",
            "description": "Indicates whether the message is sponsored by a third party."
          }
        }
      },
      "HelpFaqResponse": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "description": "Markdown-formatted FAQ information."
          },
          "instructions": {
            "type": "string",
            "description": "Additional instructions for the AI assistant."
          }
        }
      },
      "ErrorResponse": {
        "type": "object",
        "properties": {
          "error": {
            "type": "string",
            "description": "Detailed error message."
          }
        }
      }
    }
  }
}