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

ActionWhat it does
Create an API reference pageBuild 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 SchemaFetch 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 modelRead 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 documentFetch 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 operationRead 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 operationsList 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 fileSave 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 requestSend 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 weekTurn 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 documentdocumenttextRequired
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 titletitletext
Optional. The title in the browser tab. The API's own title for a document given as a file or text, otherwise 'API Reference'.
Themethemetext
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.
Layoutlayouttext
Modern, the default, or Classic, which is laid out like Swagger UI.One of: modern, classic. Default: modern.
Dark modedark_modetrue/false
Optional. Open the page in dark mode.Default: false.
Hide modelshide_modelstrue/false
Optional. Leave the Models section out.Default: false.
Hide the Test Request buttonhide_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 IDsshow_operation_idtrue/false
Optional. Show each operation's operationId.Default: false.
Open every tagopen_all_tagstrue/false
Optional. Start with every tag's operations shown, rather than only the first tag's.Default: false.
Custom CSScustom_csstext
Optional. CSS to add to the page, e.g. to set Scalar's --scalar-color-accent to your brand color.
Return asoutputtext
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 namefilenametext
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

SchemaschematextRequired
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.
Versionversiontext
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

APIapitextRequired
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.
ModelmodeltextRequired
The model's name, such as 'Planet'. Chain it from 'model_names' in 'Get an API document', or from a response's 'schema_name'.
Versionversiontext
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

APIapitextRequired
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.
Versionversiontext
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

APIapitextRequired
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.
OperationoperationtextRequired
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'.
Versionversiontext
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

APIapitextRequired
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.
Versionversiontext
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.
Tagtagtext
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.
Methodmethodtext
Optional. Only operations with this HTTP method.One of: GET, PUT, POST, DELETE, OPTIONS, HEAD, PATCH, TRACE, QUERY.
Text to look forsearchtext
Optional. Only operations whose path, operationId, summary or description contains this text. Case does not matter.
Limitlimitnumber
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

APIapitextRequired
The API in the Scalar Registry, as @namespace/name - such as '@scalar/galaxy' - or its registry address.
Versionversiontext
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 asformattext
The file format. JSON by default.One of: json, yaml. Default: json.
File namefilenametext
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

Methodmethodtext
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.
Pathpathtext
Optional. The path to send it to, e.g. '/orders/42', which comes back as it arrived. '/' by default.
Query valuesqueryobject
Optional. Values to add to the end of the address, as names and values.
Headersheadersobject
Optional. Headers to send, as names and values - for checking an Authorization or tracing header your workflow builds arrives intact.
Data to senddataobject
Optional. The request body, as field names and values. Leave blank for a GET, which carries no data.
Send data asdata_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 documentdocumenttextRequired
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"
}

On this page