Create mock servers in Hoppscotch to simulate API endpoints with custom responses, status codes, and latency for prototyping and testing.
Hoppscotch API Mocking lets you stand up mock servers that return predictable responses to HTTP requests. It’s ideal for prototyping, front‑end development, contract-first API design, demos, and testing failure/latency scenarios, now built right into Hoppscotch.
In Hoppscotch, you can save responses as examples to quickly populate mock routes with realistic data. Examples capture both the request configuration and its actual response, making it easy to convert real API behavior into mock endpoints.To save a response as an example:
Navigate to the right-sidebar and select the collection with your request
Choose the request and click “Send”
In the response section, click the “Save as Example” icon
The example will be stored in the request’s history within the collection
Using examples in mock servers:
When creating a mock server from a Collection, each saved example automatically becomes a mock route
Examples preserve the exact response status, headers, and body you received
You can edit examples to adjust the mock response (modify status codes, add headers, introduce delays)
Multiple examples for the same request let you simulate different scenarios (success, errors, edge cases)
Example workflow:
Call your API endpoint and receive a response
Save that response as an example
Create a mock server from the collection
The mock route now returns the exact response you captured
Edit the example to add delays or modify data for testing
Use examples to quickly bootstrap realistic mock data from your actual API, then refine them to test edge cases and failure scenarios.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Hoppscotch Documentation","description":"Find user guides, quickstarts, tutorials, use cases, code samples, and more.","colors":{"primary":"#0D9373","light":"#07C983","dark":"#0D9373"},"logo":{"light":"https://mintcdn.com/hoppscotch/YzZ1u98z3f2mVgzZ/logo/light.svg?fit=max\u0026auto=format\u0026n=YzZ1u98z3f2mVgzZ\u0026q=85\u0026s=b61955a81bc00d70adfa5f8633848cd9","dark":"https://mintcdn.com/hoppscotch/YzZ1u98z3f2mVgzZ/logo/dark.svg?fit=max\u0026auto=format\u0026n=YzZ1u98z3f2mVgzZ\u0026q=85\u0026s=2630e96c15d9cdafd16ed468ce7e146d"},"favicon":"https://mintcdn.com/hoppscotch/YzZ1u98z3f2mVgzZ/favicon.svg?fit=max\u0026auto=format\u0026n=YzZ1u98z3f2mVgzZ\u0026q=85\u0026s=50976061e41b634209dc92da5209db5b","navbar":{"primary":{"type":"github","href":"https://github.com/hoppscotch/hoppscotch"}},"footer":{"socials":{"discord":"https://hoppscotch.io/discord","x":"https://hoppscotch.io/twitter","linkedin":"https://www.linkedin.com/company/hoppscotch"}},"search":{"prompt":"Search"},"styling":{"eyebrows":"breadcrumbs","latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"hoppscotch","hasAudioNarration":false,"actualSubdomain":"hoppscotch","customDomains":["docs.hoppscotch.io"],"gitSource":{"type":"github","owner":"hoppscotch","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae39a0ccbba577a6e0590e3","collectionId":"254e6171-18de-45ee-92d0-5d53565f747b","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae39a0ccbba577a6e0590e3"},"feedback":{"thumbs":true,"edits":true,"issues":true},"entitlements":{},"buildId":"6ae39a0ccbba577a6e0590e3","clientVersion":"0.0.4021","searchFilterCounts":[{"language":"default","tag":"Documentation","count":84},{"language":"default","tag":"Features","count":26},{"language":"default","tag":"Getting started","count":25},{"language":"default","tag":"Self-Host","count":20},{"language":"default","tag":"Enterprise Edition","count":12},{"language":"default","tag":"Support","count":12},{"language":"default","tag":"Resources","count":10},{"language":"default","tag":"RESTful API","count":10},{"language":"default","tag":"Guides","count":10},{"language":"default","tag":"Clients","count":9}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"documentation/features/mock","slug":"/documentation/features/mock","pageMetadata":{"sidebarTitle":"Mock","title":"API Mocking","description":"Create mock servers in Hoppscotch to simulate API endpoints with custom responses, status codes, and latency for prototyping and testing.","href":"/documentation/features/mock"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Create mock servers in Hoppscotch to simulate API endpoints with custom responses, status codes, and latency for prototyping and testing.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Tip}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Hoppscotch API Mocking lets you stand up mock servers that return predictable responses to HTTP requests. It’s ideal for prototyping, front‑end development, contract-first API design, demos, and testing failure/latency scenarios, now built right into Hoppscotch.`}),`\n`,_jsx(Heading,{level:`2`,id:`what-you-can-do`,children:`What you can do`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Spin up mock servers without writing code`}),`\n`,_jsx(_components.li,{children:`Define routes by method and path (with path params and queries)`}),`\n`,_jsx(_components.li,{children:`Return custom status codes, headers, and bodies`}),`\n`,_jsxs(_components.li,{children:[`Choose between static and dynamic responses (with `,_jsx(_components.a,{href:`/documentation/features/variables`,children:`Variables`}),`)`]}),`\n`,_jsx(_components.li,{children:`Simulate latency and flaky behaviors for realism`}),`\n`,_jsxs(_components.li,{children:[`Organize and reuse mocks with `,_jsx(_components.a,{href:`/documentation/features/collections`,children:`Collections`}),` and `,_jsx(_components.a,{href:`/documentation/features/environments`,children:`Environments`})]}),`\n`,_jsxs(_components.li,{children:[`Collaborate via `,_jsx(_components.a,{href:`/documentation/features/workspaces`,children:`Workspaces`})]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`create-a-mock-server`,children:`Create a mock server`}),`\n`,_jsx(_components.p,{children:`You can create a mock server from scratch or from an existing Collection.`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:`New mock server`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Click “New”`}),`\n`,_jsx(_components.li,{children:`Select source collection`}),`\n`,_jsx(_components.li,{children:`Provide a mock server name`}),`\n`,_jsx(_components.li,{children:`Choose a response delay`}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:`From a Collection`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Select a Collection menu, then click “Configure Mock Server”`}),`\n`,_jsx(_components.li,{children:`Provide a mock server name`}),`\n`,_jsx(_components.li,{children:`Choose a response delay`}),`\n`,_jsx(_components.li,{children:`Each request/example becomes an initial mock route you can refine`}),`\n`]}),`\n`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`Once created, you’ll get a mock server URL you can call from your app or your Hoppscotch requests.`}),`\n`,_jsxs(Tip,{children:[`Keep the mock server URL in an Environment variable, for example `,_jsx(_components.code,{children:`{{MOCK_BASE_URL}}`}),`, so you can swap between mock and real servers easily.`]}),`\n`,_jsx(Heading,{level:`2`,id:`define-routes-and-responses`,children:`Define routes and responses`}),`\n`,_jsx(_components.p,{children:`A mock server is made of one or more routes. Each route matches an incoming request and returns a configured response.`}),`\n`,_jsx(_components.p,{children:`Route fields:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Method: `,_jsx(_components.code,{children:`GET`}),`, `,_jsx(_components.code,{children:`POST`}),`, `,_jsx(_components.code,{children:`PUT`}),`, `,_jsx(_components.code,{children:`PATCH`}),`, `,_jsx(_components.code,{children:`DELETE`}),`, `,_jsx(_components.code,{children:`HEAD`}),`, `,_jsx(_components.code,{children:`OPTIONS`})]}),`\n`,_jsx(_components.li,{children:`Path: Supports path params and query strings`}),`\n`,_jsx(_components.li,{children:`Matching: Optional header and query matchers to choose the correct example`}),`\n`,_jsx(_components.li,{children:`Response: Status code, headers, body, and artificial latency`}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`example-route`,children:`Example route`}),`\n`,_jsx(_components.p,{children:`Request`}),`\n`,_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`GET /users/42`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(_components.p,{children:`Response`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`5`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`5`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\t\"id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`42`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\t\"name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Jane Doe\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\t\"role\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"admin\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`dynamic-responses-with-variables`,children:`Dynamic responses with variables`}),`\n`,_jsx(_components.p,{children:`Use Hoppscotch variables to make responses dynamic and realistic.`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Timestamps: `,_jsx(_components.code,{children:`{{timestamp}}`})]}),`\n`,_jsxs(_components.li,{children:[`UUIDs: `,_jsx(_components.code,{children:`{{uuid}}`})]}),`\n`,_jsxs(_components.li,{children:[`Environment values: `,_jsx(_components.code,{children:`{{ENV_NAME}}`})]}),`\n`]}),`\n`,_jsx(_components.p,{children:`Example dynamic body:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`5`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`5`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\t\"requestId\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"{{uuid}}\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\t\"generatedAt\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"{{timestamp}}\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\t\"region\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"{{REGION}}\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`You can also reference variables in headers, for example `,_jsx(_components.code,{children:`X-Request-ID: {{uuid}}`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`save-a-response-as-an-example`,children:`Save a response as an Example`}),`\n`,_jsx(_components.p,{children:`In Hoppscotch, you can save responses as examples to quickly populate mock routes with realistic data. Examples capture both the request configuration and its actual response, making it easy to convert real API behavior into mock endpoints.`}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`To save a response as an example:`})}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Navigate to the right-sidebar and select the collection with your request`}),`\n`,_jsxs(_components.li,{children:[`Choose the request and click `,_jsx(_components.strong,{children:`“Send”`})]}),`\n`,_jsxs(_components.li,{children:[`In the response section, click the `,_jsx(_components.strong,{children:`“Save as Example”`}),` icon`]}),`\n`,_jsx(_components.li,{children:`The example will be stored in the request’s history within the collection`}),`\n`]}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Using examples in mock servers:`})}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`When creating a mock server from a Collection, each saved example automatically becomes a mock route`}),`\n`,_jsx(_components.li,{children:`Examples preserve the exact response status, headers, and body you received`}),`\n`,_jsx(_components.li,{children:`You can edit examples to adjust the mock response (modify status codes, add headers, introduce delays)`}),`\n`,_jsx(_components.li,{children:`Multiple examples for the same request let you simulate different scenarios (success, errors, edge cases)`}),`\n`]}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Example workflow:`})}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Call your API endpoint and receive a response`}),`\n`,_jsx(_components.li,{children:`Save that response as an example`}),`\n`,_jsx(_components.li,{children:`Create a mock server from the collection`}),`\n`,_jsx(_components.li,{children:`The mock route now returns the exact response you captured`}),`\n`,_jsx(_components.li,{children:`Edit the example to add delays or modify data for testing`}),`\n`]}),`\n`,_jsx(Tip,{children:`Use examples to quickly bootstrap realistic mock data from your actual API, then refine them to test edge cases and failure scenarios.`}),`\n`,_jsx(Heading,{level:`2`,id:`latency-errors-and-headers`,children:`Latency, errors, and headers`}),`\n`,_jsx(_components.p,{children:`Control the realism of your mocks by tuning:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Status: 2xx, 3xx, 4xx, 5xx`}),`\n`,_jsxs(_components.li,{children:[`Headers: `,_jsx(_components.code,{children:`Content-Type`}),`, `,_jsx(_components.code,{children:`Cache-Control`}),`, custom headers`]}),`\n`,_jsx(_components.li,{children:`Delay: Add fixed or ranged latency (for example, 250–1500 ms)`}),`\n`]}),`\n`,_jsx(Tip,{children:`Simulate network timeouts by setting a delay higher than your client’s timeout to test retry logic.`}),`\n`,_jsx(Heading,{level:`2`,id:`using-mocks-with-collections-and-environments`,children:`Using mocks with Collections and Environments`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Save your mock routes alongside requests in a Collection for easy reuse`}),`\n`,_jsxs(_components.li,{children:[`Store the mock server base URL in an Environment, for example `,_jsx(_components.code,{children:`{{MOCK_BASE_URL}}`})]}),`\n`,_jsx(_components.li,{children:`Switch between mock and real backends by toggling the Environment variable`}),`\n`]}),`\n`,_jsx(_components.p,{children:`Example request target:`}),`\n`,_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`{{MOCK_BASE_URL}}/orders?limit=10`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(Heading,{level:`2`,id:`collaboration-and-sharing`,children:`Collaboration and sharing`}),`\n`,_jsx(_components.p,{children:`Mocks live in your workspace, so teammates can:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`View and edit routes and examples`}),`\n`,_jsx(_components.li,{children:`Fork Collections and iterate on contracts`}),`\n`,_jsx(_components.li,{children:`Use the same Environments to keep URLs and tokens in sync`}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`best-practices`,children:`Best practices`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Keep contracts first: define mocks before building the backend`}),`\n`,_jsx(_components.li,{children:`Add negative cases early (400/401/403/409/429/500) to harden clients`}),`\n`,_jsx(_components.li,{children:`Use example names that describe intent (for example, “empty list”, “invalid token”)`}),`\n`,_jsxs(_components.li,{children:[`Centralize variables (for example, `,_jsx(_components.code,{children:`{{MOCK_BASE_URL}}`}),`, `,_jsx(_components.code,{children:`{{REGION}}`}),`) in Environments`]}),`\n`,_jsx(_components.li,{children:`Review and version mocks with your Collection changes`}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`troubleshooting`,children:`Troubleshooting`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`404 from mock: Ensure the method and path match exactly (including base path), and check example matching rules`}),`\n`,_jsx(_components.li,{children:`Wrong example returned: Inspect header/query matchers and example priorities`}),`\n`,_jsxs(_components.li,{children:[`CORS errors in the browser: Add `,_jsx(_components.code,{children:`Access-Control-Allow-Origin: *`}),` (or your origin) to the response headers`]}),`\n`,_jsx(_components.li,{children:`Timeouts: Reduce mock delay or increase your client timeout`}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`faqs`,children:`FAQs`}),`\n`,_jsx(Heading,{level:`3`,id:`how-do-mocks-differ-from-live-endpoints`,children:`How do mocks differ from live endpoints?`}),`\n`,_jsx(_components.p,{children:`Mocks return predefined responses based on your rules. They don’t execute business logic or touch data stores.`}),`\n`,_jsx(Heading,{level:`3`,id:`can-i-generate-mocks-from-my-existing-requests`,children:`Can I generate mocks from my existing requests?`}),`\n`,_jsx(_components.p,{children:`Yes. You can bootstrap routes from saved requests or examples in a Collection and refine them.`}),`\n`,_jsx(Heading,{level:`3`,id:`can-i-parametrize-responses-without-code`,children:`Can I parametrize responses without code?`}),`\n`,_jsx(_components.p,{children:`Yes. Use Hoppscotch variables (UUID, timestamp, and Environment values) directly in response bodies and headers.`}),`\n`,_jsx(Heading,{level:`3`,id:`can-i-self‑host-mock-servers`,children:`Can I self‑host mock servers?`}),`\n`,_jsxs(_components.p,{children:[`Yes. See `,_jsx(_components.a,{href:`/documentation/self-host/getting-started`,children:`Self‑host`}),` for details on deploying Hoppscotch in your own infrastructure.`]}),`\n`,_jsx(Heading,{level:`2`,id:`related`,children:`Related`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/documentation/features/collections`,children:`Collections`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/documentation/features/environments`,children:`Environments`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/documentation/features/variables`,children:`Variables`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/documentation/features/scripts`,children:`Scripts`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/documentation/features/workspaces`,children:`Workspaces`})}),`\n`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"sidebarTitle":"Mock","title":"API Mocking","description":"Create mock servers in Hoppscotch to simulate API endpoints with custom responses, status codes, and latency for prototyping and testing.","href":"/documentation/features/mock"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"What you can do","slug":"what-you-can-do","depth":2,"children":[]},{"title":"Create a mock server","slug":"create-a-mock-server","depth":2,"children":[]},{"title":"Define routes and responses","slug":"define-routes-and-responses","depth":2,"children":[{"title":"Example route","slug":"example-route","depth":3,"children":[]},{"title":"Dynamic responses with variables","slug":"dynamic-responses-with-variables","depth":3,"children":[]}]},{"title":"Save a response as an Example","slug":"save-a-response-as-an-example","depth":2,"children":[]},{"title":"Latency, errors, and headers","slug":"latency-errors-and-headers","depth":2,"children":[]},{"title":"Using mocks with Collections and Environments","slug":"using-mocks-with-collections-and-environments","depth":2,"children":[]},{"title":"Collaboration and sharing","slug":"collaboration-and-sharing","depth":2,"children":[]},{"title":"Best practices","slug":"best-practices","depth":2,"children":[]},{"title":"Troubleshooting","slug":"troubleshooting","depth":2,"children":[]},{"title":"FAQs","slug":"faqs","depth":2,"children":[{"title":"How do mocks differ from live endpoints?","slug":"how-do-mocks-differ-from-live-endpoints","depth":3,"children":[]},{"title":"Can I generate mocks from my existing requests?","slug":"can-i-generate-mocks-from-my-existing-requests","depth":3,"children":[]},{"title":"Can I parametrize responses without code?","slug":"can-i-parametrize-responses-without-code","depth":3,"children":[]},{"title":"Can I self‑host mock servers?","slug":"can-i-self‑host-mock-servers","depth":3,"children":[]}]},{"title":"Related","slug":"related","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"hoppscotch","siteName":"Hoppscotch Documentation","title":"API Mocking - Hoppscotch Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-04-11T04:39:27.691Z","originalFileLocation":"documentation/features/mock.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Create mock servers in Hoppscotch to simulate API endpoints with custom responses, status codes, and latency for prototyping and testing.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Hoppscotch Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/hoppscotch/0ihOcYjw6krFrYtR/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/hoppscotch/0ihOcYjw6krFrYtR/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/hoppscotch/0ihOcYjw6krFrYtR/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/hoppscotch/0ihOcYjw6krFrYtR/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/hoppscotch/0ihOcYjw6krFrYtR/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/hoppscotch/0ihOcYjw6krFrYtR/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/hoppscotch/0ihOcYjw6krFrYtR/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/hoppscotch/0ihOcYjw6krFrYtR/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/hoppscotch/0ihOcYjw6krFrYtR/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"API Mocking - Hoppscotch Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Create mock servers in Hoppscotch to simulate API endpoints with custom responses, status codes, and latency for prototyping and testing.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Hoppscotch Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.hoppscotch.io/documentation/features/mock\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://hoppscotch.mintlify.app/_mintlify/api/og/v2?division=Features\u0026amp;title=API+Mocking\u0026amp;description=Create+mock+servers+in+Hoppscotch+to+simulate+API+endpoints+with+custom+responses%2C+status+codes%2C+and+latency+for+prototyping+and+testing.\u0026amp;theme=4e522b26811728ab4595af2b\u0026amp;signature=a3eeea0faec9ba67772ae0105e91d214d8a3be845db3aa197c19e36d31dcd735\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"API Mocking - Hoppscotch Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Create mock servers in Hoppscotch to simulate API endpoints with custom responses, status codes, and latency for prototyping and testing.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://hoppscotch.mintlify.app/_mintlify/api/og/v2?division=Features\u0026amp;title=API+Mocking\u0026amp;description=Create+mock+servers+in+Hoppscotch+to+simulate+API+endpoints+with+custom+responses%2C+status+codes%2C+and+latency+for+prototyping+and+testing.\u0026amp;theme=4e522b26811728ab4595af2b\u0026amp;signature=a3eeea0faec9ba67772ae0105e91d214d8a3be845db3aa197c19e36d31dcd735\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/hoppscotch/0ihOcYjw6krFrYtR/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Hoppscotch Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0D9373\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.hoppscotch.io/documentation/features/mock\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/documentation/features/mock.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.hoppscotch.io/#organization\",\"name\":\"Hoppscotch Documentation\",\"url\":\"https://docs.hoppscotch.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/hoppscotch/YzZ1u98z3f2mVgzZ/logo/light.svg?fit=max\u0026auto=format\u0026n=YzZ1u98z3f2mVgzZ\u0026q=85\u0026s=b61955a81bc00d70adfa5f8633848cd9\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.hoppscotch.io#website\",\"name\":\"Hoppscotch Documentation\",\"url\":\"https://docs.hoppscotch.io\",\"publisher\":{\"@id\":\"https://docs.hoppscotch.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.hoppscotch.io/documentation/features/mock#webpage\",\"url\":\"https://docs.hoppscotch.io/documentation/features/mock\",\"name\":\"API Mocking\",\"description\":\"Create mock servers in Hoppscotch to simulate API endpoints with custom responses, status codes, and latency for prototyping and testing.\",\"dateModified\":\"2026-04-11T04:39:27.691Z\",\"isPartOf\":{\"@id\":\"https://docs.hoppscotch.io#website\"},\"breadcrumb\":{\"@id\":\"https://docs.hoppscotch.io/documentation/features/mock#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.hoppscotch.io/documentation/features/mock#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Features\",\"item\":\"https://docs.hoppscotch.io/documentation/features/workspaces\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"API Mocking\",\"item\":\"https://docs.hoppscotch.io/documentation/features/mock\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.hoppscotch.io/documentation/features/mock#article\",\"headline\":\"API Mocking\",\"name\":\"API Mocking\",\"description\":\"Create mock servers in Hoppscotch to simulate API endpoints with custom responses, status codes, and latency for prototyping and testing.\",\"url\":\"https://docs.hoppscotch.io/documentation/features/mock\",\"mainEntityOfPage\":{\"@id\":\"https://docs.hoppscotch.io/documentation/features/mock#webpage\"},\"dateModified\":\"2026-04-11T04:39:27.691Z\",\"publisher\":{\"@id\":\"https://docs.hoppscotch.io/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.hoppscotch.io#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Hoppscotch Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Hoppscotch Documentation","nav":{"global":null,"anchors":[{"anchor":"Documentation","icon":"lines-leaning","groups":[{"group":"Getting started","pages":[{"sidebarTitle":"Introduction","title":"Introduction to Hoppscotch","href":"/documentation/getting-started/introduction"},{"sidebarTitle":"Quick start","title":"Quick start","href":"/documentation/getting-started/quick-start"},{"sidebarTitle":"Clients","title":"Hoppscotch Clients","href":"/documentation/getting-started/clients"},{"sidebarTitle":"Setup","title":"Setup Hoppscotch","href":"/documentation/getting-started/setup"},{"sidebarTitle":"Troubleshooting","title":"Troubleshooting","href":"/documentation/getting-started/troubleshooting"},{"group":"RESTful API","pages":[{"sidebarTitle":"Creating a request","title":"Creating a request","href":"/documentation/getting-started/rest/creating-a-request"},{"sidebarTitle":"Response handling","title":"Response handling","href":"/documentation/getting-started/rest/response-handling"},{"sidebarTitle":"Request parameters","title":"Request parameters","href":"/documentation/getting-started/rest/request-parameters"},{"sidebarTitle":"Request headers","title":"Request headers","href":"/documentation/getting-started/rest/request-headers"},{"sidebarTitle":"Organizing requests","title":"Organizing requests","href":"/documentation/getting-started/rest/organizing-requests"},{"sidebarTitle":"Environment variables","title":"Environment variables","href":"/documentation/getting-started/rest/environment-variables"},{"sidebarTitle":"Using auth tokens","title":"Using auth tokens","href":"/documentation/getting-started/rest/auth-tokens"},{"sidebarTitle":"Uploading data","title":"Uploading data","href":"/documentation/getting-started/rest/uploading-data"},{"sidebarTitle":"Pre-request scripts","title":"Pre-request scripts","href":"/documentation/getting-started/rest/pre-request-scripts"},{"sidebarTitle":"Tests","title":"Tests","href":"/documentation/getting-started/rest/tests"}]},{"group":"GraphQL API","pages":[{"sidebarTitle":"Running a simple query","title":"Running a simple query","href":"/documentation/getting-started/graphql/creating-a-query"},{"sidebarTitle":"Using variables","title":"Using variables in a GraphQL query","href":"/documentation/getting-started/graphql/using-variables"}]},{"group":"Realtime API","pages":[{"sidebarTitle":"Websocket","title":"Websocket","href":"/documentation/getting-started/realtime/websocket"},{"sidebarTitle":"Socket.IO","title":"Socket.IO","href":"/documentation/getting-started/realtime/socket-io"},{"sidebarTitle":"SSE","title":"Server-Sent Events","href":"/documentation/getting-started/realtime/sse"},{"sidebarTitle":"MQTT","title":"MQTT","href":"/documentation/getting-started/realtime/mqtt"}]}]},{"group":"Clients","pages":[{"group":"Desktop","pages":[{"sidebarTitle":"Overview","title":"Hoppscotch Desktop App","href":"/documentation/clients/desktop/overview"},{"sidebarTitle":"Setup","title":"Connect to Hoppscotch","href":"/documentation/clients/desktop/setup"}]},{"group":"Web","pages":[{"sidebarTitle":"Overview","title":"Hoppscotch Web App","href":"/documentation/clients/web/overview"},{"sidebarTitle":"Progressive Web App","title":"Hoppscotch Progressive Web App","href":"/documentation/clients/web/pwa"}]},{"group":"CLI","pages":[{"sidebarTitle":"Overview","title":"Hoppscotch CLI","href":"/documentation/clients/cli/overview"},{"sidebarTitle":"Troubleshooting","title":"Hoppscotch CLI Troubleshooting","href":"/documentation/clients/cli/troubleshooting"}]},{"group":"MCP server","pages":[{"sidebarTitle":"Overview","title":"Hoppscotch MCP Server","href":"/documentation/clients/mcp-server/overview"},{"sidebarTitle":"Tools","title":"Hoppscotch MCP Server Tools","href":"/documentation/clients/mcp-server/tools"},{"sidebarTitle":"Troubleshooting","title":"Hoppscotch MCP Server Troubleshooting","href":"/documentation/clients/mcp-server/troubleshooting"}]}]},{"group":"Protocols","pages":[{"sidebarTitle":"RESTful","title":"RESTful","href":"/documentation/protocols/rest"},{"sidebarTitle":"GraphQL","title":"GraphQL","href":"/documentation/protocols/graphql"},{"sidebarTitle":"Realtime","title":"Realtime","href":"/documentation/protocols/realtime"}]},{"group":"Features","pages":[{"sidebarTitle":"Workspaces","title":"Workspaces","href":"/documentation/features/workspaces"},{"sidebarTitle":"Collections","title":"Collections","href":"/documentation/features/collections"},{"sidebarTitle":"Runner","title":"Runner","href":"/documentation/features/runner"},{"sidebarTitle":"Variables","title":"Variables","href":"/documentation/features/variables"},{"sidebarTitle":"Environments","title":"Environments","href":"/documentation/features/environments"},{"sidebarTitle":"Personal Access Token","title":"Personal Access Token","href":"/documentation/features/pat"},{"sidebarTitle":"History","title":"History","href":"/documentation/features/history"},{"sidebarTitle":"Spotlight","title":"Spotlight","href":"/documentation/features/spotlight"},{"sidebarTitle":"Shortcuts","title":"Shortcuts","href":"/documentation/features/shortcuts"},{"sidebarTitle":"Scripts","title":"Scripts","href":"/documentation/features/scripts"},{"sidebarTitle":"Importer","title":"Importer","href":"/documentation/features/importer"},{"sidebarTitle":"Customization","title":"Customization","href":"/documentation/features/customization"},{"sidebarTitle":"Inspections","title":"Inspections","href":"/documentation/features/inspections"},{"sidebarTitle":"Cookies","title":"Cookies","href":"/documentation/features/cookies"},{"sidebarTitle":"Client Certificate","title":"Client Certificate","href":"/documentation/features/client-certificate"},{"sidebarTitle":"Code Snippets","title":"Code Snippets","href":"/documentation/features/snippets"},{"sidebarTitle":"Interceptor","title":"Interceptor","href":"/documentation/features/interceptor"},{"sidebarTitle":"Context Menu","title":"Context Menu","href":"/documentation/features/context-menu"},{"sidebarTitle":"Widgets","title":"Widgets","href":"/documentation/features/widgets"},{"sidebarTitle":"Authorization","title":"Authorization","href":"/documentation/features/authorization"},{"sidebarTitle":"AI Features","title":"AI Features","description":"Use AI-powered features in Hoppscotch to rename requests, generate payloads, write scripts and tests, and use the experimental AI Assistant.","href":"/documentation/features/ai-features"},{"sidebarTitle":"Mock","title":"API Mocking","href":"/documentation/features/mock"},{"sidebarTitle":"Documentation","title":"API Documentation","description":"Generate API documentation from your Hoppscotch collections with code samples, Markdown descriptions, and shareable public URLs for your team.","href":"/documentation/features/documentation"},{"sidebarTitle":"RESTful API","title":"RESTful API Testing","href":"/documentation/features/rest-api-testing"},{"sidebarTitle":"GraphQL API","title":"GraphQL API Testing","href":"/documentation/features/graphql-api-testing"},{"sidebarTitle":"Realtime API","title":"Realtime API Testing","href":"/documentation/features/realtime-api-testing"}]},{"group":"Self-Host","pages":[{"sidebarTitle":"Getting started","title":"Getting started with self-hosting","href":"/documentation/self-host/getting-started"},{"group":"Community Edition","pages":[{"sidebarTitle":"Getting started","title":"Getting started with Community Edition","href":"/documentation/self-host/community-edition/getting-started"},{"sidebarTitle":"Prerequisites","title":"Community Edition prerequisites","href":"/documentation/self-host/community-edition/prerequisites"},{"sidebarTitle":"Install and build","title":"Install and build Community Edition","href":"/documentation/self-host/community-edition/install-and-build"},{"sidebarTitle":"Setup and access","title":"Set up and access Community Edition","href":"/documentation/self-host/community-edition/setup-and-access"},{"sidebarTitle":"Admin dashboard","title":"Community Edition admin dashboard","href":"/documentation/self-host/community-edition/admin-dashboard"},{"sidebarTitle":"Deploy and upgrade","title":"Deploy and upgrade Community Edition","href":"/documentation/self-host/community-edition/deploy-and-upgrade"},{"sidebarTitle":"Telemetry","title":"Community Edition telemetry","href":"/documentation/self-host/community-edition/telemetry"}]},{"group":"Enterprise Edition","pages":[{"sidebarTitle":"Getting started","title":"Getting started with Enterprise Edition","href":"/documentation/self-host/enterprise-edition/getting-started"},{"sidebarTitle":"Prerequisites","title":"Enterprise Edition prerequisites","href":"/documentation/self-host/enterprise-edition/prerequisites"},{"sidebarTitle":"Install and build","title":"Install and build Enterprise Edition","href":"/documentation/self-host/enterprise-edition/install-and-build"},{"sidebarTitle":"Setup and access","title":"Set up and access Enterprise Edition","href":"/documentation/self-host/enterprise-edition/setup-and-access"},{"sidebarTitle":"Admin dashboard","title":"Enterprise Edition admin dashboard","href":"/documentation/self-host/enterprise-edition/admin-dashboard"},{"sidebarTitle":"User provisioning","title":"SCIM Integration for User and Group Provisioning","href":"/documentation/self-host/enterprise-edition/user-provisioning"},{"sidebarTitle":"Activity logs","title":"Activity logs","href":"/documentation/self-host/enterprise-edition/activity-logs"},{"sidebarTitle":"User groups","title":"User groups","href":"/documentation/self-host/enterprise-edition/user-groups"},{"sidebarTitle":"AI Assistant","title":"AI Assistant","href":"/documentation/self-host/enterprise-edition/ai-assistant"},{"sidebarTitle":"Observability","title":"Observability","href":"/documentation/self-host/enterprise-edition/observability"},{"sidebarTitle":"Deploy and upgrade","title":"Deploy and upgrade Enterprise Edition","href":"/documentation/self-host/enterprise-edition/deploy-and-upgrade"},{"sidebarTitle":"Telemetry","title":"Enterprise Edition telemetry","href":"/documentation/self-host/enterprise-edition/telemetry"}]}]},{"group":"Resources","pages":[{"sidebarTitle":"Community","title":"Hoppscotch community","href":"/documentation/community"},{"sidebarTitle":"Contributors","title":"Contributors","href":"/documentation/contributors"},{"sidebarTitle":"Changelog","title":"Changelog","href":"/documentation/changelog"},{"sidebarTitle":"Develop","title":"Develop","href":"/documentation/develop"},{"sidebarTitle":"i18n","title":"i18n","href":"/documentation/i18n"}]}]},{"anchor":"Guides","icon":"check-double","pages":[{"title":"Guides","href":"/guides/getting-started/introduction"}]},{"anchor":"Support","icon":"question","pages":[{"title":"Support","href":"/support/getting-started/introduction"}]},{"anchor":"Download","icon":"angles-down","href":"https://hoppscotch.com/download"},{"anchor":"Blog","icon":"quote-left","href":"https://hoppscotch.com/blog"},{"anchor":"Changelog","icon":"shapes","href":"https://github.com/hoppscotch/hoppscotch/releases"}]},"title":"API Mocking - Hoppscotch Documentation","buildId":"dpl_EnxDqhjaNc9a8MVa833TGULPd9uJ","deploymentId":"dpl_EnxDqhjaNc9a8MVa833TGULPd9uJ","dynamics":[],"chunks":[]}