Adding Screenshot metadata
Enrich your screenshots in Argos with metadata by adding a companion JSON file. This metadata appears on the build page and helps contextualize how and why a screenshot was generated.
How It Works
For each screenshot file, you can create a metadata file with the same name and the .argos.json suffix:
myscreenshot.png
myscreenshot.png.argos.jsonThe .argos.json file must be valid JSON following the Argos metadata schema.
If you use an official Argos SDK like @argos-ci/playwright, @argos-ci/cypress, @argos-ci/puppeteer or @argos-ci/storybook, the SDK automatically generates and uploads this metadata for you. If you don't use any SDK you may want to implement your own metadata generation and using @argos-ci/core or @argos-ci/cli.
Schema Autocomplete
To enable autocompletion, type checking, and schema validation in editors like VS Code, you can add a $schema field at the top of your .argos.json file:
{
"$schema": "https://api.argos-ci.com/v2/screenshot-metadata.json"
}Top-Level Fields
$schema
string?
Ignored. Can be set to get completions, validations and documentation in some editors.
url
string?
The URL of the page that was screenshotted.
previewUrl
string?
A URL to an accessible preview of the screenshot.
colorScheme
"light" | "dark"
The color scheme when the screenshot was taken.
mediaType
"screen" | "print"
The media type when the screenshot was taken.
tags
string[]?
Custom tags to categorize the screenshot.
Viewport
width(number): Width of the viewport.height(number): Height of the viewport.
Test
id(string?): The unique identifier of the test.title(string): The title of the test.titlePath(string[]): The hierarchy of titles leading to the test.retries(number?): Number of retries for the test.retry(number?): The current retry count.repeat(number?): The repeat count for the test.location(Location?): Where the test is located in the source code.tags(string[]?): Tags associated with the test (e.g. Playwright's test tags).annotations(Test Annotation[]?): Extra information about the test.
Location
file(string): The source file.line(number): The line number.column(number): The column number.
Test Annotation
type(string): Type of annotation.description(string?): Optional explanation.location(Location?): Where the annotation is located in the source code.
Browser
name(string): Browser name.version(string): Browser version.
Automation Library
name(string): The name of the automation library (e.g.playwright,cypress).version(string): The version of the automation library.
SDK
name(string): The name of the Argos SDK.version(string): The version of the Argos SDK.
Complete Example
Here’s a full example of myscreenshot.png.argos.json:
Notes
Fields marked as required must be included.
Unknown fields are ignored.
Each screenshot can have its own metadata file.
Was this helpful?