Scalar
App · Utilities · 9 actions
Work with API documentation from a workflow. Scalar is the open-source API documentation platform behind the docs of FastAPI, Hono, NestJS, .NET and thousands of APIs. Fetch any public API document from the Scalar Registry or a public address; list its operations the way its docs do; read one operation in full - parameters, request body, responses, examples and a curl command - or one of its models; save a document as a JSON or YAML file; get a public JSON Schema; share a document as interactive docs for a week; build a standalone API reference page to host anywhere; and send a test request to Scalar's request mirror to see what a workflow really sends. No account or API key required.
Actions
| Action | What it does |
|---|---|
| Create an API reference page | Build a standalone web page that renders an OpenAPI or AsyncAPI document as Scalar's interactive API reference - the same page Scalar's own server integrations serve - ready to upload to any static host, attach to an email or publish from a later step. |
| Get a JSON Schema | Fetch a public JSON Schema from the Scalar Registry - the shared models teams publish there to reference from their APIs - with its title, its properties and which are required, and the address to put in a $ref or $schema. |
| Get a model | Read one of an API's models - the named schemas its docs list under Models - property by property: each one's type, format, description and example, which are required, read-only or write-only, and the values an enum allows. |
| Get an API document | Fetch an API's OpenAPI or AsyncAPI document from the Scalar Registry - or from any public address that serves one as JSON - and get back the whole document alongside what its docs open with: the title and version, the description, the servers, the tags, how many operations and models it has, its security schemes, and the Registry addresses of the document as JSON and YAML. |
| Get an operation | Read everything an API's docs say about one operation: its summary and description, the servers it is called on, the credentials it takes, each parameter with its type and an example, the request body and every response with their schemas and examples, and a ready-to-run curl command written the way Scalar's own code sample writes it. |
| List an API's operations | List the operations an API's docs show - method, path, operationId, summary, tags, whether each needs credentials and which, its parameters and the status codes it documents - in the document's order, the way Scalar's API Reference reads it: operations the document hides are left out. |
| Save an API document as a file | Save an API's document from the Scalar Registry as a JSON or YAML file, written by the Registry itself, so a later step can commit it to a repository, attach it to an email, upload it to storage or feed it to a code generator. |
| Send a test request | Send a request to Scalar's request mirror and get back exactly what arrived: the method and path, the query values, every header, the cookies, the body as the server parsed it, and any bearer token or username and password it found in the Authorization header. |
| Share an API reference for a week | Turn an OpenAPI or AsyncAPI document into interactive API docs on Scalar and get back a link anyone can open - searchable, with every endpoint, model and a 'Test Request' button - without an account. |
Create an API reference page
Build a standalone web page that renders an OpenAPI or AsyncAPI document as Scalar's interactive API reference - the same page Scalar's own server integrations serve - ready to upload to any static host, attach to an email or publish from a later step. Pick a theme and layout, dark mode, a title and custom CSS, and whether to show models, operation IDs and the 'Test Request' button. A document given by address is loaded fresh each time the page is opened; one given as a file or text is written into the page. Nothing is sent anywhere to build it. No account or API key required.
Inputs
- API document
documenttextRequired - The OpenAPI or AsyncAPI document, in JSON or YAML: upload the file, paste its text, use a document or file from an earlier step, give its public address, or name it in the Scalar Registry as @namespace/name.
- Page title
titletext - Optional. The title in the browser tab. The API's own title for a document given as a file or text, otherwise 'API Reference'.
- Theme
themetext - The color theme. Scalar's default by default.One of:
default,alternate,moon,purple,solarized,bluePlanet(Blue Planet),saturn,kepler,mars,deepSpace(Deep Space),laserwave,none(No theme). Default:default. - Layout
layouttext - Modern, the default, or Classic, which is laid out like Swagger UI.One of:
modern,classic. Default:modern. - Dark mode
dark_modetrue/false - Optional. Open the page in dark mode.Default:
false. - Hide models
hide_modelstrue/false - Optional. Leave the Models section out.Default:
false. - Hide the Test Request button
hide_test_request_buttontrue/false - Optional. Leave out the button that sends a request from the page, for docs that should only be read.Default:
false. - Show operation IDs
show_operation_idtrue/false - Optional. Show each operation's operationId.Default:
false. - Open every tag
open_all_tagstrue/false - Optional. Start with every tag's operations shown, rather than only the first tag's.Default:
false. - Custom CSS
custom_csstext - Optional. CSS to add to the page, e.g. to set Scalar's --scalar-color-accent to your brand color.
- Return as
outputtext - An HTML file, the default, or the page's HTML as text in the result.One of:
file(An HTML file),text(Text in the result). Default:file. - File name
filenametext - Optional. The name to save the file under. Made from the page title by default, e.g. 'scalar-galaxy.html'.
Outputs
content_typetext- The saved file's media type.
document_reftext- The saved page's reference, to upload, attach or store it in a later step. Null when it was asked for as text.
document_urltext- The address the page loads the document from. Null when the document is written into the page.
documentslist- The saved file, as a one-item list.
download_urltext- Where Lodol serves the saved file.
embeddedtrue/false- True when the document is written into the page, so the page works on its own.
filenametext- The name the file was saved under.
htmltext- The page's HTML, when it was asked for as text. Null when it was saved as a file.
layouttext- Its layout: 'modern' or 'classic'.
outputtext- How the page came back: 'file' or 'text'.
size_bytesnumber- The page's size in bytes.
themetext- The theme it uses.
titletext- The page's title.
Example output
{
"content_type": "text/html",
"document_ref": "doc_9c2b7e4f1a6d4c3b8e5f0a1b2c3d4e5f",
"document_url": null,
"documents": [
{
"content_type": "text/html",
"document_ref": "doc_9c2b7e4f1a6d4c3b8e5f0a1b2c3d4e5f",
"filename": "scalar-galaxy.html",
"size_bytes": 61920,
"url": "/actions/core/serve-document/doc_9c2b7e4f1a6d4c3b8e5f0a1b2c3d4e5f"
}
],
"download_url": "/actions/core/serve-document/doc_9c2b7e4f1a6d4c3b8e5f0a1b2c3d4e5f",
"embedded": true,
"filename": "scalar-galaxy.html",
"html": null,
"layout": "modern",
"output": "file",
"size_bytes": 61920,
"theme": "purple",
"title": "Scalar Galaxy"
}Get a JSON Schema
Fetch a public JSON Schema from the Scalar Registry - the shared models teams publish there to reference from their APIs - with its title, its properties and which are required, and the address to put in a $ref or $schema. Validate data against it in a later step, or check it for changes. No account or API key required.
Inputs
- Schema
schematextRequired - The schema in the Scalar Registry, as @namespace/name - such as '@scalar/config', the schema of Scalar's own configuration file - or its registry address.
- Version
versiontext - Optional. The version to read, such as '1.0.0', or the start of a sha, six characters or more. Leave blank for the current version.
Outputs
descriptiontext- What it describes.
dialecttext- The JSON Schema version it is written for ($schema).
nametext- Its name within the namespace.
namespacetext- The namespace it is published under.
property_nameslist- Its top-level properties.
requiredlist- The properties that must be present.
schemaobject- The whole schema, as published.
schema_idtext- Its $id, when it declares one.
schema_reftext- The schema's name, as @namespace/name.
titletext- The schema's title.
typetext- Its type, usually 'object'.
urltext- Its Registry address - what to put in a $ref or a $schema to use it.
version_requestedtext- The version that was asked for. Null when the current version was read.
Example output
{
"description": "The configuration of a Scalar Docs site.",
"dialect": "https://json-schema.org/draft/2020-12/schema",
"name": "config",
"namespace": "scalar",
"property_names": [
"$schema",
"scalar",
"info",
"navigation"
],
"required": [
"scalar"
],
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"scalar"
],
"title": "Scalar Docs configuration",
"type": "object"
},
"schema_id": null,
"schema_ref": "@scalar/config",
"title": "Scalar Docs configuration",
"type": "object",
"url": "https://registry.scalar.com/@scalar/schemas/config",
"version_requested": null
}Get a model
Read one of an API's models - the named schemas its docs list under Models - property by property: each one's type, format, description and example, which are required, read-only or write-only, and the values an enum allows. Comes with the full schema and an example object built the way the docs build one: the thing to hand a step that generates test data or validates a payload. No account or API key required.
Inputs
- API
apitextRequired - The API to read: its name in the Scalar Registry as @namespace/name, such as '@scalar/galaxy' - the two parts of its registry address - or that address itself. The public address of any OpenAPI document in JSON works too, such as https://petstore3.swagger.io/api/v3/openapi.json.
- Model
modeltextRequired - The model's name, such as 'Planet'. Chain it from 'model_names' in 'Get an API document', or from a response's 'schema_name'.
- Version
versiontext - Optional. For an API in the Scalar Registry, the version to read: a version such as '1.2.0', 'latest' for the newest, or the start of a commit or content sha, six characters or more. Leave blank for the current version.
Outputs
apitext- The API that was read: its name in the Scalar Registry, such as '@scalar/galaxy', or the address it was fetched from. Chain it into the next step's API field.
descriptiontext- What the document says it is.
exampleobject- An example of the whole model, built the way the docs build one.
nametext- The model's name.
propertieslist- Its properties, in the order the docs show them.
property_countnumber- How many properties it has.
requiredlist- The properties that must be present.
schemaobject- The JSON Schema, with the models it refers to written out in place a few levels deep. A reference that loops back on itself, or goes deeper, is left as its $ref.
titletext- Its title, when it gives one.
typetext- Its type, usually 'object'.
Example output
{
"api": "@scalar/galaxy",
"description": "A planet in the Scalar Galaxy",
"example": {
"description": "The red planet",
"id": 1,
"name": "Mars"
},
"name": "Planet",
"properties": [
{
"default": null,
"deprecated": false,
"description": null,
"enum": null,
"example": 1,
"format": "int64",
"name": "id",
"nullable": false,
"read_only": true,
"required": true,
"type": "integer",
"write_only": false
},
{
"default": null,
"deprecated": false,
"description": null,
"enum": null,
"example": "Mars",
"format": null,
"name": "name",
"nullable": false,
"read_only": false,
"required": true,
"type": "string",
"write_only": false
}
],
"property_count": 2,
"required": [
"id",
"name"
],
"schema": {
"description": "A planet in the Scalar Galaxy",
"properties": {
"description": {
"examples": [
"The red planet"
],
"type": [
"string",
"null"
]
},
"id": {
"examples": [
1
],
"format": "int64",
"readOnly": true,
"type": "integer"
},
"name": {
"examples": [
"Mars",
"Jupiter"
],
"type": "string"
}
},
"required": [
"id",
"name"
],
"type": "object"
},
"title": null,
"type": "object"
}Get an API document
Fetch an API's OpenAPI or AsyncAPI document from the Scalar Registry - or from any public address that serves one as JSON - and get back the whole document alongside what its docs open with: the title and version, the description, the servers, the tags, how many operations and models it has, its security schemes, and the Registry addresses of the document as JSON and YAML. The step to start from when a workflow checks an API for changes, catalogues it, or hands it to an AI step. No account or API key required.
Inputs
- API
apitextRequired - The API to read: its name in the Scalar Registry as @namespace/name, such as '@scalar/galaxy' - the two parts of its registry address - or that address itself. The public address of any OpenAPI document in JSON works too, such as https://petstore3.swagger.io/api/v3/openapi.json.
- Version
versiontext - Optional. For an API in the Scalar Registry, the version to read: a version such as '1.2.0', 'latest' for the newest, or the start of a commit or content sha, six characters or more. Leave blank for the current version.
Outputs
apitext- The API that was read: its name in the Scalar Registry, such as '@scalar/galaxy', or the address it was fetched from. Chain it into the next step's API field.
descriptiontext- The API's full description - often several paragraphs of Markdown.
documentobject- The whole document, as JSON - to hand to an AI step, save, or compare with an earlier copy.
formattext- What kind of document it is: 'openapi' (OpenAPI 3), 'swagger' (Swagger 2.0) or 'asyncapi'.
json_urltext- The Registry address of the document as JSON - what an API Reference, a code generator or an HTTP step can be pointed at.
model_countnumber- How many models the docs list.
model_nameslist- The models' names, as 'Get a model' takes them.
nametext- Its name in the Registry, within the namespace. Null for a document read from an address outside the Registry.
namespacetext- The Registry namespace it is published under - the team's handle. Null for a document read from an address outside the Registry.
operation_countnumber- How many operations the docs list. Hidden ones are not counted.
path_countnumber- How many paths those operations are under - or, for an AsyncAPI document, how many channels.
security_schemeslist- The names of the ways the API can be authenticated, e.g. 'bearerAuth'.
serverslist- The addresses the API is served at, with any variables set to their defaults.
spec_versiontext- The version of the specification it is written in, e.g. '3.1.1' or '2.0'.
summarytext- The first paragraph of the description, on one line.
tagslist- The tags the docs group operations under, in the order they show them. Hidden tags are left out.
titletext- The API's title, as its document gives it.
urltext- The address the document was read from.
versiontext- The version the document gives itself (info.version).
version_requestedtext- The Registry version that was asked for: a version, 'latest', or the start of a sha. Null when the current version was read.
webhook_countnumber- How many webhooks the document describes.
yaml_urltext- The Registry address of the same document as YAML.
Example output
{
"api": "@scalar/galaxy",
"description": "The Scalar Galaxy is an example OpenAPI document to test OpenAPI tools and libraries.\n\n## Resources\n\n* https://github.com/scalar/scalar",
"document": {
"info": {
"title": "Scalar Galaxy",
"version": "0.7.1"
},
"openapi": "3.1.1",
"paths": {
"/planets": {
"get": {
"operationId": "getAllData",
"summary": "Get all planets"
}
}
},
"servers": [
{
"url": "https://galaxy.scalar.com"
}
]
},
"format": "openapi",
"json_url": "https://registry.scalar.com/@scalar/apis/galaxy?format=json",
"model_count": 7,
"model_names": [
"User",
"Credentials",
"Token",
"CelestialBody",
"Planet",
"Satellite",
"PaginatedResource"
],
"name": "galaxy",
"namespace": "scalar",
"operation_count": 10,
"path_count": 7,
"security_schemes": [
"bearerAuth",
"basicAuth",
"apiKeyHeader"
],
"servers": [
"https://galaxy.scalar.com"
],
"spec_version": "3.1.1",
"summary": "The Scalar Galaxy is an example OpenAPI document to test OpenAPI tools and libraries.",
"tags": [
"Authentication",
"Planets",
"Celestial Bodies"
],
"title": "Scalar Galaxy",
"url": "https://registry.scalar.com/@scalar/apis/galaxy?format=json",
"version": "0.7.1",
"version_requested": null,
"webhook_count": 1,
"yaml_url": "https://registry.scalar.com/@scalar/apis/galaxy?format=yaml"
}Get an operation
Read everything an API's docs say about one operation: its summary and description, the servers it is called on, the credentials it takes, each parameter with its type and an example, the request body and every response with their schemas and examples, and a ready-to-run curl command written the way Scalar's own code sample writes it. Name it by operationId, or as METHOD /path. The detail to hand an AI step writing a client, a test or a changelog entry. No account or API key required.
Inputs
- API
apitextRequired - The API to read: its name in the Scalar Registry as @namespace/name, such as '@scalar/galaxy' - the two parts of its registry address - or that address itself. The public address of any OpenAPI document in JSON works too, such as https://petstore3.swagger.io/api/v3/openapi.json.
- Operation
operationtextRequired - The operation: its operationId, such as 'getPlanet', or its method and path, such as 'GET /planets/{planetId}'. Chain it from 'operation_names' in 'List an API's operations'.
- Version
versiontext - Optional. For an API in the Scalar Registry, the version to read: a version such as '1.2.0', 'latest' for the newest, or the start of a commit or content sha, six characters or more. Leave blank for the current version.
Outputs
apitext- The API that was read: its name in the Scalar Registry, such as '@scalar/galaxy', or the address it was fetched from. Chain it into the next step's API field.
authlist- Each security scheme that can authorize it, described: its type ('http', 'apiKey', 'oauth2' or 'openIdConnect'), the HTTP scheme, where an API key goes and under what name, and the scopes asked for.
auth_schemeslist- The names of the security schemes that can authorize it, any one of which will do. Empty when it needs no credentials.
code_sampleslist- Code samples the document carries itself (x-codeSamples), which the docs show first.
curltext- A curl command for it, with the examples filled in and YOUR_SECRET_TOKEN where a credential goes.
deprecatedtrue/false- True when the document marks it deprecated.
descriptiontext- Its full description, often Markdown.
methodtext- The HTTP method, in capitals, e.g. 'GET'.
nametext- The operation as this step names it: its operationId, or METHOD /path.
operation_idtext- The operation's operationId. Null when it has none.
parameterslist- Its path, query, header and cookie parameters, the path's and its own together.
pathtext- The path, with its parameters in braces, e.g. '/planets/{planetId}'.
request_bodyobject- What it takes in its body. Null when it takes nothing.
responseslist- Every response it documents, in order.
serverslist- The addresses it is called on - its own, its path's or the API's - with variables set to their defaults.
stabilitytext- The stability badge the docs show: 'stable', 'experimental' or 'deprecated'. Null when there is none.
summarytext- Its one-line summary. Null when it has none.
tagslist- The tags it is filed under.
titletext- The title the docs show for it: its summary, or its path when it has none.
Example output
{
"api": "@scalar/galaxy",
"auth": [],
"auth_schemes": [],
"code_samples": [],
"curl": "curl https://galaxy.scalar.com/planets/1",
"deprecated": false,
"description": "You'll better learn a little bit more about the planets. It might come in handy once space travel is available for everyone.",
"method": "GET",
"name": "getPlanet",
"operation_id": "getPlanet",
"parameters": [
{
"default": null,
"deprecated": false,
"description": "The ID of the planet to get",
"enum": null,
"example": 1,
"format": "int64",
"in": "path",
"name": "planetId",
"required": true,
"schema": {
"examples": [
1
],
"format": "int64",
"type": "integer"
},
"type": "integer"
}
],
"path": "/planets/{planetId}",
"request_body": null,
"responses": [
{
"content_type": "application/json",
"content_types": [
"application/json",
"application/xml"
],
"description": "Planet Found",
"example": {
"description": "The red planet",
"id": 1,
"name": "Mars"
},
"headers": [],
"schema": {
"description": "A planet in the Scalar Galaxy",
"properties": {
"description": {
"examples": [
"The red planet"
],
"type": [
"string",
"null"
]
},
"id": {
"examples": [
1
],
"format": "int64",
"readOnly": true,
"type": "integer"
},
"name": {
"examples": [
"Mars",
"Jupiter"
],
"type": "string"
}
},
"required": [
"id",
"name"
],
"type": "object"
},
"schema_name": "Planet",
"status": "200"
}
],
"servers": [
"https://galaxy.scalar.com"
],
"stability": null,
"summary": "Get a planet",
"tags": [
"Planets"
],
"title": "Get a planet"
}List an API's operations
List the operations an API's docs show - method, path, operationId, summary, tags, whether each needs credentials and which, its parameters and the status codes it documents - in the document's order, the way Scalar's API Reference reads it: operations the document hides are left out. Narrow it to a tag, a method or some text, a page at a time. The way to build an endpoint inventory, find what changed between versions, or loop over every endpoint. No account or API key required.
Inputs
- API
apitextRequired - The API to read: its name in the Scalar Registry as @namespace/name, such as '@scalar/galaxy' - the two parts of its registry address - or that address itself. The public address of any OpenAPI document in JSON works too, such as https://petstore3.swagger.io/api/v3/openapi.json.
- Version
versiontext - Optional. For an API in the Scalar Registry, the version to read: a version such as '1.2.0', 'latest' for the newest, or the start of a commit or content sha, six characters or more. Leave blank for the current version.
- Tag
tagtext - Optional. Only operations filed under this tag, e.g. 'Planets'. Case does not matter; a tag the API does not have is an error that lists the ones it does.
- Method
methodtext - Optional. Only operations with this HTTP method.One of:
GET,PUT,POST,DELETE,OPTIONS,HEAD,PATCH,TRACE,QUERY. - Text to look for
searchtext - Optional. Only operations whose path, operationId, summary or description contains this text. Case does not matter.
- Limit
limitnumber - How many operations to return at most, from 1 to 500. 100 by default. The totals come back with them, so a cut-off is visible.From 1 to 500. Default:
100.
Outputs
apitext- The API that was read: its name in the Scalar Registry, such as '@scalar/galaxy', or the address it was fetched from. Chain it into the next step's API field.
countnumber- How many are in the page.
firstobject- The first operation in the page, for the step that only wanted one. Null when none matched.
operation_nameslist- Each operation in the page as 'Get an operation' takes it: its operationId, or METHOD /path when it has none.
operationslist- The page of operations, in the document's order.
tagslist- The tags the docs group operations under, in the order they show them. Hidden tags are left out.
titletext- The API's title, as its document gives it.
totalnumber- How many operations the docs list in all, before any filtering.
total_matchesnumber- How many operations matched in all, of which the page is the first.
truncatedtrue/false- True when more matched than the limit allowed, so the page is not all of them.
Example output
{
"api": "@scalar/galaxy",
"count": 2,
"first": {
"auth_schemes": [],
"deprecated": false,
"description": "It's easy to say you know them all, but do you really? Retrieve all the planets and check whether you missed one.",
"has_request_body": false,
"method": "GET",
"operation_id": "getAllData",
"parameter_names": [
"limit",
"offset"
],
"path": "/planets",
"response_codes": [
"200"
],
"stability": null,
"summary": "Get all planets",
"tags": [
"Planets"
],
"title": "Get all planets"
},
"operation_names": [
"getAllData",
"createPlanet"
],
"operations": [
{
"auth_schemes": [],
"deprecated": false,
"description": "It's easy to say you know them all, but do you really? Retrieve all the planets and check whether you missed one.",
"has_request_body": false,
"method": "GET",
"operation_id": "getAllData",
"parameter_names": [
"limit",
"offset"
],
"path": "/planets",
"response_codes": [
"200"
],
"stability": null,
"summary": "Get all planets",
"tags": [
"Planets"
],
"title": "Get all planets"
},
{
"auth_schemes": [
"bearerAuth",
"basicAuth",
"apiKeyQuery",
"apiKeyHeader"
],
"deprecated": false,
"description": "Time to play god and create a new planet. What do you think? Ah, don't think too much. What could go wrong anyway?",
"has_request_body": true,
"method": "POST",
"operation_id": "createPlanet",
"parameter_names": [],
"path": "/planets",
"response_codes": [
"201",
"400",
"403"
],
"stability": null,
"summary": "Create a planet",
"tags": [
"Planets"
],
"title": "Create a planet"
}
],
"tags": [
"Authentication",
"Planets",
"Celestial Bodies"
],
"title": "Scalar Galaxy",
"total": 10,
"total_matches": 6,
"truncated": true
}Save an API document as a file
Save an API's document from the Scalar Registry as a JSON or YAML file, written by the Registry itself, so a later step can commit it to a repository, attach it to an email, upload it to storage or feed it to a code generator. Pin a version to keep a copy of exactly that one. No account or API key required.
Inputs
- API
apitextRequired - The API in the Scalar Registry, as @namespace/name - such as '@scalar/galaxy' - or its registry address.
- Version
versiontext - Optional. For an API in the Scalar Registry, the version to read: a version such as '1.2.0', 'latest' for the newest, or the start of a commit or content sha, six characters or more. Leave blank for the current version.
- Save as
formattext - The file format. JSON by default.One of:
json,yaml. Default:json. - File name
filenametext - Optional. The name to save the file under. The API's name and the format by default, e.g. 'galaxy.json'; a name given without an extension gains the format's.
Outputs
apitext- The API that was read: its name in the Scalar Registry, such as '@scalar/galaxy', or the address it was fetched from. Chain it into the next step's API field.
content_typetext- The saved file's media type.
document_reftext- The saved file's reference, to attach it to an email, upload it or store it in a later step.
documentslist- The saved file, as a one-item list.
download_urltext- Where Lodol serves the saved file.
filenametext- The name the file was saved under.
formattext- The format it was saved in: 'json' or 'yaml'.
nametext- Its name in the Registry, within the namespace. Null for a document read from an address outside the Registry.
namespacetext- The Registry namespace it is published under - the team's handle. Null for a document read from an address outside the Registry.
size_bytesnumber- The file's size in bytes.
titletext- The API's title, as its document gives it.
urltext- The Registry address it was saved from.
version_requestedtext- The Registry version that was asked for: a version, 'latest', or the start of a sha. Null when the current version was read.
Example output
{
"api": "@scalar/galaxy",
"content_type": "application/yaml",
"document_ref": "doc_4f6e1c2a9b8d4e7f8a1b2c3d4e5f6a7b",
"documents": [
{
"content_type": "application/yaml",
"document_ref": "doc_4f6e1c2a9b8d4e7f8a1b2c3d4e5f6a7b",
"filename": "galaxy.yaml",
"size_bytes": 46350,
"url": "/actions/core/serve-document/doc_4f6e1c2a9b8d4e7f8a1b2c3d4e5f6a7b"
}
],
"download_url": "/actions/core/serve-document/doc_4f6e1c2a9b8d4e7f8a1b2c3d4e5f6a7b",
"filename": "galaxy.yaml",
"format": "yaml",
"name": "galaxy",
"namespace": "scalar",
"size_bytes": 46350,
"title": "Scalar Galaxy",
"url": "https://registry.scalar.com/@scalar/apis/galaxy?format=yaml",
"version_requested": null
}Send a test request
Send a request to Scalar's request mirror and get back exactly what arrived: the method and path, the query values, every header, the cookies, the body as the server parsed it, and any bearer token or username and password it found in the Authorization header. The step to point a half-built workflow at to see what it really sends before it sends it anywhere that matters. No account or API key required.
Inputs
- Method
methodtext - How to send the request. GET is the plain fetch and carries no data; the other four do.One of:
GET,POST,PUT,PATCH,DELETE. Default:GET. - Path
pathtext - Optional. The path to send it to, e.g. '/orders/42', which comes back as it arrived. '/' by default.
- Query values
queryobject - Optional. Values to add to the end of the address, as names and values.
- Headers
headersobject - Optional. Headers to send, as names and values - for checking an Authorization or tracing header your workflow builds arrives intact.
- Data to send
dataobject - Optional. The request body, as field names and values. Leave blank for a GET, which carries no data.
- Send data as
data_formattext - JSON, the default, or form fields as a web form posts them.One of:
json,form(Form fields). Default:json.
Outputs
authenticationobject- What the Authorization header held: its type ('http.bearer' or 'http.basic'), the token, and for basic auth the username:password it decodes to. Null when there was none.
bodyobject- The body as the mirror parsed it: the JSON, or the form fields. Null when there was none.
cookiesobject- The cookies that arrived, by name.
headersobject- Every header that arrived - the ones set and the ones added on the way. Names are in lower case.
methodtext- The method the request arrived with.
pathtext- The path it arrived at.
queryobject- The query values that arrived. A name sent more than once holds a list.
urltext- The full address it was sent to.
Example output
{
"authentication": {
"token": "test-token",
"type": "http.bearer"
},
"body": {
"customer": "Ada Lovelace",
"total": 42
},
"cookies": {},
"headers": {
"accept": "application/json",
"authorization": "Bearer test-token",
"content-type": "application/json",
"host": "void.scalar.com",
"user-agent": "Lodol-Scalar-Integration/1.0 (+https://lodol.ai; integrations@lodol.ai)"
},
"method": "POST",
"path": "/orders",
"query": {
"source": "lodol"
},
"url": "https://void.scalar.com/orders?source=lodol"
}Share an API reference for a week
Turn an OpenAPI or AsyncAPI document into interactive API docs on Scalar and get back a link anyone can open - searchable, with every endpoint, model and a 'Test Request' button - without an account. It is what the Share button in Scalar's own API Reference does. Scalar deletes the upload seven days after it is made, so it suits a review, a pull request or a demo; the link to publish for good is a Scalar Docs site. The document can be a file, its text, an earlier step's result or a public address. No account or API key required.
Inputs
- API document
documenttextRequired - The OpenAPI or AsyncAPI document, in JSON or YAML: upload the file, paste its text, use a document or file from an earlier step, give its public address, or name it in the Scalar Registry as @namespace/name.
Outputs
apitext- The shared document's name in the Scalar Registry, as @namespace/name - chain it into the other steps to read it back.
expires_attext- When Scalar deletes it: seven days after it was shared, as an ISO 8601 timestamp.
formattext- What kind of document it is: 'openapi' (OpenAPI 3), 'swagger' (Swagger 2.0) or 'asyncapi'.
json_urltext- The Registry address of the document as JSON - what an API Reference, a code generator or an HTTP step can be pointed at.
nametext- The name Scalar gave it in that namespace.
namespacetext- The Registry namespace Scalar filed it under.
shared_attext- When it was shared, as an ISO 8601 timestamp.
size_bytesnumber- How large the uploaded document was, in bytes.
titletext- The API's title, as its document gives it.
urltext- The link to the shared API reference, for anyone to open until it expires.
yaml_urltext- The Registry address of the same document as YAML.
Example output
{
"api": "@share/3f9a1c7e",
"expires_at": "2026-09-30T18:00:00Z",
"format": "openapi",
"json_url": "https://registry.scalar.com/@share/apis/3f9a1c7e/latest?format=json",
"name": "3f9a1c7e",
"namespace": "share",
"shared_at": "2026-09-23T18:00:00Z",
"size_bytes": 61005,
"title": "Scalar Galaxy",
"url": "https://registry.scalar.com/share/apis/3f9a1c7e",
"yaml_url": "https://registry.scalar.com/@share/apis/3f9a1c7e/latest?format=yaml"
}