Package Exports
- @scalar/api-client
- @scalar/api-client/components
- @scalar/api-client/components/AddressBar
- @scalar/api-client/components/CodeInput
- @scalar/api-client/components/CommandPalette
- @scalar/api-client/components/DataTable
- @scalar/api-client/components/HttpMethod
- @scalar/api-client/components/ImportCollection
- @scalar/api-client/components/Server
- @scalar/api-client/components/Sidebar
- @scalar/api-client/components/ViewLayout
- @scalar/api-client/hooks
- @scalar/api-client/layouts/App
- @scalar/api-client/layouts/Modal
- @scalar/api-client/layouts/Web
- @scalar/api-client/libs
- @scalar/api-client/libs/importers
- @scalar/api-client/libs/send-request
- @scalar/api-client/plugins
- @scalar/api-client/store
- @scalar/api-client/style.css
- @scalar/api-client/types
- @scalar/api-client/v2/blocks/operation-code-sample
- @scalar/api-client/v2/blocks/scalar-address-bar-block
- @scalar/api-client/v2/blocks/scalar-auth-selector-block
- @scalar/api-client/v2/blocks/scalar-operation-block
- @scalar/api-client/v2/blocks/scalar-response-block
- @scalar/api-client/views/Components/CodeSnippet
- @scalar/api-client/views/Request/RequestSection
- @scalar/api-client/views/Request/RequestSection/RequestAuth
- @scalar/api-client/views/Request/ResponseSection
- @scalar/api-client/views/Request/components
- @scalar/api-client/views/Request/consts
- @scalar/api-client/views/Request/libs
- @scalar/api-client/views/Request/types
Readme
Scalar API Client
The Scalar API Client is a powerful tool designed to simplify API testing and integration. This versatile package offers multiple usage options:
- standalone application for quick and easy API testing
- embeddable component in various frontend environments
- customizable module that can be integrated into existing projects
Features
- Intuitive interface for sending API requests and viewing responses
- Support for multiple authentication methods
- Real-time request/response logging
- Customizable request headers and parameters
- Response visualization and formatting options
Installation
npm install @scalar/api-clientUsage
App
You can mount the full-blown API Client to your DOM like this:
<!-- index.html -->
<!doctype html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta
      name="viewport"
      content="width=device-width, initial-scale=1.0" />
    <title>Scalar API Client App</title>
  </head>
  <body>
    <div
      id="scalar-client"
      class="scalar-app scalar-client"></div>
    <script
      type="module"
      src="./main.js"></script>
  </body>
</html>// main.js
import { createApiClientApp } from '@/App'
// Initialize
await createApiClientApp(document.getElementById('scalar-client'), {
  url: 'https://registry.scalar.com/@scalar/apis/galaxy/latest?format=json',
  proxyUrl: 'https://proxy.scalar.com',
})Modal
Or you can mount a more compact version, which is living in a modal:
// main.js
import { createApiClientApp } from '@/App'
// Initialize
const { open } = await createApiClientApp(
  document.getElementById('scalar-client'),
  {
    url: 'https://registry.scalar.com/@scalar/apis/galaxy/latest?format=json',
    proxyUrl: 'https://proxy.scalar.com',
  },
)
// Open the API client right-away
open()
// Or: Open a specific operation
// open({
//   method: 'GET',
//   path: '/me',
// })Configuration
/** Configuration options for the Scalar API client */
export type ClientConfiguration = {
  /** The Swagger/OpenAPI document to render */
  spec: SourceConfiguration
  /** Pass in a proxy to the API client */
  proxyUrl?: string
  /** Pass in a theme API client */
  themeId?: string
  /** Whether to show the sidebar */
  showSidebar?: boolean
  /** Whether dark mode is on or off initially (light mode) */
  // darkMode?: boolean
  /** Key used with CTRL/CMD to open the search modal (defaults to 'k' e.g. CMD+k) */
  searchHotKey?:
    | 'a'
    | 'b'
    | 'c'
    | 'd'
    | 'e'
    | 'f'
    | 'g'
    | 'h'
    | 'i'
    | 'j'
    | 'k'
    | 'l'
    | 'm'
    | 'n'
    | 'o'
    | 'p'
    | 'q'
    | 'r'
    | 's'
    | 't'
    | 'u'
    | 'v'
    | 'w'
    | 'x'
    | 'y'
    | 'z'
}Available Methods
The following methods are returned from the createApiClientModal call:
open
Opens the modal while allowing you to select which request to open to
open({ path: string; method: RequestMethod })updateConfig
Allows you to update the config at any time, this will clear your current state and re-import a fresh spec!
updateConfig(newConfig: ClientConfiguration, mergeConfigs?: boolean): voidCommunity
We are API nerds. You too? Let's chat on Discord: https://discord.gg/scalar
License
The source code in this repository is licensed under MIT.