├── .gitignore ├── images ├── hero-dark.png ├── hero-light.png ├── OpenTelemetry.png ├── hoppscotch-dark.png ├── hoppscotch-banner.png ├── hoppscotch-light.png ├── browser-extension-dark.png ├── browser-extension-light.png ├── browser-extension-enable-1-dark.png ├── browser-extension-enable-1-light.png ├── browser-extension-enable-2-dark.png ├── browser-extension-enable-2-light.png └── user-provisioning │ ├── profile-editor.png │ ├── scim-integration.png │ ├── user-provisioning.png │ ├── provisioning-to-app.png │ ├── add-custom-attribute.png │ ├── generate-infra-token.png │ └── enable-scim-provisioning.png ├── documentation ├── changelog.mdx ├── contributors.mdx ├── getting-started │ ├── realtime │ │ ├── websocket.mdx │ │ ├── sse.mdx │ │ ├── socket-io.mdx │ │ └── mqtt.mdx │ ├── rest │ │ ├── organizing-requests.mdx │ │ ├── environment-variables.mdx │ │ ├── request-parameters.mdx │ │ ├── auth-tokens.mdx │ │ ├── creating-a-request.mdx │ │ ├── request-headers.mdx │ │ ├── uploading-data.mdx │ │ ├── pre-request-scripts.mdx │ │ ├── tests.mdx │ │ └── response-handling.mdx │ ├── graphql │ │ ├── using-variables.mdx │ │ └── creating-a-query.mdx │ ├── clients.mdx │ ├── setup.mdx │ ├── introduction.mdx │ ├── troubleshooting.mdx │ └── quick-start.mdx ├── features │ ├── realtime-api-testing.mdx │ ├── inspections.mdx │ ├── customization.mdx │ ├── snippets.mdx │ ├── rest-api-testing.mdx │ ├── graphql-api-testing.mdx │ ├── history.mdx │ ├── spotlight.mdx │ ├── cookies.mdx │ ├── context-menu.mdx │ ├── documentation.mdx │ ├── client-certificate.mdx │ ├── runner.mdx │ ├── pat.mdx │ ├── widgets.mdx │ ├── shortcuts.mdx │ ├── ai-features.mdx │ ├── collections.mdx │ ├── workspaces.mdx │ └── environments.mdx ├── community.mdx ├── self-host │ ├── helm-chart-deployment │ │ └── getting-started.mdx │ ├── community-edition │ │ ├── getting-started.mdx │ │ ├── setup-and-access.mdx │ │ ├── telemetry.mdx │ │ └── deploy-and-upgrade.mdx │ └── enterprise-edition │ │ ├── getting-started.mdx │ │ ├── setup-and-access.mdx │ │ ├── telemetry.mdx │ │ ├── user-groups.mdx │ │ ├── deploy-and-upgrade.mdx │ │ ├── activity-logs.mdx │ │ └── user-provisioning.mdx ├── clients │ ├── web.mdx │ ├── cli │ │ └── troubleshooting.mdx │ └── desktop.mdx ├── i18n.mdx ├── protocols │ ├── realtime.mdx │ ├── graphql.mdx │ └── rest.mdx └── develop.mdx ├── snippets ├── hoppscotch-clients.mdx └── components.mdx ├── README.md ├── support ├── getting-started │ ├── introduction.mdx │ ├── contact.mdx │ └── faq.mdx ├── solutions │ ├── experts.mdx │ └── community.mdx ├── license.mdx ├── security-policy.mdx ├── terms.mdx └── code-of-conduct.mdx ├── guides ├── getting-started │ └── introduction.mdx ├── articles.mdx └── articles │ ├── improving-your-api-workflow.mdx │ ├── understanding-graphql.mdx │ ├── manage-an-enterprise-license-key.mdx │ ├── uplifting-web-experience-with-hoppscotch-widgets.mdx │ └── restful-api-testing-with-hoppscotch.mdx ├── LICENSE ├── index.mdx ├── favicon.svg └── logo ├── dark.svg └── light.svg /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | -------------------------------------------------------------------------------- /images/hero-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hoppscotch/docs/HEAD/images/hero-dark.png -------------------------------------------------------------------------------- /images/hero-light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hoppscotch/docs/HEAD/images/hero-light.png -------------------------------------------------------------------------------- /images/OpenTelemetry.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hoppscotch/docs/HEAD/images/OpenTelemetry.png -------------------------------------------------------------------------------- /images/hoppscotch-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hoppscotch/docs/HEAD/images/hoppscotch-dark.png -------------------------------------------------------------------------------- /images/hoppscotch-banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hoppscotch/docs/HEAD/images/hoppscotch-banner.png -------------------------------------------------------------------------------- /images/hoppscotch-light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hoppscotch/docs/HEAD/images/hoppscotch-light.png -------------------------------------------------------------------------------- /images/browser-extension-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hoppscotch/docs/HEAD/images/browser-extension-dark.png -------------------------------------------------------------------------------- /images/browser-extension-light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hoppscotch/docs/HEAD/images/browser-extension-light.png -------------------------------------------------------------------------------- /images/browser-extension-enable-1-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hoppscotch/docs/HEAD/images/browser-extension-enable-1-dark.png -------------------------------------------------------------------------------- /images/browser-extension-enable-1-light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hoppscotch/docs/HEAD/images/browser-extension-enable-1-light.png -------------------------------------------------------------------------------- /images/browser-extension-enable-2-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hoppscotch/docs/HEAD/images/browser-extension-enable-2-dark.png -------------------------------------------------------------------------------- /images/browser-extension-enable-2-light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hoppscotch/docs/HEAD/images/browser-extension-enable-2-light.png -------------------------------------------------------------------------------- /images/user-provisioning/profile-editor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hoppscotch/docs/HEAD/images/user-provisioning/profile-editor.png -------------------------------------------------------------------------------- /images/user-provisioning/scim-integration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hoppscotch/docs/HEAD/images/user-provisioning/scim-integration.png -------------------------------------------------------------------------------- /images/user-provisioning/user-provisioning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hoppscotch/docs/HEAD/images/user-provisioning/user-provisioning.png -------------------------------------------------------------------------------- /images/user-provisioning/provisioning-to-app.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hoppscotch/docs/HEAD/images/user-provisioning/provisioning-to-app.png -------------------------------------------------------------------------------- /images/user-provisioning/add-custom-attribute.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hoppscotch/docs/HEAD/images/user-provisioning/add-custom-attribute.png -------------------------------------------------------------------------------- /images/user-provisioning/generate-infra-token.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hoppscotch/docs/HEAD/images/user-provisioning/generate-infra-token.png -------------------------------------------------------------------------------- /images/user-provisioning/enable-scim-provisioning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hoppscotch/docs/HEAD/images/user-provisioning/enable-scim-provisioning.png -------------------------------------------------------------------------------- /documentation/changelog.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: Changelog 3 | title: Changelog 4 | description: New updates and improvements to Hoppscotch. 5 | --- 6 | 7 | - Section moved to [GitHub Releases page](https://github.com/hoppscotch/hoppscotch/releases). 8 | -------------------------------------------------------------------------------- /snippets/hoppscotch-clients.mdx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Hoppscotch Documentation 2 | 3 | ## Local Development 4 | 5 | > [!IMPORTANT] 6 | > Please install Node.js (version 19 or higher) before proceeding. 7 | 8 | Install dependencies: 9 | 10 | ```bash 11 | npm i -g mintlify 12 | ``` 13 | 14 | Start development server with: 15 | 16 | ```bash 17 | mintlify dev 18 | ``` 19 | 20 | A local preview of your documentation will be available at `http://localhost:3000`. 21 | 22 | Read more about [Mintlify](https://mintlify.com/docs/development) to customize your documentation. 23 | -------------------------------------------------------------------------------- /documentation/contributors.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: Contributors 3 | title: Contributors 4 | description: Hoppscotch exists thanks to the awesome people who contribute to it. 5 | --- 6 | 7 | Hoppscotch is a community-driven project. We are thankful to all the contributors who have helped us in making Hoppscotch a better tool for developers. 8 | 9 | Here are some of our top contributors who helped us to make Hoppscotch a better tool for developers. 10 | 11 | ![Contributors](https://contrib.rocks/image?repo=hoppscotch/hoppscotch) 12 | 13 | - [View the full list of contributors here →](https://github.com/hoppscotch/hoppscotch/graphs/contributors) 14 | -------------------------------------------------------------------------------- /documentation/getting-started/realtime/websocket.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: Websocket 3 | title: Websocket 4 | description: Connect to a WebSocket and send messages. 5 | --- 6 | 7 | Enter your WebSocket "**URL**", valid protocols, and click on "**Connect**". 8 | 9 | You can also disconnect from the WebSocket by clicking on the "**Disconnect**" button. 10 | 11 | ## Sending messages 12 | 13 | Write your message in the "**Message**" input field under the "**Communication**" tab and click on the "**Send**" button. The message you send will be displayed on the "**Logs**" pane. 14 | 15 | ## Troubleshooting 16 | 17 | 1. Make sure you enter a valid WebSocket URL, they always start with the protocol format `ws://`. 18 | 2. Do not add invalid/blank protocol before you connect to a WebSocket. 19 | -------------------------------------------------------------------------------- /support/getting-started/introduction.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: Introduction 3 | title: Introduction 4 | description: We're here to help you get started with Hoppscotch. 5 | --- 6 | 7 | Discover the different support offers to answer your questions, help you get started, and provide you with the best experience possible. 8 | 9 | ## Guides 10 | 11 | [Guides](/guides/getting-started/introduction) are a great way to get started with Hoppscotch. They are a collection of articles that will help you get started with Hoppscotch. 12 | 13 | ## FAQ 14 | 15 | Read our [Frequently Asked Questions](/support/getting-started/faq) to get answers to the most common questions about Hoppscotch. 16 | 17 | ## Contact 18 | 19 | If you have any questions, feel free to [contact us](/support/getting-started/contact). 20 | -------------------------------------------------------------------------------- /support/solutions/experts.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: Experts 3 | title: Hoppscotch Experts 4 | description: Get help from our experts. 5 | --- 6 | 7 | Our expert network is a group of experienced engineers with expertise in Hoppscotch, carefully selected by the Hoppscotch team. They are available to help you with your questions and issues. 8 | 9 | They act as an external workforce for the Hoppscotch team and are qualified to take on any consulting mission on behalf of the Hoppscotch team, such as: 10 | 11 | - Consultation 12 | - Technical support 13 | - Self-Hosting 14 | 15 | ## Quote 16 | 17 | Contact us at `support@hoppscotch.io` for a quote. 18 | 19 | ## Join experts network 20 | 21 | If you are an experienced engineer with expertise in Hoppscotch, you can join our experts network. Contact us at `support@hoppscotch.io` for more details. 22 | -------------------------------------------------------------------------------- /documentation/features/realtime-api-testing.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: Realtime API 3 | title: Realtime API Testing 4 | description: Welcome to the home of your new documentation 5 | --- 6 | 7 | Hoppscotch's Realtime API platform helps you test your real-time APIs easily. 8 | 9 | It's primarily divided into two sections the request section and the response section. 10 | 11 | ## Request 12 | 13 | The request section houses the feature to enter your server endpoint and initiate a connection. You also get the option to choose from four different protocols `WebSocket`, `SSE`, `Socket.IO`, and `MQTT`. 14 | 15 | ## Response 16 | 17 | Once the connection is established, you can view the responses and logs in the response section. 18 | 19 | 20 | Read out step by step tutorial on working with Realtime protocols. 21 | 22 | -------------------------------------------------------------------------------- /documentation/features/inspections.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: Inspections 3 | title: Inspections 4 | description: Detect and resolve configuration errors in your API requests. 5 | --- 6 | 7 | Hoppscotch inspections offer a powerful solution for debugging API requests, assisting in reducing errors due to misconfigured user inputs. 8 | 9 | Hoppscotch inspections are designed to streamline the process of identifying and rectifying errors stemming from improperly configured API request inputs. When an input section within the application is not properly configured, Inspections will visually alert users by displaying an alert icon. This icon serves as an indicator that potential issues are present in the configuration. 10 | 11 | ## Inspecting Configuration Errors 12 | 13 | Upon clicking the alert icon, the Inspections panel will provide an overview of possible configuration errors that might be hindering the accomplishment of your intended goal and ways to resolve the errors. 14 | -------------------------------------------------------------------------------- /documentation/getting-started/realtime/sse.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: SSE 3 | title: Server-Sent Events 4 | description: Server-Sent Events (SSE) is a server push technology enabling a client to receive automatic updates from a server via HTTP connection. 5 | --- 6 | 7 | The Hoppscotch SSE testing tool lets you test out your SSE services. 8 | 9 | ## Connect to a SSE server 10 | 11 | 1. Add the SSE "**URL**" and "**path**" and click on "**Connect**". 12 | 2. Choose the event type that you want to subscribe to and connect. 13 | 3. Message from the SSE server will continuously updated in the log until either the server or client (you) terminate the connection. 14 | 15 | ## Listening to events 16 | 17 | The events sent by the server will be displayed in the log pane. 18 | 19 | ## Troubleshooting 20 | 21 | 1. Make sure you enter valid SSE URLs, they always start with the protocol format `http://` or `https://`. 22 | 2. Make sure the server is sending the correct event type. 23 | -------------------------------------------------------------------------------- /guides/getting-started/introduction.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: Introduction 3 | title: Introduction 4 | description: Guides and tutorials to help you get started with Hoppscotch. 5 | --- 6 | 7 | Hoppscotch is a free and open-source API development platform to help you build, test, and document APIs faster. It is a web-based API development environment that allows you to send requests and view responses in a single interface. 8 | 9 | Find articles, guides, and tutorials to help you get started with Hoppscotch. 10 | 11 | ## Try Hoppscotch 12 | 13 | You can try Hoppscotch by visiting [hoppscotch.io](https://hoppscotch.io) and start sending requests to your APIs. 14 | 15 | [Learn more](/documentation/getting-started/introduction) 16 | 17 | ## Features 18 | 19 | - History 20 | - Collections 21 | - Environments 22 | - Workspaces 23 | - Code Snippets 24 | - Share Requests 25 | 26 | - Visit [documentation tab](/documentation/getting-started/introduction) for full list of features. 27 | 28 | -------------------------------------------------------------------------------- /documentation/community.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: Community 3 | title: Community 4 | description: Join our open communities and forums. 5 | --- 6 | 7 | At Hoppscotch, we believe that the community is the most important part of our product. We want to make sure that our users have a great experience using our products and that they can contribute to the development of our products with their ideas, feedback, and suggestions. 8 | 9 | Join our open communities and forums to stay up to date with the latest happenings in the product. 10 | 11 | 12 | 13 | Follow us on X for news, updates and more. 14 | 15 | 16 | Join our Discord server to chat with the community. 17 | 18 | 19 | Contribute to the development of Hoppscotch. 20 | 21 | 22 | -------------------------------------------------------------------------------- /documentation/getting-started/realtime/socket-io.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: Socket.IO 3 | title: Socket.IO 4 | description: Learn how to use the Socket.IO testing tool in Hoppscotch. 5 | --- 6 | 7 | The Hoppscotch Socket.io testing tool lets you test out your socket.io services. 8 | 9 | ## Connect to a socket.io server 10 | 11 | 1. Add the "**URL**", "**path**" and click on "**Connect**". 12 | 2. Listen to events broadcasted by the server, shown in the log. 13 | 3. Use the sidebar to add an event name and send messages to the server. 14 | 15 | ## Sending messages 16 | 17 | Write your message in the "**Message**" input field under the "**Communication**" tab and click on the "**Send**" button. Type in the "**Event**" input field to send a message with an event name. The message you send will be displayed on the "**Logs**" pane. 18 | 19 | ## Troubleshooting 20 | 21 | 1. Make sure you enter a valid socket.io URL, they always start with the protocol format `ws://`. 22 | 2. Do not add an invalid/incorrect authorization token before you connect to a socket.io server. 23 | -------------------------------------------------------------------------------- /documentation/features/customization.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: Customization 3 | title: Customization 4 | description: Customize your Hoppscotch experience. 5 | --- 6 | 7 | You can access the customization settings by clicking on the "[**Settings**](https://hoppscotch.io/settings)" icon on the side panel. 8 | 9 | ## Background color 10 | 11 | You can choose from a range of colors to set as your background. 12 | 13 | - System (Default) 14 | - Light 15 | - Dark 16 | - Black 17 | 18 | ## Accent color 19 | 20 | You can choose from a range of colors to set as your accent color. 21 | 22 | - Green 23 | - Teal 24 | - Blue 25 | - Indigo (Default) 26 | - Purple 27 | - Yellow 28 | - Orange 29 | - Red 30 | - Pink 31 | 32 | ## Language 33 | 34 | Hoppocotch supports multiple languages. You can choose your preferred language from the list of available languages. 35 | 36 | ## Expand navigation 37 | 38 | You can choose to expand the side panel to view the navigation menu with labels. 39 | 40 | ## Sidebar position 41 | 42 | You can choose to position the side panel on the left or right side of the screen. 43 | -------------------------------------------------------------------------------- /documentation/features/snippets.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: Code Snippets 3 | title: Code Snippets 4 | description: Generate code snippets for your API in a variety of languages and frameworks. 5 | --- 6 | 7 | Code snippets allows you to rapidly build your API integration in a variety of languages and frameworks. 8 | 9 | ## Generate code snippets 10 | 11 | To generate a code snippet for your API, locate the **Code Generate** `<>` icon in the right sidebar, alongside collections, environments, and history. Then, select the language in which you prefer to receive your API request. 12 | 13 | ## Copy code snippets 14 | 15 | Choose the language and framework you want to generate the code snippet for and click the "**Copy**" button to copy the code snippet to your clipboard. 16 | 17 | ## Supported languages 18 | 19 | - Shell 20 | - Javascript 21 | - Node 22 | - C 23 | - Java 24 | - PHP 25 | - Objective-C 26 | - Swift 27 | - Python 28 | - Ruby 29 | - C# 30 | - Go 31 | - OCaml 32 | 33 | ## Preview request setup 34 | 35 | You can preview the complete request setup for the current request by choosing the "**HTTP**" option in the language dropdown. 36 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2024 Hoppscotch 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /documentation/getting-started/rest/organizing-requests.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: Organizing requests 3 | title: Organizing requests 4 | description: Organize your requests categorically for future reference or collaboration with your team using collections. 5 | --- 6 | 7 | It is always a best practice to organize your requests when you test multiple API endpoints. You can organize your requests categorically for future reference or collaboration with your team using collections. 8 | 9 | You can create a new collection on Hoppscotch by clicking the collections icon on the sidebar and clicking the "**+ New**" button. 10 | 11 | Let's try making a collection for our [Pokemon API](https://github.com/PokeAPI/pokeapi) called `Pokemon API`. 12 | 13 | ## Adding requests to a collection 14 | 15 | Now, let's save our current query as `GET three Pokemon` and save it in our `Pokemon API` Collection. 16 | 17 | 1. Click on the "**Save**" button. 18 | 2. Give your request a name. 19 | 3. Add it to your collection. 20 | 21 | You can add multiple requests to a collection and even create subfolders inside a collection to further organize your requests. 22 | -------------------------------------------------------------------------------- /support/solutions/community.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: Community 3 | title: Community 4 | description: Hoppscotch is an open-source project. Community is at the heart of everything we do. 5 | --- 6 | 7 | ## GitHub Issues 8 | 9 | If you have a bug to report or a feature request, please [open an issue](https://github.com/hoppscotch/hoppscotch/issues/new/choose) on our GitHub repository. We will try to respond to your issue as soon as possible. 10 | 11 | ## GitHub Discussion 12 | 13 | Our active community is comprised of more than 2,000 contributors. Asking your questions on our [GitHub Discussion](https://github.com/hoppscotch/hoppscotch/discussions) board is a free and efficient way to ensure that you find solutions to your problems. 14 | 15 | ## Discord 16 | 17 | Our [Discord server](https://hoppscotch.io/discord) is a good place to have real-time exchanges with members of the community. You can ask questions, get help, and discuss the future of Hoppscotch. Join our Discord server to get started. 18 | 19 | ## Other platforms 20 | 21 | We are also present on other platforms such as [X](https://hoppscotch.io/twitter), StackOverflow, and Reddit. You can follow us on these platforms to get the latest updates about Hoppscotch. 22 | -------------------------------------------------------------------------------- /index.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: Home 3 | title: Hoppscotch Documentation 4 | description: Find user guides, quickstarts, tutorials, use cases, code samples, and more. 5 | --- 6 | 7 | import { PrimaryButton } from '/snippets/components.mdx'; 8 | 9 | 10 | 11 | 12 | **Hoppscotch is a lightweight, web-based API development suite.** 13 | 14 | It was built from the ground up with ease of use and accessibility in mind providing all the functionality needed for API developers with minimalist, unobtrusive UI. 15 | 16 | 17 | 18 |
19 |
20 | 21 | **Quick Start** 22 | 23 | 24 | 28 | 29 | Everything you need to get started with Hoppscotch, hosted by us. 30 | 31 | 32 | 36 | 37 | Deploy your own instance of Hoppscotch on your own infrastructure. 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /documentation/self-host/helm-chart-deployment/getting-started.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: Helm Chart Deployment 3 | title: Getting Started 4 | description: Deploy Hoppscotch on your Kubernetes cluster using Helm charts. 5 | --- 6 | 7 | Deploying Hoppscotch [Community](/documentation/self-host/community-edition/getting-started) and [Enterprise](/documentation/self-host/enterprise-edition/getting-started) editions with Helm charts makes it easier to manage your self-hosted instance on [Kubernetes](https://kubernetes.io/). 8 | 9 | [Helm]((https://helm.sh)) is a package manager for Kubernetes, and [charts](https://artifacthub.io/) are pre-configured templates that automate the deployment and management of applications on Kubernetes. By using Helm, you can quickly spin up a fully functional Hoppscotch instance on your cloud provider or local Kubernetes setup. 10 | 11 | Follow the below guide to deploy Hoppscotch on your Kubernetes cluster using Helm charts: 12 | 13 | 14 | 15 | We will deploy Hoppscotch on a DigitalOcean Kubernetes cluster using Helm charts. 16 | 17 | -------------------------------------------------------------------------------- /support/license.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: License 3 | title: License 4 | description: Hoppscotch is licensed under MIT License. 5 | --- 6 | 7 | ``` 8 | MIT License 9 | 10 | Copyright (c) 2022 11 | 12 | Permission is hereby granted, free of charge, to any person obtaining a copy 13 | of this software and associated documentation files (the "Software"), to deal 14 | in the Software without restriction, including without limitation the rights 15 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 16 | copies of the Software, and to permit persons to whom the Software is 17 | furnished to do so, subject to the following conditions: 18 | 19 | The above copyright notice and this permission notice shall be included in all 20 | copies or substantial portions of the Software. 21 | 22 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 23 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 24 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 25 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 26 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 27 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 28 | SOFTWARE. 29 | ``` 30 | -------------------------------------------------------------------------------- /documentation/features/rest-api-testing.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: RESTful API 3 | title: RESTful API Testing 4 | description: Test and play around with your RESTful API endpoints. 5 | --- 6 | 7 | Hoppscotch's REST API platform provides you with a fast and seamless experience to test and debug your API endpoints. 8 | 9 | It's primarily divided into two sections along with other features to help you build better APIs. 10 | 11 | ## Request 12 | 13 | The request section provides you the capability to define your API endpoint and initiate the communication. 14 | 15 | You can select from a range of HTTP methods such as `GET`, `POST`, `PUT` etc. You can read more about HTTP methods in [RESTful protocol](/documentation/protocols/rest). 16 | 17 | You can also add dynamic behaviors to your requests by specifying `Headers`, `Request Body`, `Authorization Headers`, `Parameters`, and `Pre-request scripts`. 18 | 19 | Hoppscotch also provides the capability to run `Tests` on the responses you receive. 20 | 21 | ## Response 22 | 23 | This is where you see the responses to your API endpoints. You can download and copy the returned responses for further use. 24 | 25 | ## Other features 26 | 27 | The REST API platform also houses other features like: 28 | 29 | - [Environments](/documentation/features/environments) 30 | - [Collections](/documentation/features/collections) 31 | - [History](/documentation/features/history) 32 | -------------------------------------------------------------------------------- /documentation/self-host/community-edition/getting-started.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: Getting started 3 | title: Getting started 4 | description: Learn how to get started with Hoppscotch Community Edition. 5 | --- 6 | 7 | Community Edition is the perfect starting point for individual developers or small teams looking to integrate Hoppscotch into their workflow without additional costs. It's open-source, meaning you can modify it as needed, though you'll manage updates and maintenance yourself. With Self Host Community edition you get access to Admin Dashboard which acts as a central hub for managing your workspaces and overseeing user-related activities. 8 | 9 | 10 | 11 | Prerequisites to self-host Hoppscotch Community Edition on your infrastructure. 12 | 13 | 14 | Install and build Hoppscotch Community Edition on your infrastructure. 15 | 16 | 17 | Manage your Hoppscotch Community Edition instance with the Admin dashboard. 18 | 19 | 20 | -------------------------------------------------------------------------------- /documentation/features/graphql-api-testing.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: GraphQL API 3 | title: GraphQL API Testing 4 | description: Test and play around with GraphQL APIs. 5 | --- 6 | 7 | Hoppscotch's GraphQL API platform provides you with the best experience to test and play around with GraphQL. 8 | 9 | It's primarily divided into two sections along with other features to help you build and test queries. 10 | 11 | ## Request 12 | 13 | The request section houses the feature to enter your server endpoint and initiate a connection. 14 | 15 | Once the connection is made, the `query` builder assists you in designing queries to fetch the data that you require and run it. 16 | 17 | You can also add dynamic behavior to your queries by defining `variables`, `headers`, and `authorization`. 18 | 19 | ## Response 20 | 21 | This is where you see the responses to your API endpoints. You can download and copy the returned responses for further use. 22 | 23 | ## Other features 24 | 25 | ### Documentation 26 | 27 | GraphQL documentation is where you can view the documentation provided by the developer. 28 | 29 | ### Schema 30 | 31 | GraphQL uses a schema to define the structure of the data, the schema explorer helps you to understand how your data is structured. 32 | 33 | The GraphQL platform also houses other features like: 34 | 35 | - [Environments](/documentation/features/environments) 36 | - [Collections](/documentation/features/collections) 37 | - [History](/documentation/features/history) 38 | -------------------------------------------------------------------------------- /documentation/self-host/enterprise-edition/getting-started.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: Getting started 3 | title: Getting started 4 | description: Learn how to get started with Hoppscotch Enterprise Edition. 5 | --- 6 | 7 | Enterprise Edition builds on top of the Community Edition foundation by adding powerful features designed for larger organizations that require robust security measures like SAML-based SSO, OIDC, audit logs, and on-premise deployment options. It also comes with dedicated support to help adapt Hoppscotch to your company's specific needs. The self-hosted enterprise version is open-core in nature, meaning it is accompanied by a set of advanced features that are only available through a commercial license. 8 | 9 | 10 | 11 | Prerequisites to self-host Hoppscotch Enterprise Edition on your infrastructure. 12 | 13 | 14 | Install and build Hoppscotch Enterprise Edition on your infrastructure. 15 | 16 | 17 | Manage your Hoppscotch Enterprise Edition instance with the Admin dashboard. 18 | 19 | 20 | -------------------------------------------------------------------------------- /documentation/getting-started/realtime/mqtt.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: MQTT 3 | title: MQTT 4 | description: MQTT is a lightweight publish-subscribe messaging protocol. 5 | --- 6 | 7 | ## Connect to a MQTT server 8 | 9 | 1. Enter the MQTT server "**URL**" and click on "**Connect**". 10 | 11 | ``` 12 | wss://test.mosquitto.org:8081 13 | ``` 14 | 15 | 2. Check the log to see if the connection was successful or not. 16 | 3. To test your server add messages under a topic and publish it. 17 | 4. Other devices in the server that have subscribed to the topic will get your messages. 18 | 5. You can receive messages by subscribing to a topic that another device in the server transmits. 19 | 6. Monitor the log for results. 20 | 21 | ## Sending messages 22 | 23 | Write your message in the "**Message**" input field under the "**Communication**" tab and click on the "**Publish**" button. Type in the "**Topic**" input field to send a message with a topic. The message you send will be displayed on the "**Logs**" pane. 24 | 25 | ## Subscriptions 26 | 27 | Click on the "**New Subscription**" button to add a new subscription. Enter the topic name and click on the "**Subscribe**" button to subscribe to the topic. The messages you receive will be displayed on the "**Logs**" pane. 28 | 29 | ## Troubleshooting 30 | 31 | 1. Make sure you enter a valid MQTT URL, they always start with the protocol format `ws://`. 32 | 2. Do not add invalid/incorrect authorization tokens before you connect to a MQTT server. 33 | -------------------------------------------------------------------------------- /documentation/getting-started/rest/environment-variables.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: Environment variables 3 | title: Environment variables 4 | description: Learn how to use environment variables in your requests and scripts. 5 | --- 6 | 7 | Environment variables allow you to store and reuse values in your requests and scripts. 8 | 9 | By storing a value in a variable: 10 | 11 | - You can reference it throughout your request section. 12 | - You can change its value by updating it in a single place. 13 | - You increase your ability to work efficiently and minimize the likelihood of errors. 14 | 15 | ## Adding environment variables 16 | 17 | You can create a new environment by clicking the environments icon on the sidebar and clicking the `new` button. Let's label the environment as `Pokemon Envs`. 18 | 19 | Now, let's create an environment variable called `baseURL` pointing to `https://pokeapi.co/api/v2`. 20 | 21 | Similarly, you can create multiple environments and environment variables. 22 | 23 | ## Accessing environment variable 24 | 25 | If you have more than one environment, select the environment whose variables you want to access. You can access the variables in the request section by referencing the variable in the following format `<>`, in our case the variable will be `<>` and the complete URL will be `<>/pokemon/ditto`. 26 | 27 | You can add your variables to the `Global` environment, which can be accessed globally, ie. in every other environments. 28 | -------------------------------------------------------------------------------- /documentation/features/history.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: History 3 | title: History 4 | description: Store and access your previous requests and responses. 5 | --- 6 | 7 | Hoppscotch helps you to keep track of your requests and responses. You can access the history of your requests by clicking on the "**History**" icon on the side panel. 8 | 9 | ## Save requests to history 10 | 11 | To save a request to your history, you can click on the "Send" button on the request page. Hoppscotch will automatically save the request to your history. 12 | 13 | ## Accessing requests from history 14 | 15 | To access a request from your history, click on the desired request in the history section. You can also access a request from your history by clicking on the "**History**" icon on the side panel. 16 | 17 | ## Favorite requests 18 | 19 | You can favorite a request by clicking on the "**Favorite**" button on the history entry's options. Click on the "**Favorite**" button again to unfavorite the request. Favorite requests can be filtered by clicking on the "**Filter**" button in the history section and selecting the "**Favorites**" filter. 20 | 21 | ## Filter history 22 | 23 | You can filter your history by clicking on the "**Filter**" button in the history section and selecting the desired filter. 24 | 25 | ## Deleting requests from history 26 | 27 | To delete a request from your history, click on the "**Delete**" button on the history entry's options. You can also delete all requests from your history by clicking on the "**Clear history**" button in the history section. 28 | -------------------------------------------------------------------------------- /documentation/self-host/community-edition/setup-and-access.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: Setup and access 3 | title: Setup and access 4 | description: Learn how to set up and access Hoppscotch Community Edition. 5 | --- 6 | 7 | After successfully running the necessary containers, the next step involves creating an administrator account to manage Hoppscotch. 8 | 9 | The system automatically designates the first user who logs in through the admin dashboard as the administrator. 10 | 11 | ## Creating an administrator account 12 | 13 | 1. Open a new browser tab and visit [`http://localhost:3100`](http://localhost:3100). 14 | 2. This will grant you access to the admin dashboard. 15 | 3. Login using your credentials or create a new account. 16 | 4. The first user to log in will be given administrator privileges. 17 | 18 | 19 | Learn how to manage your Hoppscotch instance using the admin dashboard. 20 | 21 | 22 | ## Accessing the Hoppscotch app 23 | 24 | With the administrator account set up, you can now start using the Hoppscotch app for API testing and development. 25 | 26 | 1. Open a new browser tab and visit [`http://localhost:3000`](http://localhost:3000). 27 | 2. Begin testing and developing your APIs seamlessly with Hoppscotch. 28 | 29 | Hoppscotch Enterprise Edition is available for on-premise deployment with priority support. [Contact Hoppscotch Support](/support/getting-started/contact) 30 | -------------------------------------------------------------------------------- /documentation/self-host/enterprise-edition/setup-and-access.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: Setup and access 3 | title: Setup and access 4 | description: Learn how to set up and access Hoppscotch Enterprise Edition. 5 | --- 6 | 7 | After successfully running the necessary containers, the next step involves creating an administrator account to manage Hoppscotch. 8 | 9 | The system automatically designates the first user who logs in through the admin dashboard as the administrator. 10 | 11 | ## Creating an administrator account 12 | 13 | 1. Open a new browser tab and visit [`http://localhost:3100`](http://localhost:3100). 14 | 2. This will grant you access to the admin dashboard. 15 | 3. Login using your credentials or create a new account. 16 | 4. The first user to log in will be given administrator privileges. 17 | 18 | 19 | Learn how to manage your Hoppscotch instance using the admin dashboard. 20 | 21 | 22 | ## Accessing the Hoppscotch app 23 | 24 | With the administrator account set up, you can now start using the Hoppscotch app for API testing and development. 25 | 26 | 1. Open a new browser tab and visit [`http://localhost:3000`](http://localhost:3000). 27 | 2. Begin testing and developing your APIs seamlessly with Hoppscotch. 28 | 29 | Hoppscotch Enterprise Edition is available for on-premise deployment with priority support. [Contact Hoppscotch Support](/support/getting-started/contact) 30 | -------------------------------------------------------------------------------- /documentation/getting-started/graphql/using-variables.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: Using variables 3 | title: Using variables in a GraphQL query 4 | description: Learn how to use variables in a GraphQL query. 5 | --- 6 | 7 | Hoppscotch allows you to pass variables in the query to fetch data dynamically. 8 | 9 | To demonstrate the use of variables, let's write a query to get countries by their `name` and `continent`. For example, we will fetch the details of **"Bahrain"** from the **"Asia"** continent. 10 | 11 | ## Variables 12 | 13 | Go to the variables section and define the variable. 14 | 15 | ```json 16 | { 17 | "countryName": "Bahrain", 18 | "continentCode": "AS" 19 | } 20 | ``` 21 | 22 | ## Using the variable in the query 23 | 24 | Now create a query `getCountries` with variables as shown below: 25 | 26 | ```graphql 27 | query getCountries($countryName: String!, $continentCode: String!) { 28 | countries(filter: {name: {eq: $countryName}, continent: {eq: $continentCode}}) { 29 | name 30 | continent { 31 | name 32 | } 33 | code 34 | emoji 35 | currencies 36 | } 37 | } 38 | ``` 39 | 40 | Hoppscotch will retrieve the value of the variable and execute the query to get the below response. 41 | 42 | ```json 43 | { 44 | "data": { 45 | "countries": [ 46 | { 47 | "name": "Bahrain", 48 | "continent": { 49 | "name": "Asia" 50 | }, 51 | "code": "BH", 52 | "emoji": "🇧🇭", 53 | "currencies": [ 54 | "BHD" 55 | ] 56 | } 57 | ] 58 | } 59 | } 60 | ``` -------------------------------------------------------------------------------- /snippets/components.mdx: -------------------------------------------------------------------------------- 1 | export const PrimaryButton = ({ label, href }) => { 2 | return ( 3 | 4 | 9 | 10 | ); 11 | }; 12 | 13 | export const Banner = () => { 14 | return ( 15 |
16 |
17 |

Templates

18 |

Here you'll find guides, resources, and references to build with Venus.

19 | 36 |
37 |
38 | 39 |
40 |
41 | ) 42 | } -------------------------------------------------------------------------------- /documentation/getting-started/clients.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: Clients 3 | title: Hoppscotch Clients 4 | description: Access Hoppscotch from anywhere. 5 | --- 6 | 7 | import HoppscotchClients from "/snippets/hoppscotch-clients.mdx" 8 | 9 | Hoppscotch has multiple clients that you can use to develop and test your APIs. You can use Hoppscotch on the web, desktop, and terminal. 10 | 11 | 12 | 13 | ## Navigating Hoppscotch Interface 14 | 15 | 16 | 17 | 18 | 19 | 20 | ## Understanding the user interface 21 | 22 | Hoppscotch has a simple and intuitive UI. The UI is divided into multiple sections: 23 | 24 | ### Topbar 25 | 26 | The top bar is where you can find the search, login, workspace selector, and more. 27 | 28 | ### Menu 29 | 30 | The menu is where you will find the different platforms that Hoppscotch offers and switch between them. You can also access the settings page from the menu. 31 | 32 | ### Sidebar 33 | 34 | The sidebar is where you can see additional features depending on the platform you are working on. The sidebar houses features like history and collections. 35 | 36 | ### Main 37 | 38 | The main panel is where you will spend most of your time. This is where you will create and send requests and view the responses. 39 | 40 | ### Footer 41 | 42 | The footer houses the status bar. The status bar allows you to toggle the sidebar, go full screen, get help and support, and more. 43 | -------------------------------------------------------------------------------- /documentation/self-host/community-edition/telemetry.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: Telemetry 3 | title: 'Telemetry' 4 | description: 'Telemetry and data sharing in Hoppscotch Community Edition' 5 | --- 6 | 7 | Telemetry in Hoppscotch Self-Host refers to anonymous data shared with Hoppscotch. This helps identify the usage patterns of Hoppscotch. 8 | 9 | # Data Collected by Hoppscotch 10 | 11 | Hoppscotch does not capture any data from your APIs. All captured data is anonymous and pertains to instance usage. 12 | 13 | ## Instance Usage 14 | 15 | The instance usage ping is sent once a week to indicate that the instance is operational. You can disable this event by navigating to the settings page and turning off data sharing settings. 16 | 17 | ```json 18 | { 19 | "uuid": "976fcae1-4079-4e83-881a-48723f694475", 20 | "event": "sh_instance", 21 | "properties": { 22 | "type": "COMMUNITY", 23 | "total_user_count": 10, 24 | "total_workspace_count": 2, 25 | "version": "2024.3.0", 26 | "$lib": "posthog-node", 27 | "$lib_version": "3.6.3", 28 | "$geoip_disable": true, 29 | "$ip": "127.0.0.1", 30 | "$sent_at": "2024-02-20T06:14:20.041000+00:00", 31 | "$plugins_succeeded": [ 32 | "GeoIP (8000)" 33 | ], 34 | "$plugins_failed": [], 35 | "$plugins_deferred": [] 36 | }, 37 | "timestamp": "2024-02-20T06:14:20.591000Z", 38 | "team_id": 15871, 39 | "distinct_id": "9bdec3aae9330af51ba91313d3de99b46ae928da", 40 | "elements_chain": "", 41 | "created_at": "2024-02-20T06:14:20.835000Z" 42 | } 43 | 44 | ``` 45 | 46 | # Turning off data sharing 47 | 48 | You can turn off your data sharing preferences from your Hoppscotch admin dashboard and heading over to the Data Sharing section in the settings page -------------------------------------------------------------------------------- /support/getting-started/contact.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: Contact 3 | title: Contact 4 | description: Contact us to get technical support, report a bug, suggest a new feature or improvement, or join our community. 5 | --- 6 | 7 | ## Technical support 8 | 9 | Contact us to book a slot for a private consulting session with our team. We will help you get started with Hoppscotch and answer any questions you may have. 10 | 11 | [Talk to experts](/support/solutions/experts) 12 | 13 | ## Report a bug 14 | 15 | If you find a bug, please report it to us by creating a new issue on our [GitHub repository](https://github.com/hoppscotch/hoppscotch). 16 | 17 | [Report a bug](https://github.com/hoppscotch/hoppscotch/issues/new?assignees=&labels=bug%2Cneed+testing&template=--bug-report.yaml&title=%5Bbug%5D%3A+) 18 | 19 | ## Suggest a new feature or improvement 20 | 21 | If you have a feature request or an improvement suggestion, please create a new issue on our [GitHub repository](https://github.com/hoppscotch/hoppscotch). 22 | 23 | [Request a feature](https://github.com/hoppscotch/hoppscotch/issues/new?assignees=&labels=feature&template=--feature-request.yaml&title=%5Bfeature%5D%3A+) 24 | 25 | ## Contribute 26 | 27 | We are always looking for contributors to help us improve Hoppscotch. If you are interested in contributing, please check out our [contributing guide](/documentation/develop), [code of conduct](https://github.com/hoppscotch/hoppscotch/blob/main/CODE_OF_CONDUCT.md), and our [GitHub repository](https://github.com/hoppscotch/hoppscotch). 28 | 29 | ## Join our community 30 | 31 | Join our [community channels](/support/solutions/community) to get help from our team and other Hoppscotch users. You can also share your feedback and ideas with us. We would love to hear from you. 32 | -------------------------------------------------------------------------------- /documentation/clients/web.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: Web 3 | title: Hoppscotch Web App 4 | description: Build, test, and share your APIs directly in your browser. 5 | --- 6 | 7 | Hoppscotch web client provides you with a really easy interface to develop and test your APIs. You can start using the web client by opening [hoppscotch.io](https://hoppscotch.io) in your browser. 8 | 9 | 10 | 11 | 12 | 13 | 14 | ## Progressive Web App 15 | 16 | Hoppscotch is also available as a PWA (Progressive Web App). 17 | 18 | Progressive Web Apps (PWAs) are web apps that are fast, reliable, and engaging. They are installable and live on the user's home screen, without the need for an app store. They offer an immersive full-screen experience and re-engage users with web push notifications. 19 | 20 | ## Why PWA 21 | 22 | - **Fast** - Load instantly to get started with Hoppscotch in seconds. 23 | - **Installable** - Install Hoppscotch on your device's home screen, just like a native app. 24 | - **Reliable** - Never shows the downasaur, even in uncertain network conditions. 25 | - **Engaging** - Feel like a natural app on the device, with an immersive user experience. 26 | 27 | ## Install Hoppscotch PWA 28 | 29 | 1. On your computer, open Chrome or any Chromium-based browser. 30 | 2. Go to [hoppscotch.io](https://hoppscotch.io). 31 | 3. At the top right of the address bar, click "**Install +**". 32 | 4. Follow the on-screen instructions to install the PWA. 33 | 34 | Read more about [Progressive Web Apps](https://web.dev/progressive-web-apps). 35 | -------------------------------------------------------------------------------- /documentation/features/spotlight.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: Spotlight 3 | title: Spotlight 4 | description: Powerful search and command palette. 5 | --- 6 | 7 | Press   ⌘ + K   anytime to open Spotlight. 8 | 9 | Spotlight is an innovative feature introduced in Hoppscotch, designed to enhance your interaction with the application. By utilizing Spotlight, you can efficiently navigate through various functionalities and perform tasks swiftly. 10 | 11 | ## Activation 12 | 13 | To activate the Spotlight search functionality, you can employ the following key combinations based on their operating systems: 14 | 15 | * On macOS: Press `Cmd` + `K` 16 | * On Windows or Linux: Press `Ctrl` + `K` 17 | 18 | ## Spotlight Interface 19 | 20 | Upon triggering the Spotlight search, a search field will be displayed, allowing you to provide input. As you type, relevant suggestions will dynamically appear, aiding in quickly finding desired functionalities. 21 | 22 | ## Navigation and Selection 23 | 24 | Spotlight not only offers dynamic suggestions but also facilitates their navigation and selection. The presented suggestions are ranked by relevance, enabling you to easily identify your desired options. Navigation can be achieved through: 25 | 26 | * Arrow keys: Use the arrow keys to move through the suggestions. 27 | * Enter key: Press the enter key to select the highlighted suggestion. 28 | 29 | Alternatively, you can achieve the same functionality using the mouse or trackpad. 30 | 31 | Spotlight revolutionizes the user experience within Hoppscotch by streamlining various tasks and reducing unnecessary clicks. With Spotlight, you can accomplish the following tasks more efficiently: 32 | 33 | - Navigate to any page within the app. 34 | - Search and find requests in your collections. 35 | - Create, edit, and quickly switch, workspaces and environments. 36 | - Rename, save, and send requests. 37 | -------------------------------------------------------------------------------- /documentation/getting-started/setup.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: Setup 3 | title: Setup Hoppscotch 4 | description: Learn how to setup Hoppscotch. 5 | --- 6 | 7 | To get started with Hoppscotch, you need to choose a platform to use it on. Hoppscotch is available on the following platforms: 8 | 9 | - [Web](#web-app) 10 | - [Desktop](#desktop-app) 11 | - [CLI](#cli) 12 | 13 | ## Web 14 | 15 | To get started with Hoppscotch web client, head to [hoppscotch.io](https://hoppscotch.io) and start using it right away for free. 16 | 17 | 18 | 19 | 20 | 21 | 22 | ## Desktop 23 | 24 | Hoppscotch Desktop App is a cross-platform desktop application built with Tauri and Hoppscotch Web Client. It is a standalone version of Hoppscotch that can be installed on your computer and used without a browser. Hoppscotch Desktop App is available for Mac, Windows and Linux. 25 | 26 | 27 | 28 | 29 | 30 | 31 | ## CLI 32 | 33 | Hoppscotch CLI is the command-line interface for Hoppscotch. It is a standalone version of Hoppscotch that can be installed on your computer and used without a browser. Hoppscotch CLI is available as an npm package. 34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /support/security-policy.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: Security policy 3 | title: Security policy 4 | description: Security procedures and general policies for Hoppscotch. 5 | --- 6 | 7 | This document outlines security procedures and general policies for the Hoppscotch project. 8 | 9 | - [Security Policy](#security-policy) 10 | - [Reporting a security vulnerability](#reporting-a-security-vulnerability) 11 | - [Incident response process](#incident-response-process) 12 | 13 | ## Reporting a security vulnerability 14 | 15 | Report security vulnerabilities by emailing the Hoppscotch Support team at support@hoppscotch.io. 16 | 17 | The primary security point of contact from Hoppscotch Support team will acknowledge your email within 48 hours, and will send a more detailed response within 48 hours indicating the next steps in handling your report. After the initial reply to your report, the security team will endeavor to keep you informed of the progress towards a fix and full announcement, and may ask for additional information or guidance. 18 | 19 | **Do not create a GitHub issue ticket to report a security vulnerability.** 20 | 21 | The Hoppscotch team and community take all security vulnerability reports in Hoppscotch seriously. Thank you for improving the security of Hoppscotch. We appreciate your efforts and responsible disclosure and will make every effort to acknowledge your contributions. 22 | 23 | Report security bugs in third-party modules to the person or team maintaining the module. 24 | 25 | ## Incident response process 26 | 27 | In case an incident is discovered or reported, we will follow the following process to contain, respond, and remediate: 28 | 29 | 1. Confirm the problem and determine the affected versions. 30 | 2. Audit code to find any potential similar problems. 31 | 3. Prepare fixes for all releases still under maintenance. These fixes will be deployed as fast as possible to production. 32 | -------------------------------------------------------------------------------- /documentation/features/cookies.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: Cookies 3 | title: Cookies 4 | description: Create and modify cookies associated with a domain and send cookies with requests. 5 | --- 6 | 7 | Cookies support is only available in the [Hoppscotch Desktop App](/documentation/clients/desktop). 8 | 9 | Hoppscotch Cookie Manager enables you to add, edit, and remove cookies for a domain. You can also send a cookie with a request. 10 | 11 | To open the Cookie Manager, click on the "**Cookies**" button in the bottom bar. 12 | 13 | ### Adding a domain 14 | 15 | The Cookie Manager allows you to specify a domain and add the cookies associated with that domain. You can remove all the domains using the "**Clear All**" button. 16 | 17 | 1. Add domain URL in the input field. 18 | 2. Click on the "**Add**" button. 19 | 3. Click on the "**Save**" button. 20 | 21 | Once you've specified a domain, you can add a cookie by clicking the **+** icon and entering a cookie string. 22 | 23 | ### Removing a domain 24 | 25 | You can remove a domain by clicking on the "**Delete**" icon from the Cookie Manager. 26 | 27 | ### Adding a cookie 28 | 29 | You can add a cookie by clicking on the "**+**" icon from the Cookie Manager. 30 | 31 | 1. Click on the "**+**" icon. 32 | 2. Enter the cookie string in the input field. 33 | 3. Click on the "**Save**" button. 34 | 35 | ### Editing a cookie 36 | 37 | You can edit a cookie by clicking on the "**Edit**" icon from the Cookie Manager. 38 | 39 | 1. Click on the "**Edit**" icon. 40 | 2. Edit the cookie string in the input field. 41 | 3. Click on the "**Save**" button. 42 | 43 | ### Removing a cookie 44 | 45 | You can remove a cookie by clicking on the "**Delete**" icon from the Cookie Manager. 46 | 47 | ### Sending a cookie with requests 48 | 49 | When you send a request to a domain for which you've specified a cookie, Hoppscotch will automatically include it as part of the request. 50 | -------------------------------------------------------------------------------- /documentation/features/context-menu.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: Context Menu 3 | title: Context Menu 4 | description: 5 | Use context-aware menus to assist with your actions and improve your workflow. 6 | --- 7 | 8 | Context-aware menus enable quick actions like creating variables or adding query 9 | parameters by selecting text or elements. The context menu offers three options: 10 | **Set as Variable**, **Add to Parameters**, and **Open Request in New Tab**. 11 | 12 | 13 | The "Add to Parameters" option is available only when using query parameters. 14 | 15 | 16 | ## Set as Variable 17 | 18 | You can use the **Set as Variable** option from the context menu to assign a 19 | selected value to an environment variable. 20 | 21 | Hoppscotch supports various variable scopes, including global, environment, and 22 | request-specific variables. For more details on these scopes 23 | [click here](/documentation/features/variables). 24 | 25 | ### How to use "Set as Variable" 26 | 27 | After setting an [environment variable](/documentation/features/environments), 28 | you can reference it using the format `<>`. This allows you to 29 | store For example, `<>` can be used to dynamically insert the base URL 30 | across your requests. 31 | 32 | ## Add to Parameters 33 | 34 | The **Add to Parameters** option allows you to quickly add parameters along with 35 | their values. 36 | 37 | When you select **Add to Parameters**, it automatically captures the parameter 38 | and its value. For example, if the `baseURL` is 39 | `https://jsonplaceholder.typicode.com/?user=1`, now the `user` with ID `1` will 40 | be included in the parameter placeholder. 41 | 42 | ## Open Request in New Tab 43 | 44 | The **Open Request in New Tab** option allows you to open any **selected URL or 45 | text** as a new request in a separate tab.. 46 | 47 | By opening the selected URL in a new tab, you can continue working on your 48 | original request in its own tab without any interruptions. 49 | -------------------------------------------------------------------------------- /documentation/getting-started/introduction.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: Introduction 3 | title: Introduction to Hoppscotch 4 | description: Open-source API development ecosystem. 5 | --- 6 | 7 | Hoppscotch is a lightweight, web-based API development suite. It was built from the ground up with ease of use and accessibility in mind providing all the functionality needed for developers with minimalist, unobtrusive UI. 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | Source code is open and auditable. Built with privacy and security in mind. 17 | 18 | 19 | Works on Web, Mac, Windows, Linux, and CLI. No installation is required. 20 | 21 | 22 | Host Hoppscotch on your own server and use it with your team. 23 | 24 | 25 | Built with performance in mind and designed to be seamless and instant. 26 | 27 | 28 | Built on top of open source technologies by the community, for the community. 29 | 30 | 31 | Have all your teams in one place and collaborate on your APIs with ease. 32 | 33 | 34 | Designed to be intuitive and easy to use with keyboard shortcuts. 35 | 36 | 37 | Built with security in mind and designed to be safe and secure. 38 | 39 | 40 | -------------------------------------------------------------------------------- /guides/articles.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: Index 3 | title: Index 4 | description: Complete list of articles and guides for Hoppscotch. 5 | --- 6 | 7 | Interested in writing an article about Hoppscotch? Contact us at `support@hoppscotch.io`. 8 | 9 | 10 | 11 | Representational State Transfer (REST) APIs are a core part of communication between a web/mobile client and a server... 12 | 13 | 14 | Hoppscotch provides you with a minimal and blazing platform to design, develop and test your APIs... 15 | 16 | 17 | The GraphQL schema is at the core of any GraphQL server. It defines the capabilities of the API and specifies how clients can access that data... 18 | 19 | 20 | If an update causes issues with Hoppscotch Desktop, you can downgrade to a previous version and restore your data from an automatic backup... 21 | 22 | 23 | 24 | # Community Articles 25 | 26 | 27 | 28 | Widgets are interactive components that can be embedded in HTML pages to enhance user experience... 29 | 30 | 31 | 32 | We're looking for more articles! If you have written an article about Hoppscotch, please [open a pull request](https://github.com/hoppscotch/docs) on our documentation repository. We'll be happy to add it to this list. 33 | -------------------------------------------------------------------------------- /guides/articles/improving-your-api-workflow.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: API Workflow 3 | title: Improving your API workflow 4 | description: Learn how to improve your API workflow with Hoppscotch. 5 | --- 6 | 7 | Hoppscotch provides you with a minimal and blazing platform to design, develop and test your APIs. Hoppscotch enables you to quickly get started and even helps you to organize your work to help you improve your workflow. 8 | 9 | Hoppscotch provides you with three major ways for you to manage your APIs and enhance your development workflow: 10 | 11 | - Collections 12 | - Environments 13 | - Workspaces 14 | 15 | ## Collections 16 | 17 | Collections help you save and organize your API requests. You can create collections and add requests to them to share with your team or to use later. You can also import and export collections from Hoppscotch, OpenAPI, and Postman. 18 | 19 | ## Environments 20 | 21 | Environments provide you the functionality to create key-value pairs that can be used as variables in your request URL, headers, and even as auth tokens. You can create several such key-value pairs and group them under a single environment. Environments are self-isolated from each other and an active environment needs to be selected if you have multiple environments created. 22 | 23 | ## Workspaces 24 | 25 | Workspaces help you organize your requests, collections, and environments for specific purposes and project stages. You can create unlimited Workspaces and invite as many collaborators as needed in Hoppscotch. Whether you're working solo or with a team, you can choose between **Personal and Team Workspaces** to fit your needs. 26 | 27 | A Personal Workspace is a private area exclusively for you, where collaboration isn't possible. Within a Personal Workspace, you can choose to sync your collections and environment data either with the [Hoppscotch cloud](https://hoppscotch.io) or **keep it stored locally**. 28 | 29 | To learn more about setting up new Workspaces and collaborating with your team on APIs, head over to our [documentation for Workspaces](https://docs.hoppscotch.io/documentation/features/workspaces). 30 | -------------------------------------------------------------------------------- /documentation/features/documentation.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: Documentation 3 | title: API Documentation 4 | description: Create, edit, and publish beautiful API documentation collaboratively with your team. 5 | --- 6 | 7 | Hoppscotch API Documentation allows you to generate and host public or private documentation for your APIs. It enables your team to collaborate on documentation in real-time, ensuring your API consumers always have the latest information. 8 | 9 | ## What you can do 10 | 11 | - Generate API documentation from your Collections 12 | - Collaborate with your team to edit and refine content 13 | - Support for Markdown descriptions 14 | - Share documentation with your team or the world 15 | - Publish documentation to a public URL 16 | - Organize endpoints with folders and subfolders 17 | - Include example requests and responses 18 | - Code snippets for various languages and frameworks 19 | 20 | ## Create documentation 21 | 22 | You can create documentation directly from your Collections. 23 | 24 | 1. **Select a Collection**: Choose the collection you want to document. 25 | 2. **Write Documentation**: Navigate to Menu > Documentation. 26 | 3. **Publish**: Get a shareable link to your documentation by publishing it. 27 | 28 | ## Collaborative Editing 29 | 30 | Invite team members to your workspace to collaborate on documentation. Changes made to the collection are reflected in the documentation, keeping everything in sync. 31 | 32 | ## Features 33 | 34 | ### Real-time Updates 35 | 36 | Documentation updates automatically as you modify your collection. You need to publish changes to redeploy the documentation. 37 | 38 | ### Code Snippets 39 | 40 | Automatically generated code snippets for various languages and frameworks help developers integrate with your API quickly. 41 | 42 | ### Example Responses 43 | 44 | Display example responses to help users understand what to expect from your API endpoints. You can add multiple examples for different scenarios (e.g., success, error). 45 | 46 | ### Markdown Support 47 | 48 | Use Markdown to add rich text descriptions, images, and links to your documentation, making it easy to read and understand. 49 | -------------------------------------------------------------------------------- /documentation/getting-started/rest/request-parameters.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: Request parameters 3 | title: Request parameters 4 | description: Request parameters help you to filter and request specific data from an API endpoint. 5 | --- 6 | 7 | Query parameters help you to filter and request specific data from an API endpoint. 8 | 9 | 10 | You can add query parameters in two ways: 11 | 1. Add them in the URL. 12 | 2. Add them in the parameters tab. 13 | 14 | 15 | ## Adding parameters in the URL 16 | 17 | To add a parameter in the URL, append `?` at the end of the URL and add a parameter in `key=value` format. 18 | 19 | You can add multiple parameters by separating them using `&`. 20 | 21 | For example, the below URL is filtered to get the data of the first three Pokemon. 22 | 23 | ``` 24 | https://pokeapi.co/api/v2/pokemon/?offset=6&limit=3 25 | ``` 26 | 27 | For which you will get a similar response: 28 | 29 | ```json 30 | { 31 | "count": 1281, 32 | "next": "https://pokeapi.co/api/v2/pokemon?offset=9&limit=3", 33 | "previous": "https://pokeapi.co/api/v2/pokemon?offset=3&limit=3", 34 | "results": [ 35 | { 36 | "name": "squirtle", 37 | "url": "https://pokeapi.co/api/v2/pokemon/7/" 38 | }, 39 | { 40 | "name": "wartortle", 41 | "url": "https://pokeapi.co/api/v2/pokemon/8/" 42 | }, 43 | { 44 | "name": "blastoise", 45 | "url": "https://pokeapi.co/api/v2/pokemon/9/" 46 | } 47 | ] 48 | } 49 | ``` 50 | 51 | ## Using the parameters tab 52 | 53 | You can use the **Parameters tab** to set **`key-value`** pairs for your API requests. This tab also lets you add a **`description`** for each parameter, helping you provide a clear explanation of what each parameter does and why it's important. 54 | 55 | Hoppscotch also offers a **Bulk edit** feature, allowing you to add or modify multiple request parameters at once, with each key-value pair on a new line separated by a **colon (:)**. For example, 56 | 57 | ```yaml 58 | param1: value1 59 | param2: value2 60 | # param3: value3 61 | ``` 62 | 63 | Try using the parameters tab to see if you get the same response as adding parameters in the URL. 64 | -------------------------------------------------------------------------------- /guides/articles/understanding-graphql.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: GraphQL API Testing 3 | title: Understanding the GraphQL Schema on Hoppscotch 4 | description: Learn how to use the GraphQL schema on Hoppscotch. 5 | --- 6 | 7 | The GraphQL schema is at the core of any GraphQL server. It defines the capabilities of the API and specifies how clients can access that data. A schema includes types and fields, queries and mutations, interfaces, and unions. Hoppscotch provides you the functionality to connect to a GraphQL server and explore the GraphQL schema. 8 | 9 | A GraphQL schema defines types and the fields on those types. This allows clients to ask for exactly what they need and get exactly that - nothing more and nothing less. The schema also defines queries and mutations, which are entry points into the API to read and write data. 10 | 11 | The schema is written using the Schema Definition Language (SDL). The SDL provides a way to describe types and fields, as well as queries and mutations. Here is a very simple example of a schema in SDL: 12 | 13 | ```graphql 14 | type Query { 15 | hello: String 16 | } 17 | ``` 18 | 19 | This schema has one type, Query, and one field on that type, hello. A client could call the hello query to get the String value returned by that field. 20 | 21 | The schema sits at the core of any GraphQL server and defines the capabilities of the API. Understanding the structure and components of a GraphQL schema is fundamental to building and using GraphQL APIs. 22 | 23 | Hoppscotch's GraphQL API platform provides you with the best experience to test and play around with GraphQL. Once connected to a GraphQL server, you can view the schema by clicking the schema icon on the sidebar. 24 | 25 | For example, try connecting to the following server 26 | 27 | ``` 28 | https://echo.hoppscotch.io/graphql 29 | ``` 30 | 31 | You'll see a schema like the one below: 32 | 33 | ```graphql 34 | schema { 35 | query: Request 36 | } 37 | 38 | type Request { 39 | method: String 40 | url: String 41 | headers: [Header] 42 | } 43 | 44 | type Header { 45 | key: String 46 | value: String 47 | } 48 | ``` 49 | 50 | The schema has the following types `Request` with queries method, URL, and headers. where the header points to another type `Header`. 51 | -------------------------------------------------------------------------------- /documentation/getting-started/rest/auth-tokens.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: Using auth tokens 3 | title: Using auth tokens 4 | description: Learn how to use authentication tokens in Hoppscotch. 5 | --- 6 | 7 | In this section, we'll look at passing Authorization and Authentication information in our requests, by accessing the [GitHub REST API](https://docs.github.com/en/rest). 8 | 9 | Let's try making a `GET` request to the URL `https://api.github.com/user`. 10 | 11 | You'll get the following response: 12 | 13 | ```json 14 | { 15 | "message": "Requires authentication", 16 | "documentation_url": "https://docs.github.com/rest/reference/users#get-the-authenticated-user" 17 | } 18 | ``` 19 | 20 | This is because you are not authorized to access the API and to gain access you would need to authenticate yourself. We use tokens to authenticate a user and to do so we first need to generate an access token from GitHub. 21 | 22 | ## Generating access token 23 | 24 | To get access to the GitHub API, you first need to generate a personal access token. For our demonstration, we will generate one granting access to public repositories. 25 | 26 | 1. Login to the GitHub account. 27 | 2. Goto your [personal access tokens page](https://github.com/settings/tokens) and click on "**Generate new token**". 28 | 3. Select tokens (classic). 29 | 4. Specify the note as "**Hoppscotch API**" so that you can remember why you created it. 30 | 5. Under the "Select scopes" section only check `public_repo`. 31 | 6. Scroll down and click on "**Generate token**". 32 | 7. You just generated your access token, now copy the token to your clipboard. 33 | 34 | ## Storing auth token in a variable 35 | 36 | It is a recommended safe practice to have your auth details in environment variables rather than inputting them directly to the authorization tab. 37 | 38 | 1. Click on the "**Global**" environment to add a variable. 39 | 2. Create a variable called `token` and paste the token from GitHub as its value. 40 | 3. Now open the Authorization tab and select `Bearer` from the dropdown list. 41 | 4. Input the token as shown below, make sure that you reference the token in variable format, i.e. `<>`. 42 | 5. Click on "**Send**". 43 | 44 | You should now see the response including details about your GitHub account. 45 | -------------------------------------------------------------------------------- /guides/articles/manage-an-enterprise-license-key.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: Enterprise License Key 3 | title: Managing your Enterprise License Key 4 | description: Learn how to manage your Hoppscotch Enterprise Edition license key. 5 | --- 6 | 7 | This guide provides step-by-step instructions for managing your Hoppscotch Enterprise Edition license key. If you plan to self-host the Hoppscotch Enterprise Edition, you must obtain a License Key. 8 | 9 | ## Creating an Account 10 | 11 | To initiate the process, you need to create an account on the Hoppscotch Enterprise Dashboard. 12 | 13 | 1. Visit [enterprise.hoppscotch.com](https://enterprise.hoppscotch.com) and provide your email. 14 | 2. A magic link will be sent to your email address. 15 | 3. Click on the magic link to log in, and you will be redirected to a screen to input your organization's information. 16 | 17 | Continue by clicking "Next" and enter information about the organization 18 | 19 | Continue by clicking "Next" and enter the personal information of the individual responsible for the purchase on behalf of the organization. 20 | 21 | To proceed with the purchase, review and accept the end user license agreement. 22 | 23 | ## Booking a Demo 24 | 25 | After agreeing to the license terms, you can schedule a demo with our team. Click the "Book a Demo" button. 26 | 27 | ## Making the Purchase 28 | 29 | While you can directly purchase by clicking the "Subscribe" button, we recommend scheduling a call with us for personalized assistance. 30 | 31 | 1. Click the "Subscribe" button. 32 | 2. Enter the number of seats required for the license. 33 | 3. Click the **Create** button to proceed to checkout and complete the payment. 34 | 35 | Upon successful payment, your License Key will be available on the dashboard. Copy it and paste it into the `.env` file in your project's root directory. You can now start utilizing Hoppscotch Enterprise Edition. 36 | 37 | ## Updating Your License 38 | 39 | With a valid license, you can manage it to update the seat count or generate a new license under the same account through the enterprise dashboard. 40 | 41 | For more information on self-hosting Hoppscotch Enterprise Edition, consult the guide on [Self-Hosting Hoppscotch Enterprise Edition](/documentation/self-host/enterprise-edition/getting-started). 42 | -------------------------------------------------------------------------------- /documentation/features/client-certificate.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: Client Certificate 3 | title: Client Certificate 4 | description: Configure client certificates for SSL authentication in Hoppscotch. 5 | --- 6 | 7 | Add and manage client certificates in [Hoppscotch Desktop App](https://hoppscotch.com/download) or in Hoppscotch Web App using the [Hoppscotch Agent](/documentation/features/interceptor#hoppscotch-agent) as an interceptor to authenticate your identity when connecting to secure APIs. 8 | 9 | ### Prerequisites 10 | 11 | Before you begin, ensure you have the following: 12 | 13 | - Either the **Hoppscotch Desktop App** installed on your system, or if you are using the Hoppscotch Web App, make sure the **Hoppscotch Agent** is installed and configured. 14 | - A valid Client Certificate in one of the following formats: 15 | - **.pem Certificate** 16 | - **.pfx/.pkcs12 Certificate** 17 | - The corresponding private key file, if the certificate is in .pem format. 18 | 19 | ### Adding Client Certificate 20 | 21 | 1. Open Hoppscotch's settings page from the side bar. 22 | 2. Within Interceptors section, locate the `Client Certificates` action: 23 | - Under Native settings if using the Desktop App. 24 | - Under Agent if using the Web App. 25 | 3. Click on the option to add a new client certificate and select the type of certificate you want to add: **.pem** or **.pfx/.pkcs12**. 26 | 4. **Upload Certificate Files** 27 | - **.pem Certificate**: Choose the **certificate file** (.crt/.cer/.pem) and upload the **private key file** (.key/.pem) in the designated field. 28 | - **.pfx/.pkcs12 Certificate**: Choose the **.pfx/.pkcs12** file. You may need to enter the password associated with the certificate file. 29 | 5. After uploading the certificate files, click on the save button to store the settings. 30 | 31 | **You cannot edit a certificate after adding it.** 32 | 33 | ### Using Client Certificate 34 | 35 | Once you add the certificate, it will automatically be applied to the configured domain whenever you make an HTTP request. If you wish to disable the certificate for a domain, simply uncheck the corresponding checkbox. 36 | 37 | ### Removing a certificate 38 | 39 | Remove a certificate when no longer needed for sending requests by selecting the **delete icon** located next to the certificate associated with a specific domain. -------------------------------------------------------------------------------- /documentation/getting-started/troubleshooting.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: Troubleshooting 3 | title: Troubleshooting 4 | description: Facing issues with Hoppscotch? Check out this page to resolve them. 5 | --- 6 | 7 | If you're facing issues with Hoppscotch, you can try the following steps to resolve them. 8 | 9 | ## Connectivity 10 | 11 | If Hoppscotch fails to send your request, it could be because you may be experiencing connectivity issues. Check your connection by attempting to open a page in your web browser. 12 | 13 | ## Firewalls 14 | 15 | Sometimes firewalls may be configured to block non-browser connections. You might need to contact your network administrator so that Hoppscotch can work seamlessly. 16 | 17 | ## Incorrect protocol 18 | 19 | You might have specified the wrong protocol, check if you're using `https://` or `http://` in your URL or vice-versa. 20 | 21 | ## Hoppscotch errors 22 | 23 | It could also be possible that Hoppscotch might be making invalid requests to your API server. You can confirm this by checking your server logs (if available). If you believe this is happening, do get in touch with the Hoppscotch team. 24 | 25 | ## CORS restrictions 26 | 27 | CORS or Cross-Origin Resource Sharing is a security mechanism built into modern web browsers. It may cause the following error when testing API endpoints or some other API endpoints with Hoppscotch. 28 | 29 | This is because the API not sending the proper API headers (`Access-Control-Allow-Origin`) and can be solved in two ways. 30 | 31 | 1. Ask whoever manages the API to add CORS support. 32 | 2. Use Middleware like [ProxyScotch](https://github.com/hoppscotch/proxyscotch) for hosted APIs & the [Hoppscotch Browser Extension](https://github.com/hoppscotch/hoppscotch-extension) for locally served APIs, and enable it in the "**Interceptor**" section of "**Settings**". 33 | 34 | ## Something went wrong 35 | 36 | If you're still facing issues, with an error message that says "Something went wrong", help us to better understand the issue by: 37 | 38 | 1. Opening the developer tools in your browser (usually by pressing `F12` or `Ctrl/Cmd`+`Shift`+`I`). 39 | 2. Switch to the "**Console**" tab. 40 | 3. Reproduce the issue. 41 | 4. Take a screenshot of the console and send it to us. 42 | 43 | Report a bug by [opening a new issue](https://github.com/hoppscotch/hoppscotch/issues/new/choose). 44 | -------------------------------------------------------------------------------- /documentation/self-host/enterprise-edition/telemetry.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: Telemetry 3 | title: 'Telemetry' 4 | description: 'Telemetry and data sharing in Hoppscotch Enterprise Edition' 5 | --- 6 | 7 | Telemetry in Hoppscotch Self-Host refers to anonymous data shared with Hoppscotch. This helps identify the usage patterns of Hoppscotch. 8 | 9 | # Data Collected by Hoppscotch 10 | 11 | Hoppscotch does not capture any data from your APIs. All captured data is anonymous and pertains to instance usage. 12 | 13 | ## Instance Usage 14 | 15 | The instance usage ping is sent once a week to indicate that the instance is operational. You can disable this event by navigating to the settings page and turning off data sharing settings. 16 | 17 | ```json 18 | { 19 | "uuid": "976fcae1-4079-4e83-881a-48723f694475", 20 | "event": "sh_instance", 21 | "properties": { 22 | "type": "ENTERPRISE", 23 | "total_user_count": 10, 24 | "total_workspace_count": 2, 25 | "version": "2024.3.0", 26 | "$lib": "posthog-node", 27 | "$lib_version": "3.6.3", 28 | "$geoip_disable": true, 29 | "$ip": "127.0.0.1", 30 | "$sent_at": "2024-02-20T06:14:20.041000+00:00", 31 | "$plugins_succeeded": [ 32 | "GeoIP (8000)" 33 | ], 34 | "$plugins_failed": [], 35 | "$plugins_deferred": [] 36 | }, 37 | "timestamp": "2024-02-20T06:14:20.591000Z", 38 | "team_id": 15871, 39 | "distinct_id": "9bdec3aae9330af51ba91313d3de99b46ae928da", 40 | "elements_chain": "", 41 | "created_at": "2024-02-20T06:14:20.835000Z" 42 | } 43 | 44 | ``` 45 | ## Instance Usage for Billing 46 | 47 | The Hoppscotch Enterprise edition sends an additional event to our licensing server to assist with billing. This event is triggered every 12 hours. The licensing server verifies the instance's license and we send the license status and number of seats used as query parameters. Once the license key is validated, the server returns a signed/encrypted text, which the enterprise instance uses to verify the source of the validation and converts it and stores it as a JSON similar to the one below. 48 | 49 | ```json 50 | { 51 | "status": "valid", 52 | "issuedTo": "AYQHAG$T1", 53 | "seats": 10 54 | } 55 | 56 | ``` 57 | 58 | # Turning off data sharing 59 | 60 | You can turn off your data sharing preferences from your Hoppscotch admin dashboard and heading over to the Data Sharing section in the settings page -------------------------------------------------------------------------------- /documentation/getting-started/rest/creating-a-request.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: Creating a request 3 | title: Creating a request 4 | description: Learn how to create a request in Hoppscotch. 5 | --- 6 | 7 | The RESTful protocol is the default protocol that is active when you open Hoppscotch. Hoppscotch allows you to make API requests and examine the responses. 8 | 9 | You can enter the API endpoint and choose the HTTP method according to your needs from the dropdown menu. 10 | Once it is configured, click on the "**Send**" button and you will see the response returned by the server. It's that simple. 11 | 12 | Now try it yourself, copy the below API endpoint, and create a request. 13 | 14 | ``` 15 | https://echo.hoppscotch.io 16 | ``` 17 | 18 | Let's try another API. 19 | 20 | We'll be using the [Pokemon API](https://github.com/PokeAPI/pokeapi). Go ahead and create a `GET` request to the endpoint below: 21 | 22 | ``` 23 | https://pokeapi.co/api/v2 24 | ``` 25 | 26 | If your request was successful, then you should get a JSON response as shown below: 27 | 28 | ```json 29 | { 30 | "ability": "https://pokeapi.co/api/v2/ability/", 31 | "berry": "https://pokeapi.co/api/v2/berry/", 32 | "pokedex": "https://pokeapi.co/api/v2/pokedex/", 33 | "pokemon": "https://pokeapi.co/api/v2/pokemon/", 34 | "version-group": "https://pokeapi.co/api/v2/version-group/" 35 | } 36 | ``` 37 | 38 | The Pokemon API has returned several new API endpoints or URLs, let's pick the character's URL and explore it. 39 | 40 | To explore the characters create a `GET` request to the URL `https://pokeapi.co/api/v2/pokemon` by copy-pasting the URL below: 41 | 42 | ``` 43 | https://pokeapi.co/api/v2/pokemon 44 | ``` 45 | 46 | The API should have returned a huge amount of data, something similar to the one below: 47 | 48 | ```json 49 | { 50 | "count": 1279, 51 | "next": "https://pokeapi.co/api/v2/pokemon?offset=20&limit=20", 52 | "previous": null, 53 | "results": [ 54 | { 55 | "name": "bulbasaur", 56 | "url": "https://pokeapi.co/api/v2/pokemon/1/" 57 | }, 58 | { 59 | "name": "ivysaur", 60 | "url": "https://pokeapi.co/api/v2/pokemon/2/" 61 | }, 62 | ] 63 | } 64 | ``` 65 | 66 | Try experimenting with the `/pokedex`, `/berry`, and the other endpoints as well. 67 | 68 | 69 | Learn more about RESTful protocol. 70 | 71 | -------------------------------------------------------------------------------- /documentation/features/runner.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: Runner 3 | title: Runner 4 | description: Iterate and execute your requests in a collection. 5 | --- 6 | 7 | The Runner is a powerful tool that allows you to run a collection of requests sequentially. You can also configure the run settings to suit your needs. 8 | 9 | ## Running a Collection 10 | 11 | To run a collection: 12 | 13 | - Right-click on the collection and select the "**Run Collection**" option. 14 | - Alternatively, hover over the collection name and click on the "**Run Collection**" icon. 15 | 16 | You can choose to run the collection from the CLI or through the web interface based on your preference. A new tab will open where you can configure the run settings as described below. 17 | 18 | ## Run Settings 19 | 20 | 1. **Delay**: Set an interval delay (in milliseconds) between running each request. 21 | 2. **Stop Run if Error Occurs**: The collection run stops if an error is encountered within a script or if there's a problem sending a request. 22 | 3. **Persist Responses**: Log response headers and bodies for review after running the collection. Note that persisting responses may impact performance for large collections. 23 | 4. **Keep Variable Values**: Persist the variables used in the run, so any updates made to the variables during the run will retain their changes after completion. 24 | 25 | ## Executing the Run 26 | 27 | After setting up your preferences, start the collection runner. A new tab will display, showing real-time execution details, including: 28 | 29 | - **Collection**: The name of the collection being executed. 30 | - **Environment**: The active environment at runtime. 31 | - **Duration**: Total time taken to complete the run. 32 | - **Average Response Time**: The mean response time across all requests. 33 | 34 | ### Running and Post-Run Actions 35 | 36 | - **Stop**: Stop the current run at any time. 37 | - **Run Again**: When a run completes, you can restart with the same configurations as needed. 38 | - **New Run**: Stop the current run and restart with new settings. 39 | 40 | ## Runner Results 41 | 42 | The results view provides a comprehensive summary of your collection run, including: 43 | 44 | - **Request Status**: Success or failure of each request, along with HTTP status codes. 45 | - **Tests**: Detailed views of tests that passed or failed. 46 | - **Persisted Responses**: If enabled, view headers and bodies by selecting each request; otherwise, this section remains hidden. -------------------------------------------------------------------------------- /documentation/features/pat.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: Personal Access Token 3 | title: Personal Access Token 4 | description: Securely connect your Hoppscotch account with other services within Hoppscotch ecosystem. 5 | --- 6 | 7 | A Personal Access Token (PAT) in Hoppscotch acts as a secure authentication method, 8 | allowing you to smoothly link your Hoppscotch API client, on Hoppscotch cloud or self-host, with the Hoppscotch CLI. 9 | 10 | ## Generating Personal Access Token 11 | 12 | Follow these steps to create a new token, manage its settings. Personal access tokens cannot be used to access data in your personal workspace. 13 | 14 | 1. Login into the Hoppscotch API client using your credentials. 15 | 16 | 2. Once logged in, navigate to your profile settings by clicking on your profile icon, located in the top right corner of the screen. 17 | 18 | 3. In the profile settings menu, locate and click on `Personal Access Tokens`. 19 | 20 | 4. Within the Personal Access Tokens section, find the option to "Generate New Token" and click on it. 21 | 22 | 5. Provide a brief description under **Label** to remind yourself of the token's purpose and select an expiration date for the token. Options typically include 7 days, 30 days, 60 days, 90 days, or set it to never expire. 23 | 24 | Once a Personal Access Token (PAT) is generated with **read-only access** permissions, it cannot be modified. Please review the token settings carefully before generating it to ensure it meets your access requirements. 25 | 26 | 6. After generating the token, it will be securely displayed. Use the **copy icon** to copy the token to your clipboard for immediate use. 27 | 28 | 7. If you decide that you no longer need the token, you can delete it by navigating back to your profile page. 29 | 30 | Remember, deleted tokens cannot be recovered. 31 | 32 | 8. Once you've copied or saved your PAT, you can use it to authenticate API requests across different Hoppscotch services. 33 | 34 | ## Enterprise Token Management 35 | 36 | In Self-Hosted Enterprise settings, users with Admin privileges have additional capabilities for managing Personal Access Tokens (PATs). 37 | 1. Admin can **oversee and manage** tokens generated by all users within the enterprise environment. 38 | 2. An Admin also possesses the **authority to delete** tokens under their purview. This capability ensures compliance with security protocols and allows for the removal of tokens that are no longer necessary or have expired. -------------------------------------------------------------------------------- /documentation/features/widgets.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: Widgets 3 | title: Widgets 4 | description: Embed Hoppscotch in your website. 5 | --- 6 | 7 | Widgets are small, interactive components that can be embedded in HTML pages to provide a seamless experience for your audience. Hoppscotch offers three types of widgets: links, buttons, and embeds. 8 | 9 | ## Links 10 | 11 | Links are the most basic type of widget. They are simply a URL that can be shared with others. You can generate links to your requests in three different formats: raw, HTML, and Markdown. 12 | 13 | ## Buttons 14 | 15 | Buttons are a more advanced type of widget. They are a link that can be embedded in HTML or Markdown files. You can customize the button's appearance and behavior to suit your needs. You can also generate buttons in two different formats: HTML and Markdown. 16 | 17 | ## Embeds 18 | 19 | Embeds are the most advanced type of widget. They are a mini version of Hoppscotch that can be embedded in an HTML page, enabling your audience to interact seamlessly with your API request. You can customize the embed's appearance and behavior to suit your needs. 20 | 21 | ## Shared requests 22 | 23 | Sharing a request does not provide others with access to your request. Instead, it generates a link that can be shared with others. It's important to note that if a shared request contains any environment variables, proper functionality may be compromised unless the recipient has access to the same environment variables. Therefore, it is advisable to share requests that do not contain environment variables or replace any environment variables with their corresponding values before sharing. 24 | 25 | ### Create a shared request: 26 | 27 | #### Sharing a request in a collection: 28 | 29 | 1. Right-click on a saved request within a collection and select "**Share Request**". 30 | 2. Choose between link, button, and embed widgets. 31 | 3. Click on the "**Create**" button. 32 | 4. Copy the share link. 33 | 34 | #### Sharing a request in workspace: 35 | 36 | 1. Click on the "**Share request**" button in drop-down menu next to the "**Save**" button. 37 | 2. Choose between link, button, and embed widgets. 38 | 3. Click on the "**Create**" button. 39 | 4. Copy the share link. 40 | 41 | ### View your shared requests: 42 | 43 | 1. Click on the "**Shared Requests**" button in the sidebar. 44 | 2. You will see a list of all your shared requests. 45 | 3. Click on the request to open it in a new tab. 46 | 4. You can also customize the widget, copy the link, or delete the shared request by right-clicking on it or 3-dot menu. 47 | -------------------------------------------------------------------------------- /documentation/getting-started/quick-start.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: Quick start 3 | title: Quick start 4 | description: Get started with Hoppscotch. 5 | --- 6 | 7 | ## Platforms 8 | 9 | ### Hoppscotch Cloud 10 | 11 | Hoppscotch Cloud is our hosted API development and testing platform that allows you to share your APIs with your team with ease. No need to worry about hosting, scaling, and maintenance. Hoppscotch Cloud is built for individuals and teams. 12 | 13 | [Get started for free on Hoppscotch Cloud](https://hoppscotch.io) 14 | 15 | ### Hoppscotch Self-Host 16 | 17 | For full data ownership and control over your API development and testing, you can self-host Hoppscotch on your infrastructure. 18 | 19 | 20 | 21 | Hoppscotch Community Edition is free and open-source. It is licensed under the MIT License. You can use it for personal and commercial projects. It is a great choice for individuals and small teams. 22 | 23 | 24 | SAML-based SSO, on-prem deployment, audit logs, and more. Hoppscotch Enterprise Edition is a self-hosted version of Hoppscotch Cloud with enterprise-ready features for teams and organizations. 25 | 26 | 27 | 28 | Hoppscotch Enterprise Edition is available for on-premise deployment with priority support. [Contact Hoppscotch Support](/support/getting-started/contact) 29 | 30 | --- 31 | 32 | ## Solutions 33 | 34 | ### Hoppscotch Web App 35 | 36 | The easiest way to get started with Hoppscotch is with our hosted cloud plan. Get unlimited collections with no limits and all of our features are built for individuals and teams. 37 | 38 | [Open Hoppscotch Web App](https://hoppscotch.io) 39 | 40 | ### Hoppscotch Desktop App 41 | 42 | Hoppscotch Desktop App is a cross-platform desktop application built with Tauri and Hoppscotch Web Client. It is a standalone version of Hoppscotch that can be installed on your computer and used without a browser. Hoppscotch Desktop App is available for Mac, Windows and Linux. 43 | 44 | [Download Hoppscotch Desktop App](https://hoppscotch.com/download) 45 | 46 | ### Hoppscotch CLI 47 | 48 | Hoppscotch CLI is a command-line tool that allows you to run Hoppscotch on your terminal and CI/CD pipelines. 49 | 50 | [Install Hoppscotch CLI](/documentation/clients/cli/overview) 51 | -------------------------------------------------------------------------------- /documentation/features/shortcuts.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: Shortcuts 3 | title: Shortcuts 4 | description: Keyboard shortcuts for Hoppscotch. 5 | --- 6 | 7 | You can improve your workflow by efficiently performing actions straight from your keyboard. 8 | 9 | Bring up the shortcuts sidebar on Hoppscotch using `Ctrl/Cmd` + `/`. 10 | 11 | ## General shortcuts 12 | 13 | | Shortcut | Action | 14 | | ---------------- | --------------------- | 15 | | `?` | Help menu | 16 | | `K` | Search & command menu | 17 | | `Ctrl/Cmd` + `/` | Keyboard Shortcuts | 18 | | `esc` | Close current menu | 19 | 20 | ## Request shortcuts 21 | 22 | | Shortcut | Action | 23 | | -------------------- | ------------------------------------- | 24 | | `Ctrl/Cmd` + `enter` | Send request | 25 | | `Ctrl/Cmd` + `S` | Save to collections | 26 | | `Ctrl/Cmd` + `U` | Generate and copy request link | 27 | | `Ctrl/Cmd` + `I` | Reset Request to `echo.hoppscotch.io` | 28 | | `Alt/Option` + `↑` | Select Next method | 29 | | `Alt/Option` + `↓` | Select Previous method | 30 | | `Alt/Option` + `G` | Select GET method | 31 | | `Alt/Option` + `H` | Select HEAD method | 32 | | `Alt/Option` + `P` | Select POST method | 33 | | `Alt/Option` + `U` | Select PUT method | 34 | | `Alt/Option` + `X` | Select DELETE method | 35 | 36 | ## Response shortcuts 37 | 38 | | Shortcut | Action | 39 | | ---------------- | --------------------------- | 40 | | `Ctrl/Cmd` + `J` | Download response as a file | 41 | | `Ctrl/Cmd` + `.` | Copy response to clipboard | 42 | 43 | ## Navigation shortcuts 44 | 45 | | Shortcut | Action | 46 | | ------------------ | ------------------------ | 47 | | `Ctrl/Cmd` + `←` | Go back to previous page | 48 | | `Ctrl/Cmd` + `→` | Go forward to next page | 49 | | `Alt/Option` + `R` | Go to REST page | 50 | | `Alt/Option` + `Q` | Go to GraphQL page | 51 | | `Alt/Option` + `W` | Go to Realtime page | 52 | | `Alt/Option` + `S` | Go to Settings page | 53 | | `Alt/Option` + `M` | Go to Profile page | 54 | 55 | ## Miscellaneous shortcuts 56 | 57 | | Shortcut | Action | 58 | | ---------------- | --------------------------- | 59 | | `Ctrl/Cmd` + `M` | Invite people to Hoppscotch | 60 | -------------------------------------------------------------------------------- /documentation/getting-started/rest/request-headers.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: Request headers 3 | title: Request headers 4 | description: Request Headers allow you to pass additional information with requests, helping to control how the server responds. 5 | --- 6 | 7 | Request Headers are key-value pairs that the client sends to the server with an HTTP request. These headers carry extra details about your request, helping the server understand its context and tailor the response to fit. 8 | 9 | ## Headers Tab 10 | 11 | In Hoppscotch, you can easily set and manage request headers using the **Headers tab**. This tab allows you to define **`key-value`** pairs, and you can also add a **`description`** for each header to keep track of its purpose. 12 | 13 | Here are a few common headers you might set: 14 | 15 | | **Header** | **Description** | 16 | | ----------------- | ----------------------------------------------------------------------------------------- | 17 | | **Authorization** | Used for passing credentials, such as tokens, to authenticate the client with the server. | 18 | | **Content-Type** | Indicates the format of the data being sent, like `application/json`. | 19 | | **Accept** | Tells the server what media types the client can handle in the response. | 20 | | **Cache-Control** | Controls caching behavior in both requests and responses. | 21 | | **User-Agent** | Provides information about the client making the request. | 22 | 23 | When the **Authorization and Content-Type** values are set through their respective sections, the description fields in their auto-generated headers are disabled for manual input, leaving the value empty. In contrast, for **Inherited** headers, the specified values are automatically populated in the description fields. 24 | 25 | Hoppscotch offers a variety of header options beyond these five examples, allowing you to customize how the server processes your requests to meet specific requirements. 26 | 27 | ### Bulk edit request headers 28 | 29 | Using the **Bulk edit** feature in Hoppscotch's request headers tab, you can input and manage multiple headers simultaneously, with each header on a new line and the key and value separated by a **colon (:)**. For example, 30 | 31 | ```yaml 32 | Authorization: Bearer token123 33 | Content-Type: application/json 34 | # User-Agent: CustomAgent/1.0 35 | ``` 36 | 37 | -------------------------------------------------------------------------------- /documentation/getting-started/graphql/creating-a-query.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: Running a simple query 3 | title: Running a simple query 4 | description: Learn how to run a simple query using Hoppscotch. 5 | --- 6 | 7 | ## Connecting to a GraphQL server 8 | 9 | Switch to the GraphQL platform on Hoppscotch and connect to the below GraphQL server. 10 | 11 | ``` 12 | https://echo.hoppscotch.io/graphql 13 | ``` 14 | 15 | Once a successful connection has been made, you can view both **documentation** and the **schema** using Hoppscotch. 16 | 17 | It is important to explore the schema to understand the different **queries, mutations, types, and subscriptions** that are offered by the endpoint. 18 | 19 | ## Running the query 20 | 21 | You can execute queries to retrieve data from the GraphQL server by following these steps: 22 | 23 | - Open the **Documentation** panel to explore the available queries for the endpoint. 24 | - Click on `query` under **Root Types** to view the listed query fields. 25 | - Click the **"+"** button next to a query field to add it to the Query editor with a structured template. 26 | - Expand the query by clicking on it, then use the **"+"** button to add specific fields, arguments, or filters. 27 | - Customize the query as needed by modifying fields, adding arguments, or setting variables directly in the Query editor. 28 | 29 | ## Fetching Countries Data 30 | 31 | Let's explore a sample query using the Countries GraphQL API. 32 | 33 | 1. Open Hoppscotch, switch to the [GraphQL client](https://hoppscotch.io/graphql) and connect to the endpoint below: 34 | 35 | ``` 36 | https://countries.trevorblades.com/graphql 37 | ``` 38 | 39 | 2. Explore the schema and documentation to understand more about the endpoint. 40 | 3. Select the `countries` query, cherry-pick the fields, and add a filter to return results where the `name` field is equal to **"Germany"**. 41 | 42 | ```graphql 43 | { 44 | countries (filter: {name: {eq: "Germany"}}) { 45 | name 46 | code 47 | capital 48 | emoji 49 | currencies 50 | } 51 | } 52 | ``` 53 | 54 | 4. Click on the run button to execute the query. 55 | 5. The query will return the following response. 56 | 57 | ```json 58 | { 59 | "data": { 60 | "countries": [ 61 | { 62 | "name": "Germany", 63 | "code": "DE", 64 | "capital": "Berlin", 65 | "emoji": "🇩🇪", 66 | "currencies": [ 67 | "EUR" 68 | ] 69 | } 70 | ] 71 | } 72 | } 73 | ``` -------------------------------------------------------------------------------- /documentation/i18n.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: i18n 3 | title: i18n 4 | description: Internationalization and localization. 5 | --- 6 | 7 | Thanks for showing your interest in helping us to translate the software. 8 | 9 | ## Creating a new translation 10 | 11 | Before you start working on a new language, please look through the [open pull requests](https://github.com/hoppscotch/hoppscotch/pulls) to see if anyone is already working on a translation. If you find one, please join the discussion and help us keep the existing translations up to date. 12 | 13 | if there is no existing translation, you can create a new one by following these steps: 14 | 15 | 1. **[Fork the repository](https://github.com/hoppscotch/hoppscotch/fork).** 16 | 2. **Checkout the `main` branch for latest translations.** 17 | 3. **Create a new branch for your translation with base branch `main`.** 18 | 4. **Create target language file in the [`/packages/hoppscotch-common/locales`](https://github.com/hoppscotch/hoppscotch/tree/main/packages/hoppscotch-common/locales) directory.** 19 | 5. **Copy the contents of the source file [`/packages/hoppscotch-common/locales/en.json`](https://github.com/hoppscotch/hoppscotch/blob/main/packages/hoppscotch-common/locales/en.json) to the target language file.** 20 | 6. **Translate the strings in the target language file.** 21 | 7. **Add your language entry to [`/packages/hoppscotch-common/languages.json`](https://github.com/hoppscotch/hoppscotch/blob/main/packages/hoppscotch-common/languages.json).** 22 | 8. **Save and commit changes.** 23 | 9. **Send a pull request.** 24 | 25 | _You may send a pull request before all steps above are complete: e.g., you may want to ask for help with translations, or getting tests to pass. However, your pull request will not be merged until all steps above are complete._ 26 | 27 | Completing an initial translation of the whole site is a fairly large task. One way to break that task up is to work with other translators through pull requests on your fork. You can also [add collaborators to your fork](https://help.github.com/en/github/setting-up-and-managing-your-github-user-account/inviting-collaborators-to-a-personal-repository) if you'd like to invite other translators to commit directly to your fork and share responsibility for merging pull requests. 28 | 29 | ## Updating a translation 30 | 31 | ### Corrections 32 | 33 | If you notice spelling or grammar errors, typos, or opportunities for better phrasing, open a pull request with your suggested fix. If you see a problem that you aren't sure of or don't have time to fix, [open an issue](https://github.com/hoppscotch/hoppscotch/issues/new/choose). 34 | 35 | ### Broken links 36 | 37 | When tests find broken links, try to fix them across all translations. Ideally, only update the linked URLs, so that translation changes will definitely not be necessary. 38 | -------------------------------------------------------------------------------- /documentation/getting-started/rest/uploading-data.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: Uploading data 3 | title: Uploading data 4 | description: Learn how to upload data to an API using Hoppscotch. 5 | --- 6 | 7 | APIs can also be used to upload encoded content to a server. This is usually done with `PUT` or `POST` methods. 8 | 9 | The most common content types are: 10 | 11 | - `application/json`: for content in JSON format 12 | - `multipart/form-data`: for uploading encoded files 13 | - `application/octet-stream`: for uploading binary data directly 14 | 15 | ## Uploading a file 16 | 17 | To upload a file, the data you send in a `POST` request must be of the content types `application/x-www-form-encoded` and `multipart/form-data`. 18 | 19 | ## Uploading an image 20 | 21 | Let's take a look at **uploading an image** file to an API using Hoppscotch: 22 | 23 | 1. Select the `POST` HTTP method and set your API Endpoint URL. 24 | 2. Add the necessary headers. 25 | 3. To add your image file click in the body tab and select `multipart/form-data` in the content-type dropdown. 26 | 4. Give your file a name and click on `choose files` to select your file. 27 | 5. Click "**Send**" to upload your file. 28 | 29 | The **Bulk Edit** feature is available for `multipart/form-data` as well. Instead of adding or editing key-value pairs one by one, you can now manage them all at once. 30 | 31 | ### Set Content Type for Specific Parameters in `multipart/form-data` 32 | 33 | When sending multiple types of data in a single request using `multipart/form-data`, you can assign a specific content type to each parameter in Hoppscotch. Here's how: 34 | 35 | 1. Go to the **Body** tab and select `multipart/form-data` from the **Content Type** dropdown. 36 | 2. Add the required data for your request by uploading files or entering values. 37 | 3. To specify content types for parameters, enable the **"Show Content Type"** option. Then, choose the appropriate content type for each parameter (e.g., `text/plain` for plain text, `image/png` for a PNG image or `application/json` for JSON data). 38 | 4. Click **Send** to submit the multipart data, with each parameter using its specified content type. 39 | 40 | ## Uploading Binary Data 41 | 42 | When uploading binary files, you may want to send raw binary data instead of files in a multipart form. This is typically done using the `application/octet-stream` content type. Follow these steps to upload binary data: 43 | 44 | 1. Select the **POST** or **PUT** HTTP method and set your API Endpoint URL. 45 | 2. In the **Body** tab, select `application/octet-stream` from the **Content Type** dropdown. 46 | 3. Upload your binary data by selecting the file from your local machine. 47 | 4. Click **Send** to upload the binary data. 48 | 49 | Currently, the **Hoppscotch Desktop App** does **NOT** support uploading **Binary files** directly as request bodies for APIs. -------------------------------------------------------------------------------- /documentation/self-host/enterprise-edition/user-groups.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: User groups 3 | title: User groups 4 | description: User groups allow admins to manage user permissions and roles in a shared workspace, providing a structured way to control access and actions within the workspace. 5 | --- 6 | 7 | User groups are a powerful feature that enables admins to manage user permissions and roles within a shared workspace. This structured approach allows for efficient control over access and actions, ensuring that users can only perform tasks relevant to their roles. 8 | 9 | ## Creating a User Group 10 | 11 | 1. Navigate to the **Admin Dashboard**. 12 | 2. Click on the **User** page > **User Groups** tab. 13 | 3. Click on the **Create Group** button. 14 | 4. Enter a **name** for the group. 15 | 5. Optionally, add a **description** to clarify the group's purpose. 16 | 6. Click on the **Create** button to finalize the group creation. 17 | 18 | ## Adding Users to a Group 19 | 20 | 1. In the **User Groups** tab, select the group you want to add users to. 21 | 2. Click on the **Add Users** button. 22 | 3. In the pop-up window, search for and select the users you want to add. 23 | 4. Click on the **Add** button to confirm your selection. 24 | 25 | ## Group Permissions 26 | 27 | User groups can have different permissions based on their roles. Common permissions include: 28 | 29 | - **Viewer**: Can view workspace data but cannot make changes. 30 | - **Editor**: Can view and edit workspace data, but cannot manage user permissions. 31 | - **Owner**: Has full control over the workspace, including managing users and permissions. 32 | 33 | When creating or editing a group, admins can assign these roles to users within the group to ensure they have the appropriate level of access. 34 | 35 | ## Managing User Groups 36 | 37 | User groups can be managed by admins to ensure that the right users have the appropriate permissions. This includes: 38 | 39 | - **Editing Group Details**: Admins can modify the group's name and description by selecting the group and clicking on the **Edit** button. 40 | - **Removing Users**: To remove users from a group, select the group, click on the **Manage Users** button, and then remove users as needed. 41 | - **Deleting Groups**: If a group is no longer needed, admins can delete it by selecting the group and clicking on the **Delete Group** button. 42 | 43 | ## Best Practices 44 | 45 | - **Define Clear Roles**: Establish clear roles and responsibilities for each user group to avoid confusion and ensure accountability. 46 | - **Regularly Review Groups**: Periodically review user groups to ensure they still align with the organization's needs and that users have the appropriate permissions. 47 | - **Use Descriptions**: Utilize the description field to provide context for each group, making it easier for admins to understand the purpose of each group at a glance. 48 | - **Limit Group Size**: Keep user groups manageable in size to facilitate easier management and communication. 49 | -------------------------------------------------------------------------------- /documentation/self-host/community-edition/deploy-and-upgrade.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: Deploy and upgrade 3 | title: Deploy and upgrade 4 | description: Deploy and upgrade Hoppscotch Community Edition on your infrastructure. 5 | --- 6 | 7 | This section contains instructions for deploying and upgrading Hoppscotch Community Edition. 8 | 9 | ## Deploy 10 | 11 | Deploy Hoppscotch Community Edition on your infrastructure. 12 | 13 | Instructions for deploying Hoppscotch on your infrastructure are coming soon. 14 | 15 | ## Upgrade 16 | 17 | Upgrading Hoppscotch Community Edition is a simple process. Follow the instructions below to upgrade your Hoppscotch Community Edition instance. 18 | 19 | ### Using individual containers for the services 20 | 21 | 1. Check if there is a new version available by running the following command: 22 | 23 | ```bash 24 | docker images 25 | ``` 26 | 27 | 2. Update the image to the latest version by running the following command: 28 | 29 | ```bash 30 | docker pull hoppscotch/hoppscotch-frontend:latest 31 | docker pull hoppscotch/hoppscotch-backend:latest 32 | docker pull hoppscotch/hoppscotch-admin:latest 33 | ``` 34 | 35 | If you want to update to a specific version, run the following command: 36 | 37 | ```bash 38 | docker pull hoppscotch/hoppscotch-frontend: 39 | docker pull hoppscotch/hoppscotch-backend: 40 | docker pull hoppscotch/hoppscotch-admin: 41 | ``` 42 | 43 | 3. Start the new container by following the instructions in the [Install and build](/documentation/self-host/community-edition/install-and-build#docker) section. 44 | 45 | For minor version upgrades, you might not need to run the database migrations. However, for major version upgrades, you will need to run the database migrations. Refer to the [Database migrations](/documentation/self-host/community-edition/install-and-build#migrations) section for more information. 46 | 47 | ### Using the AIO container 48 | 49 | 1. Check if there is a new version available by running the following command: 50 | 51 | ```bash 52 | docker images 53 | ``` 54 | 55 | 2. Update the image to the latest version by running the following command: 56 | 57 | ```bash 58 | docker pull hoppscotch/hoppscotch:latest 59 | ``` 60 | 61 | If you want to update to a specific version, run the following command: 62 | 63 | ```bash 64 | docker pull hoppscotch/hoppscotch: 65 | ``` 66 | 67 | 3. Start the new container by following the instructions in the [Install and build](/documentation/self-host/community-edition/install-and-build#docker) section. 68 | 69 | For minor version upgrades, you might not need to run the database migrations. However, for major version upgrades, you will need to run the database migrations. Refer to the [Database migrations](/documentation/self-host/community-edition/install-and-build#migrations) section for more information. 70 | -------------------------------------------------------------------------------- /documentation/features/ai-features.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: AI Features 3 | title: AI Features 4 | description: Optimize API Development and Testing Workflows with Hoppscotch using AI. 5 | --- 6 | 7 | Experimental 18 | 19 | Hoppscotch now offers a set of AI-powered features designed to simplify core stages of the API development lifecycle. These include renaming of API requests, generation of structured request payloads, and scripting capabilities for pre-request logic and test cases. 20 | 21 | These AI features are currently in the `alpha` stage and are exclusively available on [Hoppscotch Cloud](https://hoppscotch.io) and our [Desktop app](https://hoppscotch.com/download). They are **NOT** supported in the Self-Hosted Edition at this time. 22 | 23 | ### Enable AI-powered features 24 | 25 | To activate AI-powered features, follow these steps: 26 | 27 | 1. Open the **Settings** page within the Hoppscotch application. 28 | 2. Scroll to the **Experiments** section. 29 | 3. Toggle the **AI Experiments** option to enable the features. 30 | 31 | ### Rename API Requests 32 | 33 | When saving an API request to a collection, click the **Modify with AI** icon **( .⟡⁺ )** next to the request name field to have the system automatically assign a name based on the request's context and properties. Alternatively, you can use this feature to rename the pre-saved requests. 34 | 35 | You can even customize the naming convention (e.g., CamelCase, PascalCase) through the **Request Naming Style** dropdown located in the **Experiments** section of the **Settings** page. 36 | 37 | ### Generate Request Body 38 | 39 | Dynamically generate structured request payloads: 40 | 41 | 1. Click the **Modify with AI** icon **( .⟡⁺ )** in the **Request Body** section. 42 | 2. Define constraints or provide input for the desired structure. 43 | 3. Validate the generated body and select **Accept Change** to populate the request body field. 44 | 45 | ### Generate Pre-request Scripts 46 | 47 | Generate pre-request scripts to handle necessary setup operations before sending the request: 48 | 49 | 1. Click the **Modify with AI** icon **( .⟡⁺ )** within the **Pre-request Script** section. 50 | 2. Enter specific logic or conditions required for the pre-request phase. 51 | 3. After reviewing the generated script, click **Accept Change** to apply it to the pre-request script section of your API request. 52 | 53 | ### Generate Test Scripts 54 | 55 | Develop test cases for your API workflow: 56 | 57 | 1. Click the **Modify with AI** icon **( .⟡⁺ )** in the **Tests** section. 58 | 2. Specify the test parameters or expected outcomes. 59 | 3. Select **Accept Change** to integrate it into the test script editor for execution. -------------------------------------------------------------------------------- /documentation/self-host/enterprise-edition/deploy-and-upgrade.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: Deploy and upgrade 3 | title: Deploy and upgrade 4 | description: Deploy and upgrade Hoppscotch Enterprise Edition on your infrastructure. 5 | --- 6 | 7 | This section contains instructions for deploying and upgrading Hoppscotch Enterprise Edition. 8 | 9 | ## Deploy 10 | 11 | Deploy Hoppscotch Enterprise Edition on your infrastructure. 12 | 13 | - Instructions for deploying Hoppscotch on your infrastructure are coming soon. 14 | 15 | ## Upgrade 16 | 17 | Upgrading Hoppscotch Enterprise Edition is a simple process. Follow the instructions below to upgrade your Hoppscotch Enterprise Edition instance. 18 | 19 | ### Using individual containers for the services 20 | 21 | 1. Check if there is a new version available by running the following command: 22 | 23 | ```bash 24 | docker images 25 | ``` 26 | 27 | 2. Update the image to the latest version by running the following command: 28 | 29 | ```bash 30 | docker pull hoppscotch/hoppscotch-enterprise-frontend:latest 31 | docker pull hoppscotch/hoppscotch-enterprise-backend:latest 32 | docker pull hoppscotch/hoppscotch-enterprise-admin:latest 33 | ``` 34 | 35 | If you want to update to a specific version, run the following command: 36 | 37 | ```bash 38 | docker pull hoppscotch/hoppscotch-enterprise-frontend: 39 | docker pull hoppscotch/hoppscotch-enterprise-backend: 40 | docker pull hoppscotch/hoppscotch-enterprise-admin: 41 | ``` 42 | 43 | 3. Start the new container by following the instructions in the [Install and build](/documentation/self-host/enterprise-edition/install-and-build#docker) section. 44 | 45 | For minor version upgrades, you might not need to run the database migrations. However, for major version upgrades, you will need to run the database migrations. Refer to the [Database migrations](/documentation/self-host/enterprise-edition/install-and-build#migrations) section for more information. 46 | 47 | ### Using the AIO container 48 | 49 | 1. Check if there is a new version available by running the following command: 50 | 51 | ```bash 52 | docker images 53 | ``` 54 | 55 | 2. Update the image to the latest version by running the following command: 56 | 57 | ```bash 58 | docker pull hoppscotch/hoppscotch-enterprise:latest 59 | ``` 60 | 61 | If you want to update to a specific version, run the following command: 62 | 63 | ```bash 64 | docker pull hoppscotch/hoppscotch-enterprise: 65 | ``` 66 | 67 | 3. Start the new container by following the instructions in the [Install and build](/documentation/self-host/enterprise-edition/install-and-build#docker) section. 68 | 69 | For minor version upgrades, you might not need to run the database migrations. However, for major version upgrades, you will need to run the database migrations. Refer to the [Database migrations](/documentation/self-host/enterprise-edition/install-and-build#migrations) section for more information. 70 | -------------------------------------------------------------------------------- /documentation/clients/cli/troubleshooting.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: Troubleshooting 3 | title: Hoppscotch CLI Troubleshooting 4 | description: Troubleshoot the CLI errors by understanding their meanings and possible causes. 5 | --- 6 | 7 | Below is a set of error codes and the corresponding messages that will be displayed in the CLI under various scenarios associated with workspace access. Understanding the reasons behind these errors will help you troubleshoot them on your end. 8 | ## `TOKEN_EXPIRED` 9 | 10 | > **The specified access token is expired. Please provide a valid token.** 11 | 12 | **Reason:** The supplied access token via the `--token` flag has been expired. 13 | 14 | ```bash 15 | hopp test [-e ] [--token ] [--server ] 16 | ``` 17 | 18 | ## `TOKEN_INVALID` 19 | 20 | > **The specified access token is invalid. Please provide a valid token.** 21 | 22 | **Reason:** The specified access token via the `--token` flag is invalid or might have been deleted. 23 | 24 | ```bash 25 | hopp test [-e ] [--token ] [--server ] 26 | ``` 27 | 28 | ## `INVALID_ID` 29 | 30 | > **The specified collection/environment (ID or file path) is invalid or inaccessible. Please ensure the supplied ID or file path is correct.** 31 | 32 | ### Case I 33 | 34 | **Reason:** Either an invalid ID is supplied or the resource is inaccessible to the user because the user isn't part of the team to which the resource belongs. 35 | 36 | ```bash 37 | hopp test [-e ] [--token ] [--server ] 38 | ``` 39 | 40 | ### Case II 41 | 42 | **Reason:** Supplied file path of the collection or environment doesn't exist. 43 | 44 | ```bash 45 | hopp test [-e ] 46 | ``` 47 | 48 | ## `INVALID_SERVER_URL` 49 | 50 | > **Please provide a valid SH instance server URL.** 51 | 52 | **Reason:** There are multiple cases in which this error can occur: 53 | - If the supplied server URL doesn't have a valid path under `/v1/access-tokens/{collection/environment}/{path/id}`, resulting in a `404` network call error. 54 | - If the received content type from the response is not `application/json`, safeguarding against cases where the network call doesn't fail, such as when the route is invalid as above, and checking against the content type (e.g., supplying the FE instance URL). 55 | - The supplied server URL doesn't conform to URL semantics (received `ERR_INVALID_URL` as the error code from the network call). For instance, missing a protocol (e.g., `http://` or `https://`), having an invalid structure, or containing illegal characters. 56 | - Couldn't find the server because the domain name couldn't be resolved (received `ENOTFOUND` as the error code from the network call). For instance, a typo in the domain name. 57 | 58 | ```bash 59 | hopp test [-e ] [--token ] [--server ] 60 | ``` 61 | 62 | ## `SERVER_CONNECTION_REFUSED` 63 | > **Unable to connect to the server. Please check your network connection or server instance URL and try again.** 64 | 65 | **Reason:** Found the server, but the server refused to connect (received `ECONNREFUSED` as the error code from the network call). 66 | 67 | ```bash 68 | hopp test [-e ] [--token ] [--server ] 69 | ``` -------------------------------------------------------------------------------- /documentation/features/collections.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: Collections 3 | title: Collections 4 | description: Save, organize, and share your API requests with collections. 5 | --- 6 | 7 | Hoppscotch helps you to organize your API requests with collections. You can create collections and add requests to them to share with your team or to use later. You can also import and export collections from Hoppscotch, OpenAPI, and Postman. 8 | 9 | You can access the collections by clicking the "**Collections**" icon on the side panel. 10 | 11 | ## Creating a new collection 12 | 13 | To create a new collection, click on the "**Add new**" button on the collections section and enter the name of the collection. You can also create a sub-collection by clicking on the "**Add new**" button on the desired collection and entering the name of the sub-collection. 14 | 15 | ## Save requests to collections 16 | 17 | To add a new request to your collection, you can click on the "**Save**" button on the request page and select the collection you want to add it to. Click on the drop-down menu next to the save button and click on "**Save as**" to save the request to a new location. 18 | 19 | You can also use the keyboard shortcut `Ctrl/Cmd` + `S` to save the request to a collection. 20 | 21 | ## Organizing collections 22 | 23 | You can organize your collections by dragging and dropping them to the desired location. You can also create sub-collections by dragging and dropping a collection into another collection. 24 | 25 | ### Editing collections 26 | 27 | To edit a collection, click on the "**Edit**" button on the collection's options. 28 | 29 | ### Adding requests to collections 30 | 31 | To add a request to a collection, click on the "**New request**" button on the collection's options to save the current request to the collection. 32 | 33 | ## Duplicating collections 34 | 35 | To duplicate a collection, click on the **"Duplicate"** button on the collection's options. 36 | 37 | ## Deleting collections 38 | 39 | To delete a collection, click on the "**Delete**" button on the collection's options. 40 | 41 | ## Importing and exporting collections 42 | 43 | You can import and export collections from Hoppscotch, OpenAPI, and Postman. 44 | 45 | ### Importing collections 46 | 47 | To import a collection, click on the "**Import**" button in the collections section and select the collection type you want to import. 48 | 49 | ### Exporting collections 50 | 51 | To export a collection, click on the "**Export**" button on the collection's options and select the collection type you want to export. 52 | 53 | ## Collection Properties 54 | 55 | Collection properties enable you to define settings that universally apply to all requests within the collection. 56 | 57 | At the collection level, you can configure: 58 | 59 | - Authorization 60 | - Headers 61 | - Variables 62 | 63 | Subfolders and individual requests within the collection inherit these properties by default and can override them when needed. 64 | 65 | To set collection properties: 66 | 67 | 1. Right-click on a collection or a subfolder within a collection to open its properties. 68 | 2. Specify the authorization, headers, and variables that all nested requests or folders should adhere to. 69 | 3. If a subfolder should inherit the properties of a parent collection, specify the authorization as "inherit" and leave headers unchanged. Variables inherit automatically—override by redefining the same variable in the child. 70 | -------------------------------------------------------------------------------- /documentation/getting-started/rest/pre-request-scripts.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: Pre-request scripts 3 | title: Pre-request scripts 4 | description: Learn how to use pre-request scripts in Hoppscotch. 5 | --- 6 | 7 | ## Scripts 8 | 9 | Hoppscotch lets you add dynamic behavior to REST API requests. This allows you to write test suites and build requests that can contain dynamic parameters. You can add [ECMAScript](https://tc39.es/ecma262) code that executes based on events in the flow: 10 | 11 | - Pre-request scripts are executed before a request is sent to the server. 12 | - You can add multiple pre-request scripts to a request. 13 | - You can add pre-request scripts to both requests saved and not saved in a collection. 14 | 15 | Hoppscotch will then execute the scripts along with the requests in the specified order. 16 | 17 | ## Pre-request script 18 | 19 | Pre-request script is a piece of code that will run before the execution of the request. 20 | 21 | You can use the pre-request script for a pre-processing task such as: 22 | 23 | - Setting parameters, headers. 24 | - Adding body data. 25 | - Adding variable values. 26 | - Including timestamps in request headers. 27 | 28 | ## Writing pre-request scripts 29 | 30 | Hoppscotch provides a special `pw` object containing various methods to create scripts and tests. The `pw` object is global and can be referenced by name to access methods. 31 | 32 | For example, to set an environment variable, you can use the `pw.env.set()` method. 33 | 34 | ```javascript 35 | pw.env.set("variable", "value"); 36 | ``` 37 | 38 | ## Examples 39 | 40 | Let us look at some examples of how you can use Hoppscotch to write pre-request scripts. 41 | 42 | ### Setting environment variables 43 | 44 | `pw.env.set()` can be used directly for quick and convenient environment variable definition. It can be used to better organize request codes. 45 | 46 | ```javascript 47 | pw.env.set("baseURL", "https://httpbin.org"); 48 | pw.env.set("method", "get"); 49 | ``` 50 | 51 | Goto the pre-request script tab and copy-paste the above [ECMAScript](https://tc39.es/ecma262) code as shown below: 52 | 53 | These variables can be accessed in the request section by referencing them in double angle brackets `<>`. So the URL will be `<>/<>`. 54 | 55 | ### Generating random Values to test API 56 | 57 | Let us take a case where we need to test random test-user data available at an endpoint. 58 | 59 | Let us use the following GET API endpoint `https://reqres.in/api/users/`. 60 | 61 | Add `<>` to the endpoint URL. 62 | 63 | ``` 64 | https://reqres.in/api/users/<> 65 | ``` 66 | 67 | Now in the pre-request script tab add the following logic. 68 | 69 | ```javascript 70 | var random = Math.floor(Math.random() * 10); 71 | pw.env.set("randomValue", random.toString()); 72 | ``` 73 | 74 | The [ECMAScript](https://tc39.es/ecma262) code will assign a random number to the environment variable `randomValue` and the API will return a random user associated with the random value. 75 | 76 | You will get a similar response as shown below: 77 | 78 | ```json 79 | { 80 | "data": { 81 | "id": 4, 82 | "email": "eve.holt@reqres.in", 83 | "first_name": "Eve", 84 | "last_name": "Holt", 85 | "avatar": "https://reqres.in/img/faces/4-image.jpg" 86 | }, 87 | "support": { 88 | "url": "https://reqres.in/#support-heading", 89 | "text": "To keep ReqRes free, contributions towards server costs are appreciated!" 90 | } 91 | } 92 | ``` 93 | -------------------------------------------------------------------------------- /guides/articles/uplifting-web-experience-with-hoppscotch-widgets.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: Hoppscotch Widgets 3 | title: Uplifting web experience with Hoppscotch Widgets 4 | description: 5 | Create and add interactive and dynamic elements to your website using 6 | Hoppscotch Widgets. 7 | --- 8 | 9 | Widgets are interactive components that can be embedded in HTML pages to enhance 10 | user experience. Hoppscotch offers three types of widgets: links, buttons, and 11 | embeds. These widgets allow you to easily integrate dynamic elements into your 12 | website or project. 13 | 14 | ## Links 15 | 16 | Links are the simplest way to share your Hoppscotch requests. You can create and share 17 | them with others in three formats: raw, HTML, and Markdown. 18 | 19 | Use this link to easily share your request with others or include it in 20 | documentation and blogs. 21 | 22 | **Example:** [Run in Hoppscotch](https://hopp.sh/r/r0338F6yoJrJ) 23 | 24 | ## Buttons 25 | 26 | Buttons take things up a notch. These can be embedded directly into HTML or 27 | Markdown files, and you can customize them to match your site's look and feel. 28 | 29 | Add this button in your project's documentation, website or blogs to provide easy access to 30 | your requests with a simple click. 31 | 32 | **Example:** 33 | [![Run in Hoppscotch](https://hopp.sh/badge.svg)](https://hopp.sh/r/r0338F6yoJrJ) 34 | 35 | ## Embeds 36 | 37 | Embeds are the most advanced widgets, allowing you to integrate a mini version 38 | of Hoppscotch right into your HTML page. This lets your audience interact 39 | directly with your API requests. You can also customize how the embed looks and 40 | functions to match your preferences. 41 | 42 | **Example:** [See Embed in Action](https://hoppscotch-embed-widget.netlify.app/) 43 | 44 | 45 | Customize the width, height, and other attributes of the embed code to fit 46 | your needs. 47 | 48 | 49 | ## Shared Request 50 | 51 | The **Shared Request** feature allows you to create widgets like links, buttons, 52 | and embeds that can be shared with others. When you share a request, it doesn't 53 | give direct access to your actual request; instead, it generates a shareable 54 | link that others can use. 55 | 56 | 57 | If a shared request uses environment variables, replace them with actual 58 | values before sharing to ensure it works correctly. 59 | 60 | 61 | ### How to Access Shared Request 62 | 63 | Steps to Create a Shared Request: 64 | 65 | 1. Click the icon next to the **Save** button and select **"Share Request."** 66 | 2. Choose the widget type: **Link**, **Button**, or **Embed**. 67 | 3. Click the **"Create"** button to generate the widget. 68 | 4. Customize your request as needed in the subsequent **"Customize Request"** 69 | panel. 70 | 5. You can choose different formats like **Raw, HTML, or Markdown** to embed the 71 | request in your app. 72 | 73 | 74 | After selecting the **"Shared Request"** option and clicking the **"Create"** 75 | button, at the right-hand sidebar, the current request is saved for easy 76 | access in the **"Shared Requests"** panel. 77 | 78 | 79 | ### How to Manage Shared Request 80 | 81 | To view your shared requests: 82 | 83 | 1. Click on the **"Shared Requests"** icon in the right-hand sidebar. 84 | 2. You will see a list of all your shared requests. 85 | 3. Click on any request to access it. 86 | 4. Right-click or use the three-dot menu on a request to **customize the widget, 87 | copy the link, edit, or delete** the shared request. 88 | -------------------------------------------------------------------------------- /support/terms.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: Terms and conditions 3 | title: Terms and conditions 4 | description: Terms and conditions for Hoppscotch. 5 | --- 6 | 7 | Hoppscotch Limited is committed to ensuring that the app is as useful and efficient as possible. For that reason, we reserve the right to make changes to the app or to charge for its services at any time and for any reason. We will not charge you for the app or its services without making it clear to you exactly what you're paying for. 8 | 9 | Please note that there are certain things that Hoppscotch Limited will not take responsibility for. Certain functions of the app will require an active internet connection. The connection can be Wi-Fi or provided by your mobile network provider, but Hoppscotch Limited cannot take responsibility if the app doesn't work at full functionality due to a lack of Wi-Fi or data allowance. 10 | 11 | If you use the app outside an area with Wi-Fi, your terms of agreement with your mobile network provider will still apply. As a result, you may be charged by your mobile provider for the cost of data for the duration of the connection while accessing the app, or other third-party charges. By using the app, you're accepting responsibility for any such charges, including roaming data charges if you use the app outside of your home territory (i.e., region or country) without turning off data roaming. If you're not the bill payer for the device on which you're using the app, please be aware that we assume that you have received permission from the bill payer to use the app. 12 | 13 | Along the same lines, Hoppscotch Limited cannot always take responsibility for the way you use the app, such as ensuring that your device stays charged. If your device runs out of battery and you can't turn it on to avail of the service, Hoppscotch Limited cannot accept responsibility. 14 | 15 | Concerning Hoppscotch Limited's responsibility for your use of the app, it's important to bear in mind that although we endeavor to ensure that it is updated and correct at all times, we do rely on third parties to provide information to us so that we can make it available to you. Hoppscotch Limited accepts no liability for any loss, direct or indirect, you experience as a result of relying solely on the functionality of the app. 16 | 17 | At some point, we may wish to update the app. The app is currently available on the web and CLI – the requirements for both systems (and for any additional systems we decide to extend the availability of the app to) may change, and you'll need to download the updates if you want to keep using the app. Hoppscotch Limited does not promise that it will always update the app so that it is relevant to you and/or works with the web & CLI version that you have installed on your device. However, you promise to accept updates to the application when offered to you. We may also wish to stop providing the app and terminate its use at any time without giving notice of termination to you. Unless we tell you otherwise, upon any termination, (a) the rights and licenses granted to you in these terms will end; (b) you must stop using the app, and (if needed) delete it from your device. 18 | 19 | ## Changes to these terms and conditions 20 | 21 | We may update our terms and conditions from time to time. Thus, you are advised to review this page periodically for any changes. We will notify you of any changes by posting the new terms and conditions on this page. 22 | 23 | These terms and conditions are effective as of 2023-04-08. 24 | 25 | ## Contact us 26 | 27 | If you have any questions or suggestions about our terms and conditions, please do not hesitate to contact us at `support@hoppscotch.io`. 28 | -------------------------------------------------------------------------------- /documentation/protocols/realtime.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: Realtime 3 | title: Realtime 4 | description: Hoppscotch's Realtime API platform helps you test your real-time APIs easily. 5 | --- 6 | 7 | ## Platform 8 | 9 | Hoppscotch has a built-in real-time platform that can be used to execute real-time requests. The real-time client platform can be accessed by clicking on the `Realtime` tab in the left sidebar. 10 | 11 | Realtime protocols are used in communication, entertainment, and even in the Internet of Things (IoT) to deliver and handle real-time messages, audio, etc. 12 | 13 | With Hoppscotch you can work with the following real-time protocols: 14 | 15 | - WebSocket 16 | - Socket.IO 17 | - SSE 18 | - MQTT 19 | 20 | ## API Testing 21 | 22 | Hoppscotch's Realtime API platform helps you test your real-time APIs easily. 23 | 24 | It's primarily divided into two sections the request section and the response section. 25 | 26 | ## Request 27 | 28 | The request section houses the feature to enter your server endpoint and initiate a connection. You also get the option to choose from four different protocols `WebSocket`, `SSE`, `Socket.IO`, and `MQTT`. 29 | 30 | ## Response 31 | 32 | Once the connection is established, you can view the responses and logs in the response section. 33 | 34 | ## WebSocket 35 | 36 | WebSockets are an alternative to HTTP communication in Web Applications. They offer a long-lived, bidirectional communication channel between client and server. Once established, the channel is kept open, offering a very fast connection with low latency and overhead. This makes them ideal for real-time applications. 37 | 38 | WebSockets are perfect for scenarios such as: 39 | 40 | - When you need to support real-time communication between the client and the server. 41 | - When you need to support a protocol that is more efficient than HTTP. 42 | - When you need to support a protocol that is more efficient than long polling. 43 | 44 | ## Socket.IO 45 | 46 | Socket.io is a real-time event-based communication library built on webSocket. It enables real-time, bi-directional communication between web clients and servers. 47 | 48 | Socket.io is perfect for scenarios such as: 49 | 50 | - When you need to support older browsers that don't support WebSockets. 51 | - When you need to support polling transports for mobile devices. 52 | - When you need to support multiple transports for a single connection. 53 | 54 | ## SSE 55 | 56 | SSE is a standard describing how servers can initiate data transmission towards clients once an initial client connection has been established. An SSE connection can discard processed messages without accumulating all of them in memory making it a memory-efficient implementation of XHR streaming. 57 | 58 | SSE is perfect for scenarios such as: 59 | 60 | - When an efficient unidirectional communication protocol is needed that won't add unnecessary server load (which is what happens with long polling). 61 | - When you need a protocol with a predefined standard for handling errors. 62 | - When you want to use HTTP-based methods for real-time data streaming. 63 | 64 | ## MQTT 65 | 66 | Message Queuing Telemetry Transport (MQTT) protocol is a publish/subscribe protocol that is lightweight and requires minimal memory, CPU, and bandwidth to connect IoT devices. Unlike HTTP's request/response paradigm, MQTT is event-driven and enables messages to be pushed to clients. 67 | 68 | Once connected to the MQTT server, you can either publish a message under a topic or subscribe to a topic to get messages about that topic being sent across the server in real time. 69 | 70 | MQTT is perfect for scenarios such as: 71 | 72 | - When you need to support real-time communication between the client and the server. 73 | - When you need to support a protocol that is more efficient than HTTP. 74 | -------------------------------------------------------------------------------- /documentation/features/workspaces.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: Workspaces 3 | title: Workspaces 4 | description: Organize your requests, collections, and environments into different workspaces. You can also invite other users to your workspace to collaborate. 5 | --- 6 | 7 | Once you are logged into Hoppscotch, you can toggle between multiple workspaces to organize your workflow. 8 | 9 | You can choose between your workspace titled "**Personal Workspace**" or create a workspace for your teams so that you can collaborate. 10 | 11 | Currently, organizing requests across multiple shared workspaces is limited to RESTful protocol. GraphQL and Realtime APIs are available only in the personal workspace and are not supported for collaboration in shared workspaces. 12 | 13 | ## Create a workspace 14 | 15 | To create a workspace, click on the **"+"** icon on the top right corner of the workspace switcher. Alternatively, you can also click on the "**Create new workspace**" button on the "[Profile](https://hoppscotch.io/profile)" page under the "**Workspaces**" section. 16 | 17 | Creating a workspace makes you the owner of the workspace. You can invite other users to the workspace and assign them roles. 18 | 19 | ## Invite users to a workspace 20 | 21 | To invite users to a workspace, click on the "**Invite**" button and enter the email address of the user you want to invite. You can invite multiple users at once by adding the email addresses in the input field entries. 22 | 23 | ## Switch between workspaces 24 | 25 | To switch between workspaces, click on the workspace switcher in the top right corner of the app and select the workspace you want to switch to. 26 | 27 | ## Edit a workspace 28 | 29 | You can only edit a workspace if you are the owner of the workspace. 30 | 31 | ### Rename a workspace 32 | 33 | To rename a workspace, click on the workspace settings button on the top right corner of the app. Then click on the workspace name and enter the new name. 34 | 35 | ### Remove a user from a workspace 36 | 37 | To remove a user from a workspace, click on the workspace settings button on the top right corner of the app. Then click on the "**Delete**" button on the user you want to remove from the workspace. 38 | 39 | ### Leave a workspace 40 | 41 | To leave a workspace, click on the workspace settings button on the top right corner of the app. Then click on the "**Delete**" button on the workspace you want to leave. 42 | 43 | You can only leave a workspace if you are not the owner of the workspace. If you are the owner of the workspace, you will have to delete the workspace to leave it. Alternatively, you can also transfer the ownership of the workspace to another user and then leave the workspace. 44 | 45 | ### Change member role 46 | 47 | There are three types of roles for members in a workspace: 48 | 49 | - **Owner**: The owner of the workspace has full access to the workspace and can invite other users to the workspace. The owner can also delete the workspace. 50 | - **Editor**: The editor of the workspace has edit access to the workspace and can create, edit, and delete collections, environments, and requests in the workspace. 51 | - **Viewer**: The viewer of the workspace has read-only access to the workspace and can only view the collections, environments, and requests in the workspace. 52 | 53 | To change the role of a member in a workspace, click on the workspace settings button on the top right corner of the app. Then click on the "**Role**" drop-down on the user you want to change the role of. Then select the role you want to assign to the user then click "**Save**". 54 | 55 | ### Delete a workspace 56 | 57 | To delete a workspace, click on the "**Delete**" button on the workspace you want to delete on the "[Profile](https://hoppscotch.io/profile)" page under the "**Workspaces**" section. 58 | -------------------------------------------------------------------------------- /documentation/getting-started/rest/tests.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: Tests 3 | title: Tests 4 | description: Tests are executed after a response is received from the server. You can add multiple tests to a request. You can add tests to both requests saved and not saved in a collection. 5 | --- 6 | 7 | ## Scripts 8 | 9 | Hoppscotch lets you add dynamic behavior to REST requests. This allows you to write test suites and build requests that can contain dynamic parameters. You can add JavaScript code that executes at two events in the flow: 10 | 11 | - Tests are executed after a response is received from the server 12 | - You can add multiple tests to a request 13 | - You can add tests to both requests saved and not saved in a collection 14 | 15 | Hoppscotch will then execute the scripts after the response is received. 16 | 17 | ## Post-request tests 18 | 19 | As you introduce new code, tests ensure that your API is working as intended. The higher your test coverage, the more flexible and bug-resistant your code will be. You'll be spending less time wondering why [deleting a picture of a coconut breaks your code](https://www.thegamer.com/this-coconut-jpg-in-team-fortress-2s-game-files-if-deleted-breaks-the-game-and-no-one-knows-why). 20 | 21 | ## Writing post-request tests 22 | 23 | Hoppscotch ships a powerful API called `pw` which can handle post-request scripts as well as tests. Here we'll use `pw` to run tests on the response received from APIs. 24 | 25 | ## Examples 26 | 27 | Let us look at some examples of how you can use Hoppscotch to write tests. 28 | 29 | ### Test response status code 30 | 31 | Let us write a test to check whether the response to our request has a status code of 200. Which means that there are no errors in the response body. We'll use the below URL with the GET method. 32 | 33 | ``` 34 | https://www.httpbin.org/status/200 35 | ``` 36 | 37 | In this case, we'll need to write two expect statements one for checking the status and another for checking the response body. However, we can wrap expect statements with the `test` method from the `pw` API to group related statements. 38 | 39 | There are two ways to test the status code: 40 | 41 | | Condition | Code | 42 | | ------------------------------- | ---------------------------------------------- | 43 | | Check if response code is `200` | `pw.expect(pw.response.status).toBe(200)` | 44 | | In-built matcher function | `pw.expect(pw.response.status).toBeLevel2xx()` | 45 | 46 | 47 | ```javascript Response code 200 48 | pw.test("Response is ok", () => { 49 | pw.expect(pw.response.status).toBe(200); 50 | }); 51 | ``` 52 | ```javascript Matcher function 53 | pw.test("Response is ok", () => { 54 | pw.expect(pw.response.status).toBeLevel2xx(); 55 | }); 56 | ``` 57 | 58 | 59 | The tests will have passed once you click on the "**Send**" button. 60 | 61 | ### Assert response payload 62 | 63 | In this example, we test whether a user id points to a particular user. 64 | Let us use the following GET API endpoint 65 | 66 | ``` 67 | https://reqres.in/api/users/10 68 | ``` 69 | 70 | We will use `.toBe()` to assert specific values and `.toBeType()` to assert specific data types as shown in the code snippet below: 71 | 72 | ```javascript 73 | pw.test("Check first name", () => { 74 | const user = pw.response.body.data; 75 | pw.expect(user.first_name).toBe("Byron"); 76 | pw.expect(user.first_name).toBeType("string"); 77 | }); 78 | ``` 79 | 80 | Running the test will produce the result as shown below: 81 | 82 | ```json 83 | { 84 | "data": { 85 | "id": 10, 86 | "email": "byron.fields@reqres.in", 87 | "first_name": "Byron", 88 | "last_name": "Fields", 89 | "avatar": "https://reqres.in/img/faces/10-image.jpg" 90 | }, 91 | "support": { 92 | "url": "https://contentcaddy.io?utm_source=reqres&utm_medium=json&utm_campaign=referral", 93 | "text": "Tired of writing endless social media content? Let Content Caddy generate it for you." 94 | } 95 | } 96 | ``` -------------------------------------------------------------------------------- /documentation/self-host/enterprise-edition/activity-logs.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: Activity logs 3 | title: Activity logs 4 | description: Track all changes made to collections and requests within a workspace, and monitor user interactions through Activity Logs. 5 | --- 6 | 7 | **Activity Logs** provide a clear record of actions performed within a workspace, including changes to collections, requests, and user interactions. These logs help maintain visibility and traceability of modifications across the workspace. 8 | 9 | ## Configuring Activity Logs 10 | 11 | Activity Logs are controlled via a unified toggle in the Admin Dashboard. 12 | 1. Go to **Admin Dashboard → Logging Configurations.** 13 | 2. **Enable the toggle** in this section to start recording Activity Logs. 14 | 15 | Activity Logs operate independently and do not require ClickHouse credentials. However, if Audit Logs are needed, [ClickHouse credentials must be configured](/documentation/self-host/enterprise-edition/prerequisites#clickhouse). 16 | 17 | ## Accessing Activity Logs 18 | 19 | To access Activity Logs in a workspace: 20 | 21 | 1. Navigate to the specific workspace from the workspace switcher present in the top right corner of the app. 22 | 2. Locate and click on the **clock** icon in the right sidebar. 23 | 3. In the `History` tab, you will find a chronological timeline of all changes made to collections and requests. 24 | 4. Logs are ordered from the latest to the oldest for easier navigation, with entries grouped by date. 25 | 26 | ## Permissions 27 | 28 | - **OWNER** and **EDITOR** roles: Actions performed by users with these roles are logged. 29 | - **VIEWER** role: Viewers cannot make changes, but they can view the activity logs of changes made by others. 30 | 31 | ## **Logged Actions** 32 | 33 | Activity Logs track the following actions within the workspace: 34 | 35 | ### **Workspace-Level Events** 36 | 37 | | **Action** | **Logged Activity Example** | 38 | | ---------------------------------- | ------------------------------------------------------- | 39 | | Creating a new workspace | `Created` new workspace `Statging` | 40 | | Renaming a Workspace | `Renamed` workspace from `Staging` to `Production` | 41 | | Adding a user to the workspace | John Doe was `added` to the workspace as `Viewer` | 42 | | Updating a user's role in workspace| John Doe's role was `updated` from `Viewer` to `Editor` | 43 | | Removing a user from the workspace | John Doe was `removed` from the workspace | 44 | 45 | ### **Collection-Level Events** 46 | 47 | | **Action** | **Logged Activity Example** | 48 | | ------------------------- | ------------------------------------------------------------------ | 49 | | Creating a new collection | `Created` new collection `Authentication APIs` | 50 | | Renaming a collection | `Renamed` collection from `User Management` to `Role Management` | 51 | | Importing a collection | `Imported` collection `Payment Gateway APIs` | 52 | | Duplicating a collection | `Duplicated` collection `Microservices APIs` | 53 | | Deleting a collection | `Deleted` collection `Authentication APIs` | 54 | 55 | ### **Request-Level Events** 56 | 57 | | **Action** | **Logged Activity Example** | 58 | | ---------------------- | --------------------------------------- | 59 | | Creating a new request | `Created` new request `Fetch User Data` | 60 | | Deleting a request | `Deleted` request `Fetch User Data` | 61 | 62 | Users with the **OWNER** role have the authority to `DELETE` activity logs. 63 | 64 | ## **Log Entry Details** 65 | 66 | Each log entry provides detailed information about the recorded action, including: 67 | 68 | - **Timestamp:** The exact time when the action occurred. 69 | - **Action Summary:** A summary of changes made in the operation. 70 | - **User Information:** The name of the user who performed the action. -------------------------------------------------------------------------------- /documentation/self-host/enterprise-edition/user-provisioning.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: User provisioning 3 | title: SCIM Integration for User Provisioning 4 | description: Manage users efficiently with SCIM provisioning in Hoppscotch. 5 | --- 6 | 7 | User management can become overwhelming as your organization scales. **SCIM (System for Cross-domain Identity Management)** offers a standardized way to handle user provisioning, updates, and deprovisioning. With SCIM integration, Hoppscotch connects directly to your Identity Provider (IdP), helping you manage users in one place and reflect those changes across systems. 8 | 9 | ## Setting Up SCIM Provisioning 10 | 11 | Follow the steps below to configure SCIM-based user provisioning in Hoppscotch and integrate it with your Identity Provider (IdP). 12 | 13 | ### 1. Enable SCIM in Hoppscotch 14 | 15 | - Open the **Admin Dashboard** and navigate to the **Configurations** section. 16 | - Find the **SCIM Provisioning** option under **User Provisioning** block and enable it. 17 | - Copy the **SCIM Base URL (`http(s):///scim/v2`)** provided after activation, as it will be needed for the integration. 18 | 19 | 20 | 21 | 22 | ### 2. Generate an InfraToken 23 | 24 | - Go to the **[InfraTokens](/documentation/self-host/enterprise-edition/admin-dashboard#infra-tokens)** section of the dashboard. 25 | - Create a new token for SCIM-related operations. 26 | - Copy the InfraToken and store it securely, as it will be used to authenticate SCIM requests from your IdP. 27 | 28 | 29 | 30 | 31 | ### 3. Configure SCIM in your Identity Provider `Example: Okta` 32 | 33 | - Log in to your [Okta](https://www.okta.com/) dashboard, select your application, and navigate to the application's settings. 34 | - Enable SCIM provisioning under the **General** tab. 35 | 36 | 37 | 38 | - Go to the **Provisioning > Integration** section: 39 | - Paste the **SCIM Base URL** you copied from Hoppscotch. 40 | - Specify the unique identifier field for users (e.g., `email`) and configure provisioning actions (e.g., Import New Users, Profile Updates, Push New Users, Push Profile Updates) according to your requirements. 41 | - Use the `InfraToken` generated in the Hoppscotch Admin Dashboard as the **Authorization Token** and save the configuration. 42 | 43 | 44 | 45 | - Under **Provisioning > To App**, enable the following actions: 46 | - **Create Users** 47 | - **Update User Attributes** 48 | - **Deactivate Users** 49 | Save the settings once done. 50 | 51 | 52 | 53 | 54 | ## Add a custom attribute 55 | 56 | SCIM supports extending the user schema to include custom fields to meet your organization's specific requirements: 57 | 58 | - In Okta, head to **Directory > Profile Editor** and locate the SCIM application. 59 | - Click **Add Attribute** to create a custom attribute you wish to include in the provisioning process. 60 | 61 | 62 | 63 | - Fill in the required fields and assign a valid **External namespace**. For SCIM 2.0, the following namespaces are supported in Okta: 64 | 65 | ```bash 66 | # Use this for basic user attributes 67 | urn:ietf:params:scim:schemas:core:2.0:User 68 | 69 | # Use this for enterprise-specific user extensions 70 | urn:ietf:params:scim:schemas:extension:enterprise:2.0:User 71 | ``` 72 | 73 | - Once finished, click **Save Attribute** to apply the changes. 74 | 75 | 76 | 77 | 78 | 79 | The **custom attribute** will now be automatically synchronized during user creation or updates. 80 | 81 | Once configured, assigning a user or group to the application will trigger user creation in Hoppscotch and grant them access to your instance. If a user is unassigned, they will be removed from Hoppscotch and their access permissions will be revoked. 82 | -------------------------------------------------------------------------------- /documentation/protocols/graphql.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: GraphQL 3 | title: GraphQL 4 | description: GraphQL is a query language for APIs that queries the server and provides the client only the data that is requested by the client. GraphQL enables you to fetch data from multiple APIs in a single query thus helping you build better-performing applications. 5 | --- 6 | 7 | ## Platform 8 | 9 | Hoppscotch has a built-in GraphQL platform that can be used to execute GraphQL queries. The GraphQL platform can be accessed by clicking on the `GraphQL` tab in the left sidebar. 10 | 11 | The GraphQL platform has the following features: 12 | 13 | - **GraphQL editor** - The GraphQL editor can be used to write GraphQL queries. The editor has syntax highlighting and auto-completion support for GraphQL queries. 14 | - **Collections** - The GraphQL platform supports collections. You can save your GraphQL queries in a collection and execute them later. 15 | - **Variables** - The GraphQL platform supports variables. You can define variables in the GraphQL query and pass the values of the variables in the variables section. 16 | - **Headers** - The GraphQL platform supports headers. You can add custom headers to the GraphQL query. 17 | - **Authentication** - The GraphQL platform supports authentication. You can add authentication to the GraphQL query. 18 | - **Schema Explorer** - The GraphQL platform has a schema explorer. You can use the schema explorer to explore the GraphQL schema. 19 | - **Documentation Explorer** - The GraphQL platform has a documentation explorer. You can use the documentation explorer to explore the documentation of the GraphQL schema. 20 | 21 | ## API Testing 22 | 23 | Hoppscotch's GraphQL API platform provides you with the best experience to test and play around with GraphQL. 24 | 25 | It's primarily divided into two sections along with other features to help you build and test queries. 26 | 27 | ## Request 28 | 29 | The request section houses the feature to enter your server endpoint and initiate a connection. 30 | 31 | Once the connection is made, the `query` builder assists you in designing queries to fetch the data that you require and run it. 32 | 33 | You can also add dynamic behavior to your queries by defining `variables`, `headers`, and `authorization`. 34 | 35 | ## Response 36 | 37 | This is where you see the responses to your API endpoints. You can download and copy the returned responses for further use. 38 | 39 | ## Schema 40 | 41 | GraphQL is a query language for APIs that queries the server and provides the client only the data that is requested by the client. GraphQL enables you to fetch data from multiple APIs in a single query thus helping you build better-performing applications. 42 | 43 | GraphQL server uses a GraphQL Schema to describe the structure of your data. Given below is an example of a GraphQL Schema. 44 | 45 | ```graphql 46 | type Laptop { 47 | model: String 48 | maker: Maker 49 | } 50 | 51 | type Maker { 52 | name: String 53 | laptops: [Laptop] 54 | } 55 | ``` 56 | 57 | The above schema defines two types `Laptop` and `Maker`. The `Laptop` type has two fields `model` and `maker`. The `Maker` type has two fields `name` and `laptops`. The `laptops` field in the `Maker` type is an array of the `Laptop` type. 58 | 59 | GraphQL queries are written in the GraphQL query language. Given below is an example of a GraphQL query. 60 | 61 | ```graphql 62 | query { 63 | maker(name: "Apple") { 64 | name 65 | laptops { 66 | model 67 | } 68 | } 69 | } 70 | ``` 71 | 72 | The above query fetches the `name` and `laptops` of the `Maker` with the name `Apple`. 73 | 74 | GraphQL queries can be executed using a GraphQL client. Hoppscotch has a built-in GraphQL client that can be used to execute GraphQL queries. 75 | 76 | ## Other features 77 | 78 | ### Documentation 79 | 80 | GraphQL documentation is where you can view the documentation provided by the developer. 81 | 82 | ### Explorer 83 | 84 | GraphQL uses a schema to define the structure of the data, the schema explorer helps you to understand how your data is structured. 85 | 86 | The GraphQL platform also houses other features like: 87 | 88 | - [Environments](/documentation/features/environments) 89 | - [Collections](/documentation/features/collections) 90 | - [History](/documentation/features/history) 91 | -------------------------------------------------------------------------------- /support/getting-started/faq.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: FAQ 3 | title: Frequently Asked Questions 4 | description: These are the most frequently asked questions about Hoppscotch. 5 | --- 6 | 7 | Find answers to the most frequently asked questions about Hoppscotch. 8 | 9 | ## General 10 | 11 | 12 | 13 | Hoppscotch is a free and open-source API development environment that helps you to quickly test and debug APIs. It is a web-based alternative to Postman, Insomnia, and Paw. 14 | 15 | 16 | Hoppscotch is a web-based alternative to Postman, Insomnia, and Paw. It is a free and open-source API development environment that helps you to quickly test and debug APIs. 17 | 18 | 19 | 20 | ## How-to 21 | 22 | 23 | 24 | You can use Hoppscotch by visiting [hoppscotch.io](https://hoppscotch.io) and start making API requests. You can learn more about Hoppscotch by reading our [Getting started](/guides/getting-started/introduction) guide. 25 | 26 | 27 | You can install Hoppscotch on your desktop by visiting [hoppscotch.io](https://hoppscotch.io) and clicking on the "**Install +**" button. You can also install Hoppscotch on your mobile device by visiting [hoppscotch.io](https://hoppscotch.io) and clicking on the "**Install +**" button. 28 | 29 | 30 | We're deprecating mobile support for Hoppscotch. You can still use Hoppscotch on mobile by visiting [hoppscotch.io](https://hoppscotch.io) and clicking on the "**Install +**" button. 31 | 32 | 33 | Download the desktop app from [Downloads page](https://hoppscotch.com/downloads) and install it on your desktop. You can also use Hoppscotch on your desktop by visiting [hoppscotch.io](https://hoppscotch.io) and clicking on the "**Install +**" button to install the [Progressive Web App](/documentation/clients/web). 34 | 35 | 36 | 37 | ## Features 38 | 39 | 40 | 41 | Hoppscotch has a lot of features that you can use to make your API development experience better. You can learn more about Hoppscotch features by reading our [features](/documentation/features) page. 42 | 43 | 44 | Collections are a way to organize your API requests. You can create a collection by clicking on the "Collections" button on the left sidebar. You can learn more about Collections by reading our [Collections guide](/documentation/features/collections). 45 | 46 | 47 | Environments are a way to store variables that you can use in your API requests. You can create an environment by clicking on the "Environments" button on the left sidebar. You can learn more about Environments by reading our [Environments guide](/documentation/features/environments). 48 | 49 | 50 | 51 | ## Bugs 52 | 53 | 54 | 55 | You can report a bug by clicking on the "Report a bug" button on the left sidebar. You can also report a bug by visiting our [GitHub repository](https://github.com/hoppscotch/hoppscotch/issues/new/choose). 56 | 57 | 58 | You can report a security vulnerability by visiting our [GitHub repository](https://github.com/hoppscotch/hoppscotch/security/policy). 59 | 60 | 61 | If you're using Hoppscotch on your local machine, you might need to enable `CORS`. You can learn more about `CORS` by reading our [Set up guide](/documentation/getting-started/setup#locally-served-apis). 62 | 63 | 64 | 65 | ## Support 66 | 67 | 68 | 69 | You can get support by visiting our [Support page](/support/solutions/community). 70 | 71 | 72 | -------------------------------------------------------------------------------- /documentation/protocols/rest.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: RESTful 3 | title: RESTful 4 | description: RESTful API testing with Hoppscotch. 5 | --- 6 | 7 | ## Platform 8 | 9 | Hoppscotch has a built-in REST platform that can be used to execute REST API requests. The REST platform can be accessed by clicking on the `REST` tab in the menu. 10 | 11 | The REST platform has the following features: 12 | 13 | - **Request editor** - The request editor can be used to write REST API requests. The editor has syntax highlighting and auto-completion support for REST API requests. 14 | - **Collections** - The REST platform supports collections. You can save your REST API requests in a collection and execute them later. 15 | - **Variables** - The REST client supports variables. You can define variables in the REST API request and pass the values of the variables in the variables section. 16 | - **Headers** - The REST platform supports headers. You can add custom headers to the REST API request. 17 | - **Authentication** - The REST platform supports authentication. You can add authentication to the REST API request. 18 | - **Pre-request scripts** - The REST platform supports pre-request scripts. You can write pre-request scripts to modify the request before it is sent to the server. 19 | - **Tests** - The REST platform supports tests. You can write tests to verify the response of the REST API request. 20 | - **Response viewer** - The REST platform has a response viewer. You can use the response viewer to view the response of the REST API request. 21 | - **Environments** - The REST platform supports environments. You can create multiple environments and switch between them. 22 | 23 | Representational State Transfer (REST) API is a software interface that enables two systems to communicate on the Internet. A REST API can do operations like creating, deleting, and modifying data. REST APIs are built on top of the HTTP protocol and have dedicated HTTP methods to perform operations. 24 | 25 | REST APIs are stateless, which means that the server does not store any information about the client. This makes REST APIs scalable and easy to maintain. 26 | 27 | ## API Testing 28 | 29 | Hoppscotch's REST API platform provides you with a fast and seamless experience to test and debug your API endpoints. 30 | 31 | It's primarily divided into two sections along with other features to help you build better APIs. 32 | 33 | ## Request 34 | 35 | The request section provides you the capability to define your API endpoint and initiate the communication. 36 | 37 | You can select from a range of HTTP methods such as `GET`, `POST`, `PUT` etc. You can read more about HTTP methods in [RESTful protocol](/documentation/protocols/rest). 38 | 39 | You can also add dynamic behaviors to your requests by specifying `Headers`, `Request Body`, `Authorization Headers`, `Parameters`, and `Pre-request scripts`. 40 | 41 | Hoppscotch also provides the capability to run `Tests` on the responses you receive. 42 | 43 | ## Response 44 | 45 | This is where you see the responses to your API endpoints. You can download and copy the returned responses for further use. 46 | 47 | ## HTTP Methods 48 | 49 | REST APIs use HTTP methods to perform operations. The most common HTTP methods are: 50 | 51 | | HTTP Method | Usage | 52 | | ----------- | ------------------------------------------------ | 53 | | GET | Retrieve information about the REST API resource | 54 | | POST | Create a REST API resource | 55 | | PUT | Update a REST API resource | 56 | | DELETE | Delete a REST API resource or related component | 57 | 58 | Other methods like `HEAD`, `CONNECT`, `OPTIONS`, `TRACE`, `PATCH` and other `CUSTOM` methods can also be used. 59 | 60 | ## HTTP Status Codes 61 | 62 | HTTP status codes are used to indicate the status of the HTTP request. The most common HTTP status codes are: 63 | 64 | | Status Code | Description | 65 | | ----------- | --------------------- | 66 | | 200 | OK | 67 | | 201 | Created | 68 | | 204 | No Content | 69 | | 400 | Bad Request | 70 | | 401 | Unauthorized | 71 | | 403 | Forbidden | 72 | | 404 | Not Found | 73 | | 405 | Method Not Allowed | 74 | | 500 | Internal Server Error | 75 | 76 | Other status codes like `301`, `302`, `304`, `307`, `308`, and other `5XX` codes can also be used. 77 | 78 | ## Other features 79 | 80 | The REST API platform also houses other features like: 81 | 82 | - [Environments](/documentation/features/environments) 83 | - [Collections](/documentation/features/collections) 84 | - [History](/documentation/features/history) 85 | -------------------------------------------------------------------------------- /documentation/features/environments.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: Environments 3 | title: Environments 4 | description: Environments help you create variables that you can reuse in requests and scripts. 5 | --- 6 | 7 | An environment allows you to group together a set of variable data. You can reference the variable data you define in an environment throughout Hoppscotch when sending requests or using scripts. 8 | 9 | Environments are also useful when you need to manage shared variables with a team. You can create environments and share them with your workspace members. 10 | 11 | ## Types of Environments 12 | 13 | 1. Global Environment - Variables defined in a global environment can be accessed from any workspace anytime. However the variables defined in a personal or shared workspace environment if used will have higher precedence over a global variables 14 | 2. Personal Environment - Are personal to the user and is not associated with a shared workspace, however a user can use a personal environment in a shared workspace without sharing it with the workspace members 15 | 3. Shared Environments - Are unique to each shared workspace, all the shared environments created in a shared workspace are accessible to every member of the shared workspace 16 | 17 | ## Types of Variables in an Environment 18 | 19 | Hoppscotch environment provides support for two types of variables 20 | 21 | 1. A Regular environment variable allows users to reference the variable throughout Hoppscotch, and anyone can see the value associated with the variable. In a shared workspace, regular environment variable-value pairs will be synced to the server, making them available to all workspace members. However, you have the option to choose whether to sync a personal or global environment. 22 | 23 | 2. A secret environment variable enables users to specify secrets and reference the values as variables. The values of secret variables in any workspace will never be synced to the server or shared with any workspace members. It is expected that the user will populate the value of the variable at runtime. All secret variable values in Hoppscotch will be masked using asterisks (***). 24 | 25 | Secret variables values will not be exported when an environment is exported. 26 | 27 | {/* initial and current values */} 28 | 29 | ## Types of Values in an Environment 30 | 31 | An environment variable can have two types of values: 32 | 33 | 1. **Initial Value** - The initial value of the variable when it is created. This value is used when the environment is first loaded. 34 | 2. **Current Value** - The current value of the variable, which can be modified at any time. This value is used when the environment is active. 35 | 36 | ## Shared Environment Access 37 | 38 | | | Environment Variable | Secret Variable | 39 | | --- | --- | --- | 40 | | Workspace Owner | create / delete variable, edit value and use | create / delete secret variable, add values and use | 41 | | Workspace Editor | create / delete variable, edit value and use | create / delete secret variable, add value and use | 42 | | Workspace Viewer | use | add value and use | 43 | 44 | ## Creating an environment 45 | 46 | Click on the ”Environments” icon on the sidebar to create environments. 47 | 48 | A variable created in an environment can be used by typing the variable name enclosed in double angle brackets `<>` 49 | 50 | ## Using scripts 51 | 52 | You can also create and delete environment variables using scripts by using the `pw` object.. 53 | 54 | ```javascript 55 | pw.env.set("variable", "value"); // Creates an environment variable 56 | pw.env.unset("variable"); // Deletes the environment variable 57 | ``` 58 | 59 | ## Duplicating an environment 60 | 61 | Create a copy of an existing environment to modify or test different configurations without affecting the original: 62 | 63 | 1. Click the "Environments" icon in the sidebar to view all existing environments under Global Environments. 64 | 2. Next to the environment you want to duplicate, click the **More** icon. 65 | 3. From the dropdown menu, select **Duplicate**. A new environment with the suffix `- Duplicate` will be created. 66 | 67 | Secret variable values will not be copied to the duplicated environment. 68 | 69 | 70 | 71 | Learn how you can create environment variables from the client. 72 | 73 | 74 | Learn how you can create environment variables using pre-request scripts. 75 | 76 | 77 | Learn more pre-request script examples. 78 | 79 | 80 | -------------------------------------------------------------------------------- /guides/articles/restful-api-testing-with-hoppscotch.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: RESTful API Testing 3 | title: RESTful API testing with Hoppscotch 4 | description: Learn how to use Hoppscotch to test your RESTful APIs. 5 | --- 6 | 7 | Representational State Transfer (REST) APIs are a core part of communication between a web/mobile client and a server. The majority of web-based applications depend on REST APIs to fetch and modify data thus separating the data processing part from the front-end. Hoppscotch provides a fast and intuitive platform to develop and test REST APIs making it easier for developers worldwide to work efficiently. 8 | 9 | ## Understanding REST 10 | 11 | REST usually uses the Hypertext Transfer Protocol (HTTP) to set up communication between the client and the server. REST APIs ensure that the server transfers information in a standard format. A REST API call generally contains the following steps - 12 | 13 | 1. The client sends a request to the server. 14 | 2. The server authenticates the client and ensures that the client is authorized to request the information. 15 | 3. The server accepts the requests and processes them. 16 | 4. The server responds with a code to tell the client if the request was successful or not and sends the requested information if the request was successful. 17 | 18 | Whenever a client requests information, the server always sends back a status code to indicate the status of the request. These are called HTTP status codes and are grouped into five types. 19 | 20 | | Status Code | Response Type | 21 | | ------------- | ------------- | 22 | | 1xx (100-199) | Informational | 23 | | 2xx (200-299) | Success | 24 | | 3xx (300-399) | Redirection | 25 | | 4xx (400-499) | Client error | 26 | | 5xx (500-599) | Server error | 27 | 28 | REST APIs also support HTTP methods to do operations on data. Hoppscotch supports the following methods out of the box. 29 | 30 | | HTTP Method | Usage | 31 | | ----------- | ------------------------------------------------------------------ | 32 | | GET | Retrieve resource from a server | 33 | | POST | Create or send new resource | 34 | | PUT | Updating resource, can also be used for creating resource | 35 | | PATCH | Similar to PUT, can be used to modify resources | 36 | | DELETE | Delete resource from the server | 37 | | HEAD | Read HTTP header information | 38 | | CONNECT | To start a two-way communication with resource | 39 | | OPTIONS | Requests permitted communication options for a given URL or server | 40 | | TRACE | Used to debug the path to the target resource | 41 | | CUSTOM | Create custom methods as per your need | 42 | 43 | ## Using Hoppscotch to test your REST APIs 44 | 45 | Hoppscotch provides you with a minimal yet robust platform to test your REST APIs. The REST platform is the default platform you see when you open Hoppscotch. 46 | 47 | You can enter the API endpoint and choose the HTTP method according to your needs from the dropdown menu. Once it is configured, click on the "**Send**" button and you will see the response returned by the server. It's that simple. 48 | 49 | Now try it yourself, copy the below API endpoint, and create a request. 50 | 51 | ``` 52 | https://echo.hoppscotch.io 53 | ``` 54 | 55 | ### Locally served APIs 56 | 57 | If you are planning to use Hoppscotch to test your locally served APIs, it is recommended that you install the Hoppscotch Browser Extension. Once installed, switch the interceptor on Hoppscotch to Browser Extension from the settings page or bottom bar to add support for [localhost](http://localhost) protocols. 58 | 59 | ### Adding parameters to your request 60 | 61 | You can also parameterize your URLs by specifying parameters in the URL itself or adding parameters manually in the parameters tab. To add a parameter in the URL, append `?` at the end of the URL and add a parameter in `key=value` format. 62 | 63 | ### Working with environment variables 64 | 65 | Environment variables allow you to store and reuse values in your requests and scripts. You can create a new environment by clicking the environments icon on the sidebar and clicking the `new` button. 66 | 67 | If you have more than one environment, select the environment whose variables you want to access. You can access the variables in the request section by referencing the variable in the following format`<>`. 68 | 69 | ### Authentication tokens 70 | 71 | Hoppscotch has support for various types of authentication mechanisms such as Basic Auth, Bearer Token, OAuth 2.0, and API Key. You can configure this using the Authorization tab on the request section of Hoppscotch. 72 | 73 | These are just a few of the amazing set of features that Hoppscotch provides you to make your life easier as a developer. In addition to this, Hoppscotch supports features such as collections to save your requests, pre-requests to add dynamic behavior to your requests and so much more. 74 | -------------------------------------------------------------------------------- /favicon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /logo/dark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /logo/light.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /support/code-of-conduct.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: Code of conduct 3 | title: Code of conduct 4 | description: Code of conduct for Hoppscotch. 5 | --- 6 | 7 | ## Our Pledge 8 | 9 | We as members, contributors, and leaders pledge to make participation in our 10 | community a harassment-free experience for everyone, regardless of age, body 11 | size, visible or invisible disability, ethnicity, sex characteristics, gender 12 | identity and expression, level of experience, education, socio-economic status, 13 | nationality, personal appearance, race, caste, color, religion, or sexual 14 | identity and orientation. 15 | 16 | We pledge to act and interact in ways that contribute to an open, welcoming, 17 | diverse, inclusive, and healthy community. 18 | 19 | ## Our Standards 20 | 21 | Examples of behavior that contributes to a positive environment for our 22 | community include: 23 | 24 | * Demonstrating empathy and kindness toward other people 25 | * Being respectful of differing opinions, viewpoints, and experiences 26 | * Giving and gracefully accepting constructive feedback 27 | * Accepting responsibility and apologizing to those affected by our mistakes, 28 | and learning from the experience 29 | * Focusing on what is best not just for us as individuals, but for the overall 30 | community 31 | 32 | Examples of unacceptable behavior include: 33 | 34 | * The use of sexualized language or imagery, and sexual attention or advances of 35 | any kind 36 | * Trolling, insulting or derogatory comments, and personal or political attacks 37 | * Public or private harassment 38 | * Publishing others' private information, such as a physical or email address, 39 | without their explicit permission 40 | * Other conduct which could reasonably be considered inappropriate in a 41 | professional setting 42 | 43 | ## Enforcement Responsibilities 44 | 45 | Community leaders are responsible for clarifying and enforcing our standards of 46 | acceptable behavior and will take appropriate and fair corrective action in 47 | response to any behavior that they deem inappropriate, threatening, offensive, 48 | or harmful. 49 | 50 | Community leaders have the right and responsibility to remove, edit, or reject 51 | comments, commits, code, wiki edits, issues, and other contributions that are 52 | not aligned to this Code of Conduct, and will communicate reasons for moderation 53 | decisions when appropriate. 54 | 55 | ## Scope 56 | 57 | This Code of Conduct applies within all community spaces, and also applies when 58 | an individual is officially representing the community in public spaces. 59 | Examples of representing our community include using an official e-mail address, 60 | posting via an official social media account, or acting as an appointed 61 | representative at an online or offline event. 62 | 63 | ## Enforcement 64 | 65 | Instances of abusive, harassing, or otherwise unacceptable behavior may be 66 | reported to the community leaders responsible for enforcement at 67 | support@hoppscotch.io. 68 | All complaints will be reviewed and investigated promptly and fairly. 69 | 70 | All community leaders are obligated to respect the privacy and security of the 71 | reporter of any incident. 72 | 73 | ## Enforcement Guidelines 74 | 75 | Community leaders will follow these Community Impact Guidelines in determining 76 | the consequences for any action they deem in violation of this Code of Conduct: 77 | 78 | ### 1. Correction 79 | 80 | **Community Impact**: Use of inappropriate language or other behavior deemed 81 | unprofessional or unwelcome in the community. 82 | 83 | **Consequence**: A private, written warning from community leaders, providing 84 | clarity around the nature of the violation and an explanation of why the 85 | behavior was inappropriate. A public apology may be requested. 86 | 87 | ### 2. Warning 88 | 89 | **Community Impact**: A violation through a single incident or series of 90 | actions. 91 | 92 | **Consequence**: A warning with consequences for continued behavior. No 93 | interaction with the people involved, including unsolicited interaction with 94 | those enforcing the Code of Conduct, for a specified period of time. This 95 | includes avoiding interactions in community spaces as well as external channels 96 | like social media. Violating these terms may lead to a temporary or permanent 97 | ban. 98 | 99 | ### 3. Temporary Ban 100 | 101 | **Community Impact**: A serious violation of community standards, including 102 | sustained inappropriate behavior. 103 | 104 | **Consequence**: A temporary ban from any sort of interaction or public 105 | communication with the community for a specified period of time. No public or 106 | private interaction with the people involved, including unsolicited interaction 107 | with those enforcing the Code of Conduct, is allowed during this period. 108 | Violating these terms may lead to a permanent ban. 109 | 110 | ### 4. Permanent Ban 111 | 112 | **Community Impact**: Demonstrating a pattern of violation of community 113 | standards, including sustained inappropriate behavior, harassment of an 114 | individual, or aggression toward or disparagement of classes of individuals. 115 | 116 | **Consequence**: A permanent ban from any sort of public interaction within the 117 | community. 118 | 119 | ## Attribution 120 | 121 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], 122 | version 2.1, available at 123 | [https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. 124 | 125 | Community Impact Guidelines were inspired by 126 | [Mozilla's code of conduct enforcement ladder][Mozilla CoC]. 127 | 128 | For answers to common questions about this code of conduct, see the FAQ at 129 | [https://www.contributor-covenant.org/faq][FAQ]. Translations are available at 130 | [https://www.contributor-covenant.org/translations][translations]. 131 | 132 | [homepage]: https://www.contributor-covenant.org 133 | [v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html 134 | [Mozilla CoC]: https://github.com/mozilla/diversity 135 | [FAQ]: https://www.contributor-covenant.org/faq 136 | [translations]: https://www.contributor-covenant.org/translations 137 | -------------------------------------------------------------------------------- /documentation/getting-started/rest/response-handling.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: Response handling 3 | title: Response handling 4 | description: View, interpret and manage responses from your API requests. 5 | --- 6 | 7 | A REST API response is the data returned by the API after an application makes an HTTP request. It typically includes an HTTP status code indicating the result of the request, a response body that contains the requested data, and headers that provide metadata. The response may also include cookies set by the server. 8 | 9 | Hoppscotch uplifts this experience by providing an intuitive interface for analyzing responses, making it easier for you to visualize and interact with API data effectively. 10 | 11 | ## **Response Body** 12 | 13 | Depending on the content type of the response, Hoppscotch automatically presents the data in the appropriate format: 14 | 15 | - **JSON:** Formats the response in a structured JSON format for easy readability. 16 | - **HTML:** Renders the response as HTML for visual representation and structure content as a web page. 17 | - **XML:** Shows the response in XML format for compatibility with XML-based APIs. 18 | - **Image:** Displays image responses directly in the interface. 19 | 20 | 21 | 22 | 23 | ```json 24 | { 25 | "name": "Hoppscotch", 26 | "type": "Open-source API Development Ecosystem", 27 | "description": "A powerful platform for developing and testing APIs with an intuitive interface.", 28 | "url": "https://hoppscotch.io" 29 | } 30 | ``` 31 | 32 | 33 | 34 | 35 | ```html 36 | 37 | 38 | 39 | 40 | Hoppscotch API 41 | 42 | 43 |

Hoppscotch

44 |

Type: Open-source API Development Ecosystem

45 |

Description: A powerful platform for developing and testing APIs with an intuitive interface.

46 |

URL: https://hoppscotch.io

47 | 48 | 49 | ``` 50 | 51 |
52 | 53 | 54 | ```xml 55 | 56 | 57 | Hoppscotch 58 | Open-source API Development Ecosystem 59 | A powerful platform for developing and testing APIs with an intuitive interface. 60 | https://hoppscotch.io 61 | 62 | ``` 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 |
72 | 73 | ### Raw Response 74 | 75 | The **Raw** response tab in Hoppscotch presents the unprocessed response body, allowing you to view the exact data returned by the API without any formatting which can be particularly used for debugging or when you need to inspect the original response directly. 76 | 77 | ## Response Headers 78 | 79 | Response **Headers** give you important information about the API response that goes beyond just the data itself. They include information such as the content type, which indicates the format of the response (e.g., `application/json` or `text/html`), caching directives that control how the response can be stored and reused, security settings like CORS (Cross-Origin Resource Sharing) that help manage access, and various server-related information, like the server type and version. 80 | 81 | ## Test Results 82 | 83 | The **Test Results** section displays the outcomes of any assertions made on the API response, allowing you to verify key aspects such as status codes, response times, and the presence of expected data. 84 | 85 | ## Save a response as an Example 86 | 87 | In Hoppscotch, an example connects a specific request with its response, providing a complete view of how an API behaves. Each example includes the essential request details alongside the response information. You can create multiple examples for a single request, which is valuable for illustrating how the same endpoint might respond differently under various conditions. 88 | 89 | **To save a response as an example in Hoppscotch, follow these steps:** 90 | 91 | - Navigate to the right-sidebar and select the collection with your request. 92 | - Choose the request and hit **"Send.”** 93 | - In the response section, click the **"Save as Example"** icon. 94 | - The example will be stored in request's history in the collection for easy retrieval and reference later. 95 | - Click on the example and select **"Try"** to open it as a request in a new tab. 96 | 97 | You can easily `Edit` the response details using the **** menu icon, `Save` any changes made to the examples, and `Duplicate` them to generate various iterations. 98 | 99 | **Using examples for API mocking:** 100 | 101 | Saved examples can be used to create [mock servers](/documentation/features/mock) in Hoppscotch. When you create a mock server from a collection, each saved example automatically becomes a mock route with the exact response you captured. This lets you quickly convert real API behavior into mock endpoints for testing, prototyping, or development without a backend. 102 | 103 | Hoppscotch also supports **importing** collections with **examples** attached to each request from various platforms, including **Postman, Insomnia, OpenAPI, and Hoppscotch.** 104 | 105 | ## Filter Response Body 106 | 107 | To extract specific data points from the response body, you can apply filter using [JSONPath](https://github.com/JSONPath-Plus/JSONPath) syntax. 108 | 109 | ## **Download Response** 110 | 111 | You can download the response in various formats (JSON, XML, etc.) for offline analysis or record-keeping. Click the **"Download"** button and choose the format you wish to save. 112 | 113 | ## **Copy Response** 114 | 115 | To copy the entire response to the clipboard, simply click the **"Copy"** button. 116 | 117 | ## **Generate Data Schema** 118 | 119 | Using the **"More"** menu, you can generate a structured representation of the response data tailored to specific programming languages. You can **download the file** or **copy the response** in languages like TypeScript, C#, Go, and others, making it simpler for you to incorporate API responses into your applications. -------------------------------------------------------------------------------- /documentation/clients/desktop.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: Desktop 3 | title: Hoppscotch Desktop App 4 | description: Cross-platform desktop application that runs on macOS, Windows, and Linux. 5 | --- 6 | 7 | Hoppscotch Desktop App is a cross-platform desktop application that helps you create and manage API requests. It is built on top of the [Hoppscotch Web Client](/documentation/clients/web) and is powered by [Tauri](https://tauri.app). 8 | 9 | 10 | 11 | 12 | 13 | 14 | ## Download Hoppscotch Desktop App 15 | 16 | Download the latest version of Hoppscotch Desktop App for your operating system: 17 | 18 | 19 | 20 | 21 | Download for Apple Silicon-based Mac. 22 | 23 | 24 | Download for Intel-based Mac. 25 | 26 | 27 | 28 | 29 | Download the installer for Windows (64-bit). 30 | 31 | 32 | Download the portable version for Windows (64-bit). 33 | 34 | 35 | 36 | 37 | Download the Debian package for Debian-based Linux distributions. 38 | 39 | 40 | Download the AppImage for Linux. 41 | 42 | 43 | 44 | 45 | ## Install Hoppscotch Desktop App 46 | 47 | 1. Download the latest version of Hoppscotch Desktop App from the links above or from [official website](https://hoppscotch.com/download). 48 | 2. Open the downloaded file. 49 | 3. Follow the on-screen instructions to install Hoppscotch Desktop App. 50 | 4. Open Hoppscotch Desktop App. 51 | 5. If you see a warning message, click "**Open**". 52 | 53 | ## Access Hoppscotch 54 | 55 | ### Hoppscotch Cloud Edition for Individuals 56 | 57 | Seamlessly access Hoppscotch Cloud Edition from Hoppscotch Desktop App: 58 | 59 | 1. Open Hoppscotch Desktop App. 60 | 2. Click the Hoppscotch logo in the top-left corner. 61 | 3. Click "**HOPPSCOTCH CLOUD**". 62 | 4. Sign in with your Hoppscotch Cloud account to access your workspaces and collections. 63 | 64 | ### Hoppscotch Cloud Edition for Organizations 65 | 66 | {/* Access your organization's Hoppscotch Cloud Edition from Hoppscotch Desktop App: 67 | 68 | 1. Open Hoppscotch Desktop App. 69 | 2. Click the Hoppscotch logo in the top-left corner. 70 | 3. Click "**Add an instance**". 71 | 4. Enter the URL of your organization's Hoppscotch Cloud Edition. 72 | 5. Sign in with your organization's Hoppscotch Cloud account to access your workspaces and collections. */} 73 | 74 | 75 | This feature is coming soon. 76 | 77 | 78 | ### Hoppscotch Self-Hosted Edition for Community 79 | 80 | 81 | To enable desktop app support for your self-hosted Hoppscotch instance, make sure to update the `WHITELISTED_ORIGINS` environment variable in your `.env` file with your deployment URL. 82 | 83 | 84 | e.g. to allow connection to `https://hoppscotch.my-domain.com` you need to add `app://hoppscotch_my_domain_com` and `http://app.hoppscotch_my_domain_com` to the `WHITELISTED_ORIGINS` environment variable. 85 | ```bash 86 | WHITELISTED_ORIGINS=...existing_origins,app://hoppscotch_my_domain_com,http://app.hoppscotch_my_domain_com 87 | ``` 88 | 89 | _app://hoppscotch_my_domain_com_   for Linux and macOS machines. 90 | 91 | 92 | _http://app.hoppscotch_my_domain_com_   for Windows machine. 93 | 94 | 95 | 96 | Add your self-hosted Hoppscotch Community Edition instance to Hoppscotch Desktop App: 97 | 98 | 1. Open Hoppscotch Desktop App. 99 | 2. Click the Hoppscotch logo in the top-left corner. 100 | 3. Click "**Add an instance**". 101 | 4. Enter the URL of your self-hosted Hoppscotch instance. 102 | 5. Click "**Connect**". 103 | 104 | You can also self-host Hoppscotch Desktop App. Follow the instructions in the [Hoppscotch GitHub repository](https://github.com/hoppscotch/hoppscotch/tree/main/packages/hoppscotch-desktop). 105 | 106 | ### Hoppscotch Self-Hosted Edition for Enterprise 107 | 108 | 109 | To enable desktop app support for your self-hosted Hoppscotch instance, make sure to update the `WHITELISTED_ORIGINS` environment variable in your `.env` file with your deployment URL. 110 | 111 | 112 | e.g. to allow connection to `https://hoppscotch.my-domain.com` you need to add `app://hoppscotch_my_domain_com` and `http://app.hoppscotch_my_domain_com` to the `WHITELISTED_ORIGINS` environment variable. 113 | ```bash 114 | WHITELISTED_ORIGINS=...existing_origins,app://hoppscotch_my_domain_com,http://app.hoppscotch_my_domain_com 115 | ``` 116 | 117 | _app://hoppscotch_my_domain_com_   for Linux and macOS machines. 118 | 119 | 120 | _http://app.hoppscotch_my_domain_com_   for Windows machine. 121 | 122 | 123 | 124 | Add your self-hosted Hoppscotch Enterprise Edition instance to Hoppscotch Desktop App: 125 | 126 | 1. Open Hoppscotch Desktop App. 127 | 2. Click the Hoppscotch logo in the top-left corner. 128 | 3. Click "**Add an instance**". 129 | 4. Enter the URL of your self-hosted Hoppscotch instance. 130 | 5. Click "**Connect**". 131 | 132 | You can also self-host Hoppscotch Desktop App. Follow the instructions in the [Hoppscotch GitHub repository](https://github.com/hoppscotch/hoppscotch/tree/main/packages/hoppscotch-desktop). 133 | -------------------------------------------------------------------------------- /documentation/develop.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebarTitle: Develop 3 | title: Develop 4 | description: Learn how to contribute to Hoppscotch. 5 | --- 6 | 7 | We love your input! We want to make contributing to Hoppscotch as easy and transparent as possible, whether it's: 8 | 9 | - Reporting a bug 10 | - Discussing the current state of the code 11 | - Submitting a fix 12 | - Proposing new features 13 | 14 | ## We develop with GitHub 15 | 16 | We use GitHub to host code, track issues, and feature requests, as well as accept pull requests. 17 | 18 | **We use [GitHub Flow](https://docs.github.com/en/get-started/quickstart/github-flow), So all code changes happen through pull requests.** 19 | 20 | Pull requests are the best way to propose changes to the codebase (we use [GitHub Flow](https://guides.github.com/introduction/flow/index.html)). We actively welcome your pull requests. 21 | 22 | ## Contributing 23 | 24 | When contributing to this repository, please first discuss the change you wish to make via issue, 25 | email, or any other method with the owners of this repository before making a change. 26 | 27 | Please note we have a [code of conduct](/support/code-of-conduct), please follow it in all your interactions with the project. 28 | 29 | ## Pull Request Process 30 | 31 | 1. Ensure any install or build dependencies are removed before the end of the layer when doing a 32 | build. 33 | 2. Update the README.md with details of changes to the interface, this includes new environment 34 | variables, exposed ports, useful file locations and container parameters. 35 | 3. Increase the version numbers in any examples files and the README.md to the new version that this 36 | Pull Request would represent. The versioning scheme we use is [SemVer](https://semver.org). 37 | 4. You may merge the Pull Request once you have the sign-off of two other developers, or if you 38 | do not have permission to do that, you may request the second reviewer merge it for you. 39 | 40 | ## **Developing** 41 | 42 | - Section moved to [Self-Hosting](/documentation/self-host/getting-started). 43 | 44 | ### Browser-based development environment 45 | 46 | [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/hoppscotch/hoppscotch) 47 | 48 | [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/hoppscotch/hoppscotch) 49 | 50 | ### Local development environment 51 | 52 | - Section moved to [Self-Hosting](/documentation/self-host/getting-started). 53 | 54 | ### Docker compose 55 | 56 | - Section moved to [Self-Hosting](/documentation/self-host/getting-started). 57 | 58 | ## **Docker** 59 | 60 | - Section moved to [Self-Hosting](/documentation/self-host/getting-started). 61 | 62 | ## **Releasing** 63 | 64 | - Section moved to [Self-Hosting](/documentation/self-host/getting-started). 65 | 66 | #### Any contributions you make will be under the MIT License. 67 | 68 | In short, when you submit code changes, your submissions are understood to be under the same [MIT License](https://choosealicense.com/licenses/mit) that covers the project. Feel free to contact the maintainers if that's a concern. 69 | 70 | #### Report bugs using GitHub's Issues 71 | 72 | We use GitHub issues to track public bugs. Report a bug by [opening a new issue](https://github.com/hoppscotch/hoppscotch/issues); it's that easy! 73 | 74 | #### Write bug reports with detail, background, and sample code 75 | 76 | [This is an example](https://stackoverflow.com/q/12088905/180626) of a bug report I wrote, and I think it's not a bad model. Here's [another example](https://www.openradar.me/11905408). 77 | 78 | **Great Bug Reports** tend to have: 79 | 80 | - A quick summary and/or background 81 | - Steps to reproduce 82 | - Be specific! 83 | - Give a sample code if you can. 84 | - What you expected would happen 85 | - What happens 86 | - Notes (possibly including why you think this might be happening, or stuff you tried that didn't work) 87 | 88 | People love thorough bug reports. I'm not even kidding. 89 | 90 | #### Use a consistent coding style 91 | 92 | I'm again borrowing these from [Facebook's Guidelines](https://reactjs.org/docs/how-to-contribute.html) 93 | 94 | - 2 spaces for indentation rather than tabs 95 | - You can try using Eslint code extensions in vs code or something similar. 96 | 97 | ## Recommended VS Code extensions 98 | 99 | - WindiCSS IntelliSense 100 | 101 | [Install](https://marketplace.visualstudio.com/items?itemName=voorjaar.windicss-intellisense) • [Repository](https://github.com/windicss/windicss-intellisense) 102 | 103 | - Vue Language Features (Volar) 104 | 105 | [Install](https://marketplace.visualstudio.com/items?itemName=vue.volar) • [Repository](https://github.com/johnsoncodehk/volar) 106 | 107 | - Stylelint 108 | 109 | [Install](https://marketplace.visualstudio.com/items?itemName=stylelint.vscode-stylelint) • [Repository](https://github.com/stylelint/vscode-stylelint) 110 | 111 | - SCSS IntelliSense 112 | 113 | [Install](https://marketplace.visualstudio.com/items?itemName=mrmlnc.vscode-scss) • [Repository](https://github.com/mrmlnc/vscode-scss) 114 | 115 | - SCSS Formatter 116 | 117 | [Install](https://marketplace.visualstudio.com/items?itemName=sibiraj-s.vscode-scss-formatter) • [Repository](https://github.com/sibiraj-s/vscode-scss-formatter) 118 | 119 | - PostCSS Language Support 120 | 121 | [Install](https://marketplace.visualstudio.com/items?itemName=csstools.postcss) • [Repository](https://github.com/csstools/postcss-language) 122 | 123 | - npm Intellisense 124 | 125 | [Install](https://marketplace.visualstudio.com/items?itemName=christian-kohler.npm-intellisense) • [Repository](https://github.com/ChristianKohler/NpmIntellisense) 126 | 127 | - JavaScript and TypeScript Nightly 128 | 129 | [Install](https://marketplace.visualstudio.com/items?itemName=ms-vscode.vscode-typescript-next) • [Repository](https://github.com/microsoft/vscode-typescript-next) 130 | 131 | - GraphQL 132 | 133 | [Install](https://marketplace.visualstudio.com/items?itemName=GraphQL.vscode-graphql) • [Repository](https://github.com/graphql/vscode-graphql) 134 | 135 | - ESLint 136 | 137 | [Install](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) • [Repository](https://github.com/Microsoft/vscode-eslint) 138 | 139 | - EditorConfig for VS Code 140 | 141 | [Install](https://marketplace.visualstudio.com/items?itemName=EditorConfig.EditorConfig) • [Repository](https://github.com/editorconfig/editorconfig-vscode) 142 | 143 | - npm 144 | 145 | [Install](https://marketplace.visualstudio.com/items?itemName=eg2.vscode-npm-script) • [Repository](https://github.com/Microsoft/vscode-npm-scripts) 146 | 147 | ## License 148 | 149 | By contributing, you agree that your contributions will be licensed under [MIT License](https://github.com/hoppscotch/hoppscotch/blob/main/LICENSE). 150 | --------------------------------------------------------------------------------