> For the complete documentation index, see [llms.txt](https://argos-ci.com/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://argos-ci.com/docs/api-reference/reference/models.md).

# Models

## The TeamDefaultUserLevel object

```json
{"openapi":"3.2.0","info":{"title":"Argos API","version":"2.0.0"},"components":{"schemas":{"TeamDefaultUserLevel":{"type":"string","enum":["member","contributor"],"description":"Role given to users that join a team through its invite link or a verified email domain."}}}}
```

## The TeamUserLevel object

```json
{"openapi":"3.2.0","info":{"title":"Argos API","version":"2.0.0"},"components":{"schemas":{"TeamUserLevel":{"type":"string","enum":["owner","member","contributor"],"description":"Role of a user on a team. Owners administer the team, members see every project, contributors only the projects they are added to."}}}}
```

## The CommentId object

```json
{"openapi":"3.2.0","info":{"title":"Argos API","version":"2.0.0"},"components":{"schemas":{"CommentId":{"type":"string","description":"The public ID of the comment (e.g. `comment-xf23d`)"}}}}
```

## The ThreadCommentId object

```json
{"openapi":"3.2.0","info":{"title":"Argos API","version":"2.0.0"},"components":{"schemas":{"ThreadCommentId":{"type":"string","description":"Public ID of any comment in the thread (e.g. `comment-xf23d`)"}}}}
```

## The Sha1Hash object

```json
{"openapi":"3.2.0","info":{"title":"Argos API","version":"2.0.0"},"components":{"schemas":{"Sha1Hash":{"type":"string","pattern":"^[0-9a-f]{40}$","description":"SHA1 hash"}}}}
```

## The GitBranch object

```json
{"openapi":"3.2.0","info":{"title":"Argos API","version":"2.0.0"},"components":{"schemas":{"GitBranch":{"type":"string","minLength":1}}}}
```

## The Sha256Hash object

```json
{"openapi":"3.2.0","info":{"title":"Argos API","version":"2.0.0"},"components":{"schemas":{"Sha256Hash":{"type":"string","pattern":"^[A-Fa-f0-9]{64}$","description":"SHA256 hash"}}}}
```

## The ScreenshotUploadRequest object

```json
{"openapi":"3.2.0","info":{"title":"Argos API","version":"2.0.0"},"components":{"schemas":{"ScreenshotUploadRequest":{"type":"object","properties":{"key":{"$ref":"#/components/schemas/Sha256Hash"},"contentType":{"description":"Content type of the snapshot file","type":"string"}},"required":["key","contentType"],"description":"Screenshot file to upload"},"Sha256Hash":{"type":"string","pattern":"^[A-Fa-f0-9]{64}$","description":"SHA256 hash"}}}}
```

## The BuildId object

```json
{"openapi":"3.2.0","info":{"title":"Argos API","version":"2.0.0"},"components":{"schemas":{"BuildId":{"type":"string","description":"A unique identifier for the build"}}}}
```

## The ScreenshotInput object

```json
{"openapi":"3.2.0","info":{"title":"Argos API","version":"2.0.0"},"components":{"schemas":{"ScreenshotInput":{"type":"object","properties":{"key":{"type":"string","pattern":"^[A-Fa-f0-9]{64}$"},"name":{"type":"string"},"baseName":{"description":"Name(s) to compare this screenshot against, instead of its own name. An array is tried in order: the first name that exists in the baseline wins, which lets a new screenshot fall back to an existing one.","anyOf":[{"anyOf":[{"type":"string"},{"minItems":1,"type":"array","items":{"type":"string"}}]},{"type":"null"}]},"parentName":{"anyOf":[{"type":"string"},{"type":"null"}]},"metadata":{"anyOf":[{"type":"object","properties":{"$schema":{"description":"Ignored. Can be set to get completions, validations and documentation in some editors.","type":"string"},"url":{"description":"The URL of the page that was screenshotted","anyOf":[{"type":"string"},{"type":"null"}]},"previewUrl":{"description":"An URL to an accessible preview of the screenshot","anyOf":[{"type":"string"},{"type":"null"}]},"viewport":{"anyOf":[{"type":"object","properties":{"width":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"The width of the viewport"},"height":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"The height of the viewport"}},"required":["width","height"],"description":"The viewport dimensions when the screenshot was taken"},{"type":"null"}]},"colorScheme":{"description":"The color scheme when the screenshot was taken","anyOf":[{"type":"string","enum":["light","dark"]},{"type":"null"}]},"mediaType":{"description":"The media type when the screenshot was taken","anyOf":[{"type":"string","enum":["screen","print"]},{"type":"null"}]},"test":{"anyOf":[{"type":"object","properties":{"id":{"description":"The unique identifier of the test","anyOf":[{"type":"string"},{"type":"null"}]},"title":{"type":"string","description":"The title of the test"},"titlePath":{"type":"array","items":{"type":"string"},"description":"The path of titles leading to the test"},"retries":{"description":"The number of retries for the test","anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"retry":{"description":"The current retry count","anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"repeat":{"description":"The repeat count for the test","anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"location":{"description":"The location of the test in the source code","type":"object","properties":{"file":{"type":"string","description":"The located file"},"line":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"The line number in the file"},"column":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"The column number in the file"}},"required":["file","line","column"]},"annotations":{"description":"Annotations associated to the test","type":"array","items":{"type":"object","properties":{"type":{"type":"string","description":"The type of annotation"},"description":{"description":"The description of the annotation","type":"string"},"location":{"description":"The location of the annotation in the source code","type":"object","properties":{"file":{"type":"string","description":"The located file"},"line":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"The line number in the file"},"column":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"The column number in the file"}},"required":["file","line","column"]}},"required":["type"],"description":"A test annotation"}},"tags":{"description":"Tags associated to the test","type":"array","items":{"type":"string"}}},"required":["title","titlePath"],"description":"The test that generated the screenshot"},{"type":"null"}]},"browser":{"anyOf":[{"type":"object","properties":{"name":{"type":"string","description":"The name of the browser"},"version":{"type":"string","description":"The version of the browser"}},"required":["name","version"],"description":"The browser that generated the screenshot"},{"type":"null"}]},"automationLibrary":{"type":"object","properties":{"name":{"type":"string","description":"The name of the automation library"},"version":{"type":"string","description":"The version of the automation library"}},"required":["name","version"],"description":"The automation library that generated the screenshot"},"sdk":{"type":"object","properties":{"name":{"type":"string","description":"The name of the Argos SDK"},"version":{"type":"string","description":"The version of the Argos SDK"}},"required":["name","version"],"description":"The Argos SDK that generated the screenshot"},"story":{"description":"Storybook story metadata","anyOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique ID of the story"},"tags":{"description":"Tags attached to the story","type":"array","items":{"type":"string"}},"mode":{"description":"Story mode","type":"string"},"play":{"description":"True if the story has a play function","type":"boolean"}},"required":["id"],"description":"Storybook story metadata"},{"type":"null"}]},"tags":{"description":"Tags associated to the screenshot","type":"array","items":{"type":"string"}}},"required":["automationLibrary","sdk"],"description":"Metadata about a screenshot"},{"type":"null"}]},"pwTraceKey":{"anyOf":[{"type":"string","pattern":"^[A-Fa-f0-9]{64}$"},{"type":"null"}]},"threshold":{"anyOf":[{"type":"number","minimum":0,"maximum":1},{"type":"null"}]},"contentType":{"description":"Content type of the snapshot file","type":"string"}},"required":["key","name"],"description":"Screenshot input"}}}}
```

## The BuildMetadata object

```json
{"openapi":"3.2.0","info":{"title":"Argos API","version":"2.0.0"},"components":{"schemas":{"BuildMetadata":{"description":"Build metadata","type":"object","properties":{"testReport":{"description":"Test suite report","type":"object","properties":{"status":{"type":"string","enum":["passed","failed","timedout","interrupted"],"description":"Status of the test suite"},"stats":{"type":"object","properties":{"startTime":{"description":"Date when the test suite started","type":"string"},"duration":{"description":"Duration of the test suite in milliseconds","type":"number"}}}},"required":["status"]}}}}}}
```

## The SummaryCheck object

```json
{"openapi":"3.2.0","info":{"title":"Argos API","version":"2.0.0"},"components":{"schemas":{"SummaryCheck":{"type":"string","enum":["always","never","auto"],"description":"When to post the summary check on a pull request: `always`, `never`, or `auto` (only once the project has a baseline)."}}}}
```

## The ProjectUserLevel object

```json
{"openapi":"3.2.0","info":{"title":"Argos API","version":"2.0.0"},"components":{"schemas":{"ProjectUserLevel":{"type":"string","enum":["admin","reviewer","viewer"],"description":"Access level given to team members that are not explicit contributors on the project. `null` means they get no access."}}}}
```

## The IgnoreConfig object

```json
{"openapi":"3.2.0","info":{"title":"Argos API","version":"2.0.0"},"components":{"schemas":{"IgnoreConfig":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Whether changes can be ignored on this project."},"autoIgnore":{"anyOf":[{"type":"object","properties":{"changes":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"Number of times a change must reappear before it is ignored automatically."}},"required":["changes"]},{"type":"null"}],"description":"Auto-ignore settings, `null` when auto-ignore is off."}},"required":["enabled","autoIgnore"],"description":"How flaky changes are ignored on a project."}}}}
```

## The DeploymentAuth object

```json
{"openapi":"3.2.0","info":{"title":"Argos API","version":"2.0.0"},"components":{"schemas":{"DeploymentAuth":{"type":"string","enum":["public","domain-private","private"],"description":"Who can reach the project's deployments: anyone (`public`), anyone with the domain (`domain-private`), or team members only (`private`, teams only)."}}}}
```

## The AutomationEvent object

```json
{"openapi":"3.2.0","info":{"title":"Argos API","version":"2.0.0"},"components":{"schemas":{"AutomationEvent":{"type":"string","enum":["build.completed","build.reviewed"],"description":"An event an automation rule can react to."}}}}
```

## The AutomationCondition object

```json
{"openapi":"3.2.0","info":{"title":"Argos API","version":"2.0.0"},"components":{"schemas":{"AutomationCondition":{"anyOf":[{"anyOf":[{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"build-branch"},"value":{"type":"string","minLength":1}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","const":"build-conclusion"},"value":{"anyOf":[{"type":"string","enum":["no-changes","changes-detected"]},{"type":"null"}]}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","const":"build-mode"},"value":{"anyOf":[{"type":"string","enum":["ci","monitoring"]},{"type":"null"}]}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","const":"build-name"},"value":{"type":"string","minLength":1}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","const":"build-type"},"value":{"anyOf":[{"type":"string","enum":["reference","check","orphan","skipped"]},{"type":"null"}]}},"required":["type","value"]}],"type":"object"},{"type":"object","properties":{"glob":{"type":"object","properties":{"type":{"type":"string","const":"build-branch"},"value":{"type":"string","minLength":1}},"required":["type","value"]}},"required":["glob"]}]},{"type":"object","properties":{"not":{"anyOf":[{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"build-branch"},"value":{"type":"string","minLength":1}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","const":"build-conclusion"},"value":{"anyOf":[{"type":"string","enum":["no-changes","changes-detected"]},{"type":"null"}]}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","const":"build-mode"},"value":{"anyOf":[{"type":"string","enum":["ci","monitoring"]},{"type":"null"}]}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","const":"build-name"},"value":{"type":"string","minLength":1}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","const":"build-type"},"value":{"anyOf":[{"type":"string","enum":["reference","check","orphan","skipped"]},{"type":"null"}]}},"required":["type","value"]}],"type":"object"},{"type":"object","properties":{"glob":{"type":"object","properties":{"type":{"type":"string","const":"build-branch"},"value":{"type":"string","minLength":1}},"required":["type","value"]}},"required":["glob"]}]}},"required":["not"]}],"description":"A condition narrowing when a rule fires. Conditions are combined with AND; wrap one in `{ not: … }` to negate it, or `{ glob: … }` to match a branch by pattern."}}}}
```

## The AutomationActionInput object

```json
{"openapi":"3.2.0","info":{"title":"Argos API","version":"2.0.0"},"components":{"schemas":{"AutomationActionInput":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"sendSlackMessage"},"payload":{"type":"object","properties":{"slackId":{"default":"","type":"string","maxLength":256},"name":{"type":"string","minLength":1,"maxLength":256}},"required":["name"]}},"required":["type","payload"]},{"type":"object","properties":{"type":{"type":"string","const":"sendMsTeamsMessage"},"payload":{"type":"object","properties":{"webhookId":{"type":"string","minLength":1}},"required":["webhookId"]}},"required":["type","payload"]},{"type":"object","properties":{"type":{"type":"string","const":"sendDiscordMessage"},"payload":{"type":"object","properties":{"webhookId":{"type":"string","minLength":1}},"required":["webhookId"]}},"required":["type","payload"]}],"description":"An action to run. Slack channels are addressed by `slackId` when known, otherwise by `name`; Teams and Discord by the id of a webhook registered on the project's account.","type":"object"}}}}
```

## The BuildNumber object

```json
{"openapi":"3.2.0","info":{"title":"Argos API","version":"2.0.0"},"components":{"schemas":{"BuildNumber":{"description":"The build number","type":"string"}}}}
```

## The TestId object

```json
{"openapi":"3.2.0","info":{"title":"Argos API","version":"2.0.0"},"components":{"schemas":{"TestId":{"type":"string","description":"The test identifier, as returned in a diff's `test.id`"}}}}
```

## The AccountDetails object

```json
{"openapi":"3.2.0","info":{"title":"Argos API","version":"2.0.0"},"components":{"schemas":{"AccountDetails":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string","minLength":1},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"type":{"type":"string","enum":["user","team"]},"plan":{"anyOf":[{"type":"object","properties":{"name":{"type":"string"},"includedScreenshots":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["name","includedScreenshots"],"additionalProperties":false},{"type":"null"}],"description":"The account's plan, `null` when it has none."},"periodStartDate":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},{"type":"null"}],"description":"Start of the current billing period."},"periodEndDate":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},{"type":"null"}],"description":"End of the current billing period."},"currentPeriodScreenshots":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Screenshots used since the start of the current period."},"includedScreenshots":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Screenshots included in the plan for a period."},"consumptionRatio":{"type":"number","description":"Used screenshots over included screenshots. Above `1` the account is over its plan and pays for the extra."},"additionalScreenshotsCost":{"type":"number","description":"Cost accrued so far this period for screenshots beyond the plan, in the subscription's currency."},"defaultUserLevel":{"anyOf":[{"$ref":"#/components/schemas/TeamDefaultUserLevel"},{"type":"null"}],"description":"Role given to users joining through the invite link or a verified domain. `null` on a personal account."}},"required":["id","slug","name","type","plan","periodStartDate","periodEndDate","currentPeriodScreenshots","includedScreenshots","consumptionRatio","additionalScreenshotsCost","defaultUserLevel"],"additionalProperties":false,"description":"An account with its plan and current-period usage, to watch consumption against the plan."},"TeamDefaultUserLevel":{"type":"string","enum":["member","contributor"],"description":"Role given to users that join a team through its invite link or a verified email domain."}}}}
```

## The Error object

```json
{"openapi":"3.2.0","info":{"title":"Argos API","version":"2.0.0"},"components":{"schemas":{"Error":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}},"required":["error"],"additionalProperties":false,"description":"Error response"}}}}
```

## The AccountAnalytics object

```json
{"openapi":"3.2.0","info":{"title":"Argos API","version":"2.0.0"},"components":{"schemas":{"AccountAnalytics":{"type":"object","properties":{"screenshots":{"type":"object","properties":{"series":{"type":"array","items":{"type":"object","properties":{"total":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"projects":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"description":"Counts keyed by project ID. Use the sibling `projects` array to resolve each project name."},"ts":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Unix timestamp in milliseconds at the start of the period."}},"required":["total","projects","ts"],"additionalProperties":false}},"all":{"type":"object","properties":{"total":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"projects":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"description":"Counts keyed by project ID. Use the sibling `projects` array to resolve each project name."}},"required":["total","projects"],"additionalProperties":false},"projects":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","minLength":1,"maxLength":100,"pattern":"^[a-zA-Z0-9_\\-.]+$"}},"required":["id","name"],"additionalProperties":false}}},"required":["series","all","projects"],"additionalProperties":false},"builds":{"type":"object","properties":{"series":{"type":"array","items":{"type":"object","properties":{"total":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"projects":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"description":"Counts keyed by project ID. Use the sibling `projects` array to resolve each project name."},"changesDetected":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"noChanges":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"accepted":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"rejected":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"ts":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Unix timestamp in milliseconds at the start of the period."}},"required":["total","projects","changesDetected","noChanges","accepted","rejected","ts"],"additionalProperties":false}},"all":{"type":"object","properties":{"total":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"projects":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"description":"Counts keyed by project ID. Use the sibling `projects` array to resolve each project name."},"changesDetected":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"noChanges":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"accepted":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"rejected":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["total","projects","changesDetected","noChanges","accepted","rejected"],"additionalProperties":false},"projects":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","minLength":1,"maxLength":100,"pattern":"^[a-zA-Z0-9_\\-.]+$"}},"required":["id","name"],"additionalProperties":false}}},"required":["series","all","projects"],"additionalProperties":false}},"required":["screenshots","builds"],"additionalProperties":false}}}}
```

## The PageInfo object

```json
{"openapi":"3.2.0","info":{"title":"Argos API","version":"2.0.0"},"components":{"schemas":{"PageInfo":{"type":"object","properties":{"total":{"type":"number","description":"Total number of items"},"page":{"type":"number","description":"Current page number"},"perPage":{"type":"number","description":"Number of items per page"}},"required":["total","page","perPage"],"additionalProperties":false,"description":"Page information"}}}}
```

## The Project object

```json
{"openapi":"3.2.0","info":{"title":"Argos API","version":"2.0.0"},"components":{"schemas":{"Project":{"type":"object","properties":{"id":{"type":"string"},"account":{"$ref":"#/components/schemas/Account"},"name":{"type":"string","minLength":1},"defaultBaseBranch":{"type":"string"},"hasRemoteContentAccess":{"type":"boolean"},"autoApprovedBranchGlob":{"type":"string","description":"Glob matching the branches whose builds are approved automatically."},"deploymentProductionBranchGlob":{"type":"string","description":"Glob matching the branches whose deployments are treated as production."},"private":{"type":"boolean","description":"Whether the project is private. Resolved from the linked repository unless overridden."},"summaryCheck":{"$ref":"#/components/schemas/SummaryCheck"},"prCommentEnabled":{"type":"boolean","description":"Whether Argos comments on pull requests."},"githubActionsOidcEnabled":{"type":"boolean","description":"Whether builds can authenticate with a GitHub Actions OIDC token instead of a project token."},"tokenlessAuthEnabled":{"type":"boolean","description":"Whether builds from forked pull requests can be uploaded without a token."},"deploymentEnabled":{"type":"boolean","description":"Whether deployments are served for this project."},"deploymentAuth":{"$ref":"#/components/schemas/DeploymentAuth"},"defaultUserLevel":{"anyOf":[{"$ref":"#/components/schemas/ProjectUserLevel"},{"type":"null"}]},"ignoreConfig":{"$ref":"#/components/schemas/IgnoreConfigOutput"}},"required":["id","account","name","defaultBaseBranch","hasRemoteContentAccess","autoApprovedBranchGlob","deploymentProductionBranchGlob","private","summaryCheck","prCommentEnabled","githubActionsOidcEnabled","tokenlessAuthEnabled","deploymentEnabled","deploymentAuth","defaultUserLevel","ignoreConfig"],"additionalProperties":false,"description":"Project"},"Account":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string","minLength":1}},"required":["id","slug"],"additionalProperties":false,"description":"Account"},"SummaryCheck":{"type":"string","enum":["always","never","auto"],"description":"When to post the summary check on a pull request: `always`, `never`, or `auto` (only once the project has a baseline)."},"DeploymentAuth":{"type":"string","enum":["public","domain-private","private"],"description":"Who can reach the project's deployments: anyone (`public`), anyone with the domain (`domain-private`), or team members only (`private`, teams only)."},"ProjectUserLevel":{"type":"string","enum":["admin","reviewer","viewer"],"description":"Access level given to team members that are not explicit contributors on the project. `null` means they get no access."},"IgnoreConfigOutput":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Whether changes can be ignored on this project."},"autoIgnore":{"anyOf":[{"type":"object","properties":{"changes":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"Number of times a change must reappear before it is ignored automatically."}},"required":["changes"],"additionalProperties":false},{"type":"null"}],"description":"Auto-ignore settings, `null` when auto-ignore is off."}},"required":["enabled","autoIgnore"],"additionalProperties":false,"description":"How flaky changes are ignored on a project."}}}}
```

## The Account object

```json
{"openapi":"3.2.0","info":{"title":"Argos API","version":"2.0.0"},"components":{"schemas":{"Account":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string","minLength":1}},"required":["id","slug"],"additionalProperties":false,"description":"Account"}}}}
```

## The TeamMember object

```json
{"openapi":"3.2.0","info":{"title":"Argos API","version":"2.0.0"},"components":{"schemas":{"TeamMember":{"type":"object","properties":{"id":{"type":"string","description":"Identifier of the membership, not of the user."},"user":{"$ref":"#/components/schemas/User"},"level":{"$ref":"#/components/schemas/TeamUserLevel"}},"required":["id","user","level"],"additionalProperties":false,"description":"A member of a team."},"User":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","slug","name"],"additionalProperties":false,"description":"A user."},"TeamUserLevel":{"type":"string","enum":["owner","member","contributor"],"description":"Role of a user on a team. Owners administer the team, members see every project, contributors only the projects they are added to."}}}}
```

## The User object

```json
{"openapi":"3.2.0","info":{"title":"Argos API","version":"2.0.0"},"components":{"schemas":{"User":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","slug","name"],"additionalProperties":false,"description":"A user."}}}}
```

## The TeamInvite object

```json
{"openapi":"3.2.0","info":{"title":"Argos API","version":"2.0.0"},"components":{"schemas":{"TeamInvite":{"type":"object","properties":{"id":{"type":"string"},"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"level":{"$ref":"#/components/schemas/TeamUserLevel"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"expiresAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"expired":{"type":"boolean","description":"Whether the invite is past its expiry date. Expired invites stay listed until they are cancelled or re-sent."}},"required":["id","email","level","createdAt","expiresAt","expired"],"additionalProperties":false,"description":"A pending invitation to join a team."},"TeamUserLevel":{"type":"string","enum":["owner","member","contributor"],"description":"Role of a user on a team. Owners administer the team, members see every project, contributors only the projects they are added to."}}}}
```

## The TeamDomain object

```json
{"openapi":"3.2.0","info":{"title":"Argos API","version":"2.0.0"},"components":{"schemas":{"TeamDomain":{"type":"object","properties":{"domain":{"type":"string"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["domain","createdAt"],"additionalProperties":false,"description":"An email domain the team is open to: anyone signing up with a verified address on it joins automatically, at the team's default role."}}}}
```

## The InviteLink object

```json
{"openapi":"3.2.0","info":{"title":"Argos API","version":"2.0.0"},"components":{"schemas":{"InviteLink":{"type":"object","properties":{"inviteLink":{"type":"string","format":"uri","description":"The team's new shared invite link. Anyone with it joins at the team's default role."}},"required":["inviteLink"],"additionalProperties":false}}}}
```

## The Media object

```json
{"openapi":"3.2.0","info":{"title":"Argos API","version":"2.0.0"},"components":{"schemas":{"Media":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier of the media"},"name":{"type":"string","description":"The media's name, and its identity within its pull request. Uploading the same name again adds a version."},"state":{"anyOf":[{"type":"string","enum":["before","after"],"description":"Which half of a before/after pair this media is, so the two can be shown side by side and compared. Inferred from a file name ending in `-before` or `-after`."},{"type":"null"}]},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Prose shown under the media in the pull request comment."},"stage":{"type":"string","enum":["staged","published"],"description":"`staged` while the media is only attached to a branch, `published` once a pull request is attached and Argos lists it in that pull request's comment. A media attached to neither is `staged`."},"branch":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Branch this media was uploaded for. Kept after publishing, as a record of where it came from."},"prNumber":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Pull request this media is published to, or `null` while it is staged."},"url":{"type":"string","format":"uri","description":"Share page URL. This is the link to put in a pull request or a chat message, and it keeps working across versions — it always shows the newest one."},"markdown":{"type":"string","description":"Ready-to-paste Markdown: the picture — the image itself, or a video's poster frame — embedded from the CDN and linked to the share page. Embed this rather than building your own from `url`: that is an HTML page, and an image embed pointing at it renders as a broken image."},"version":{"type":"number","description":"Which version this response describes: 1 for a first upload, incrementing each time the same name is uploaded again."},"versionCount":{"type":"number","description":"How many uploaded versions this media has. Above 1, `GET /media/{mediaId}/versions` lists them — which is how a comment's `mediaVersionId` resolves to the file it was written against."},"fileUrl":{"type":"string","format":"uri","description":"URL of the image or video itself, for an agent that wants to look at it."},"posterUrl":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}],"description":"Poster frame of a video, derived by the image CDN. Always `null` for images."},"contentType":{"type":"string","description":"Content type of the media"},"sizeBytes":{"type":"number","description":"Size of the media, in bytes"},"width":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Width, in pixels"},"height":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Height, in pixels"},"visibility":{"type":"string","enum":["team","public"],"description":"Who can open the media share page. `team` requires an Argos session with access to the owning account; `public` only requires the share URL."},"status":{"type":"string","enum":["pending","ready"],"description":"`pending` until the bytes are uploaded, then `ready`. There is no processing step — Argos serves the bytes it was given."},"expiresAt":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"When this version is deleted. Set from your plan's retention, counted from the upload rather than from the last view."},"createdAt":{"type":"string"}},"required":["id","name","state","description","stage","branch","prNumber","url","markdown","version","versionCount","fileUrl","posterUrl","contentType","sizeBytes","width","height","visibility","status","expiresAt","createdAt"],"additionalProperties":false,"description":"A standalone image or video uploaded to Argos"}}}}
```

## The MediaUploadTarget object

```json
{"openapi":"3.2.0","info":{"title":"Argos API","version":"2.0.0"},"components":{"schemas":{"MediaUploadTarget":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"URL to POST the file to, as `multipart/form-data`."},"fields":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Form fields that must be appended **before** the file part, in order, for the upload to be accepted."}},"required":["url","fields"],"additionalProperties":false,"description":"Signed upload target"}}}}
```

## The MediaVersion object

```json
{"openapi":"3.2.0","info":{"title":"Argos API","version":"2.0.0"},"components":{"schemas":{"MediaVersion":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier of this version — what a comment's `mediaVersionId` points at."},"number":{"type":"number","description":"1-based, and what the UI calls the version. Increments each time the same name is uploaded again."},"fileUrl":{"type":"string","format":"uri","description":"URL of the image or video as it was at this version."},"posterUrl":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}],"description":"Poster frame of a video. Always `null` for images."},"contentType":{"type":"string"},"sizeBytes":{"type":"number"},"width":{"anyOf":[{"type":"number"},{"type":"null"}]},"height":{"anyOf":[{"type":"number"},{"type":"null"}]},"expiresAt":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"When this version is deleted. Retention applies per version, so an old one ages out while the media and its share URL live on."},"createdAt":{"type":"string"}},"required":["id","number","fileUrl","posterUrl","contentType","sizeBytes","width","height","expiresAt","createdAt"],"additionalProperties":false,"description":"One uploaded version of a media"}}}}
```

## The Comment object

```json
{"openapi":"3.2.0","info":{"title":"Argos API","version":"2.0.0"},"components":{"schemas":{"Comment":{"type":"object","properties":{"id":{"type":"string","description":"Public ID of the comment (e.g. `comment-xf23d`) — the one the app links to, and the one every endpoint taking a comment ID expects."},"buildId":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Build this comment is posted on, null when it is posted on a test."},"testId":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Test this comment is posted on, null when it is posted on a build."},"mediaId":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Media this comment is posted on, null when it is posted on a build or a test."},"mediaVersionId":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Version of the media the comment was written against. A pin describes a spot on the bytes its author was looking at, so feedback on an older upload has to be read against that upload — match this id against `GET /media/{mediaId}/versions` to get the right file."},"threadId":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Root comment ID when this comment is a reply."},"body":{"description":"Rich-text JSON content of the comment."},"text":{"type":"string","description":"Plain-text rendering of the comment content."},"author":{"anyOf":[{"$ref":"#/components/schemas/User"},{"type":"null"}]},"agent":{"anyOf":[{"$ref":"#/components/schemas/Agent"},{"type":"null"}],"description":"The coding agent that posted the comment on the author's behalf. Null when the author posted it directly."},"screenshotDiffId":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Screenshot diff this comment is anchored to, if any."},"anchor":{"anyOf":[{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"point"},"x":{"type":"number"},"y":{"type":"number"}},"required":["type","x","y"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"lines"},"from":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"to":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["type","from","to"],"additionalProperties":false}],"description":"Where on the referenced screenshot diff the comment points. A point uses normalized (0–1) coordinates; lines is a 1-based inclusive range.","type":"object"},{"type":"null"}],"description":"Where the comment points on its screenshot diff. Null means the whole diff."},"pending":{"type":"boolean","description":"Whether the comment belongs to a pending (unsubmitted) review and is only visible to its author."},"resolvedAt":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Date the thread was resolved, null if not resolved. Only set on a root comment."},"editedAt":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Date the comment was last edited, null if never edited."},"createdAt":{"type":"string","description":"Date the comment was posted."},"reactions":{"type":"array","items":{"type":"object","properties":{"emoji":{"type":"string","description":"The emoji used for the reaction."},"count":{"type":"number","description":"Number of users who reacted with this emoji."},"users":{"type":"array","items":{"$ref":"#/components/schemas/User"},"description":"The users who reacted with this emoji."}},"required":["emoji","count","users"],"additionalProperties":false,"description":"Reactions of a single emoji on a comment."}}},"required":["id","buildId","testId","mediaId","mediaVersionId","threadId","body","text","author","agent","screenshotDiffId","anchor","pending","resolvedAt","editedAt","createdAt","reactions"],"additionalProperties":false,"description":"A comment posted on a build or on a test."},"User":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","slug","name"],"additionalProperties":false,"description":"A user."},"Agent":{"type":"object","properties":{"id":{"type":"string","description":"Stable id of the agent, e.g. `claude-code`. `unknown` when it could not be identified."},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Name to display, e.g. `Claude Code`. Null for an agent we cannot name."}},"required":["id","name"],"additionalProperties":false,"description":"A coding agent acting on behalf of a user."}}}}
```

## The Agent object

```json
{"openapi":"3.2.0","info":{"title":"Argos API","version":"2.0.0"},"components":{"schemas":{"Agent":{"type":"object","properties":{"id":{"type":"string","description":"Stable id of the agent, e.g. `claude-code`. `unknown` when it could not be identified."},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Name to display, e.g. `Claude Code`. Null for an agent we cannot name."}},"required":["id","name"],"additionalProperties":false,"description":"A coding agent acting on behalf of a user."}}}}
```

## The Build object

```json
{"openapi":"3.2.0","info":{"title":"Argos API","version":"2.0.0"},"components":{"schemas":{"Build":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/BuildId"},"number":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"The build number"},"head":{"description":"The head reference of the build","$ref":"#/components/schemas/BuildGitReference"},"base":{"anyOf":[{"$ref":"#/components/schemas/BuildGitReference"},{"type":"null"}],"description":"The base reference of the build"},"status":{"anyOf":[{"type":"string","enum":["accepted","rejected"]},{"type":"string","enum":["no-changes","changes-detected"]},{"type":"string","enum":["expired","pending","progress","error","aborted"]}],"description":"The status of the build"},"conclusion":{"anyOf":[{"type":"string","enum":["no-changes","changes-detected"]},{"type":"null"}],"description":"The conclusion of the build"},"stats":{"anyOf":[{"type":"object","properties":{"added":{"type":"number","description":"Added snapshots"},"removed":{"type":"number","description":"Removed snapshots"},"unchanged":{"type":"number","description":"Unchanged snapshots"},"changed":{"type":"number","description":"Changed snapshots"},"ignored":{"type":"number","description":"Ignored snapshots"},"failure":{"type":"number","description":"Failure screenshots"},"retryFailure":{"type":"number","description":"Retry failure screenshots"},"total":{"type":"number","description":"Total number of snapshots"}},"required":["added","removed","unchanged","changed","ignored","failure","retryFailure","total"],"additionalProperties":false},{"type":"null"}],"description":"Stats of the diffs present in the build"},"metadata":{"anyOf":[{"type":"object","properties":{"testReport":{"description":"Test suite report","type":"object","properties":{"status":{"type":"string","enum":["passed","failed","timedout","interrupted"],"description":"Status of the test suite"},"stats":{"type":"object","properties":{"startTime":{"description":"Date when the test suite started","type":"string"},"duration":{"description":"Duration of the test suite in milliseconds","type":"number"}},"additionalProperties":false}},"required":["status"],"additionalProperties":false}},"additionalProperties":false,"description":"Metadata associated to the build"},{"type":"null"}]},"url":{"type":"string","format":"uri","description":"The URL of the build"},"notification":{"anyOf":[{"type":"object","properties":{"description":{"type":"string"},"context":{"type":"string"},"github":{"type":"object","properties":{"state":{"type":"string","enum":["pending","success","error","failure"]}},"required":["state"],"additionalProperties":false},"gitlab":{"type":"object","properties":{"state":{"type":"string","enum":["pending","running","success","failed","canceled"]}},"required":["state"],"additionalProperties":false},"origin":{"type":"object","properties":{"status":{"type":"string","enum":["queued","in_progress","completed"]},"conclusion":{"anyOf":[{"type":"string","enum":["success","failure"]},{"type":"null"}]}},"required":["status","conclusion"],"additionalProperties":false},"url":{"type":"string","format":"uri"}},"required":["description","context","github","gitlab","origin","url"],"additionalProperties":false},{"type":"null"}],"description":"The notification payload for the build"}},"required":["id","number","head","base","status","conclusion","stats","metadata","url","notification"],"additionalProperties":false,"description":"Build"},"BuildId":{"type":"string","description":"A unique identifier for the build"},"BuildGitReference":{"type":"object","properties":{"sha":{"description":"The commit SHA","$ref":"#/components/schemas/Sha1Hash"},"branch":{"type":"string","description":"The branch name"}},"required":["sha","branch"],"additionalProperties":false,"description":"Git reference"},"Sha1Hash":{"type":"string","pattern":"^[0-9a-f]{40}$","description":"SHA1 hash"}}}}
```

## The BuildGitReference object

```json
{"openapi":"3.2.0","info":{"title":"Argos API","version":"2.0.0"},"components":{"schemas":{"BuildGitReference":{"type":"object","properties":{"sha":{"description":"The commit SHA","$ref":"#/components/schemas/Sha1Hash"},"branch":{"type":"string","description":"The branch name"}},"required":["sha","branch"],"additionalProperties":false,"description":"Git reference"},"Sha1Hash":{"type":"string","pattern":"^[0-9a-f]{40}$","description":"SHA1 hash"}}}}
```

## The Me object

```json
{"openapi":"3.2.0","info":{"title":"Argos API","version":"2.0.0"},"components":{"schemas":{"Me":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"accounts":{"type":"array","items":{"$ref":"#/components/schemas/MeAccount"},"description":"The accounts this token can access: the personal account and the teams selected when the token was created or authorized."}},"required":["id","slug","name","accounts"],"additionalProperties":false,"description":"The authenticated user."},"MeAccount":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string","description":"Account slug, used as the `owner` in API paths."},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"type":{"type":"string","enum":["user","team"]}},"required":["id","slug","name","type"],"additionalProperties":false,"description":"An account (personal or team) accessible to the token."}}}}
```

## The MeAccount object

```json
{"openapi":"3.2.0","info":{"title":"Argos API","version":"2.0.0"},"components":{"schemas":{"MeAccount":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string","description":"Account slug, used as the `owner` in API paths."},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"type":{"type":"string","enum":["user","team"]}},"required":["id","slug","name","type"],"additionalProperties":false,"description":"An account (personal or team) accessible to the token."}}}}
```

## The AutomationRule object

```json
{"openapi":"3.2.0","info":{"title":"Argos API","version":"2.0.0"},"components":{"schemas":{"AutomationRule":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"active":{"type":"boolean","description":"Whether the rule still fires. Deactivated rules keep their run history."},"events":{"type":"array","items":{"$ref":"#/components/schemas/AutomationEvent"}},"conditions":{"type":"array","items":{"$ref":"#/components/schemas/AutomationConditionOutput"}},"actions":{"type":"array","items":{"type":"object","properties":{"action":{"type":"string"},"actionPayload":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["action","actionPayload"],"additionalProperties":false},"description":"The actions as stored, with their targets already resolved (a Slack channel id, a webhook id)."},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["id","name","active","events","conditions","actions","createdAt","updatedAt"],"additionalProperties":false,"description":"A rule that runs actions when a build event matches its conditions."},"AutomationEvent":{"type":"string","enum":["build.completed","build.reviewed"],"description":"An event an automation rule can react to."},"AutomationConditionOutput":{"anyOf":[{"anyOf":[{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"build-branch"},"value":{"type":"string","minLength":1}},"required":["type","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"build-conclusion"},"value":{"anyOf":[{"type":"string","enum":["no-changes","changes-detected"]},{"type":"null"}]}},"required":["type","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"build-mode"},"value":{"anyOf":[{"type":"string","enum":["ci","monitoring"]},{"type":"null"}]}},"required":["type","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"build-name"},"value":{"type":"string","minLength":1}},"required":["type","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"build-type"},"value":{"anyOf":[{"type":"string","enum":["reference","check","orphan","skipped"]},{"type":"null"}]}},"required":["type","value"],"additionalProperties":false}],"type":"object"},{"type":"object","properties":{"glob":{"type":"object","properties":{"type":{"type":"string","const":"build-branch"},"value":{"type":"string","minLength":1}},"required":["type","value"],"additionalProperties":false}},"required":["glob"],"additionalProperties":false}]},{"type":"object","properties":{"not":{"anyOf":[{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"build-branch"},"value":{"type":"string","minLength":1}},"required":["type","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"build-conclusion"},"value":{"anyOf":[{"type":"string","enum":["no-changes","changes-detected"]},{"type":"null"}]}},"required":["type","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"build-mode"},"value":{"anyOf":[{"type":"string","enum":["ci","monitoring"]},{"type":"null"}]}},"required":["type","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"build-name"},"value":{"type":"string","minLength":1}},"required":["type","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"build-type"},"value":{"anyOf":[{"type":"string","enum":["reference","check","orphan","skipped"]},{"type":"null"}]}},"required":["type","value"],"additionalProperties":false}],"type":"object"},{"type":"object","properties":{"glob":{"type":"object","properties":{"type":{"type":"string","const":"build-branch"},"value":{"type":"string","minLength":1}},"required":["type","value"],"additionalProperties":false}},"required":["glob"],"additionalProperties":false}]}},"required":["not"],"additionalProperties":false}],"description":"A condition narrowing when a rule fires. Conditions are combined with AND; wrap one in `{ not: … }` to negate it, or `{ glob: … }` to match a branch by pattern."}}}}
```

## The ProjectContributor object

```json
{"openapi":"3.2.0","info":{"title":"Argos API","version":"2.0.0"},"components":{"schemas":{"ProjectContributor":{"type":"object","properties":{"id":{"type":"string","description":"Identifier of the grant, not of the user."},"user":{"$ref":"#/components/schemas/User"},"level":{"$ref":"#/components/schemas/ProjectUserLevel"}},"required":["id","user","level"],"additionalProperties":false,"description":"A contributor explicitly granted access to a project. Team owners and members reach every project without appearing here."},"User":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","slug","name"],"additionalProperties":false,"description":"A user."},"ProjectUserLevel":{"type":"string","enum":["admin","reviewer","viewer"],"description":"Access level given to team members that are not explicit contributors on the project. `null` means they get no access."}}}}
```

## The SnapshotDiff object

```json
{"openapi":"3.2.0","info":{"title":"Argos API","version":"2.0.0"},"components":{"schemas":{"SnapshotDiff":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier of the snapshot diff"},"name":{"type":"string","description":"Name of the snapshot diff"},"status":{"type":"string","enum":["pending","removed","failure","added","changed","unchanged","retryFailure","ignored"],"description":"Status of the snapshot diff"},"score":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Similarity score between snapshots"},"group":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Grouping key for the snapshot diff"},"parentName":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Parent name of the snapshot (usually the story id)"},"url":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}],"description":"URL of the diff image"},"base":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier of the snapshot"},"name":{"type":"string","description":"Name of the snapshot"},"metadata":{"anyOf":[{"type":"object","properties":{"$schema":{"description":"Ignored. Can be set to get completions, validations and documentation in some editors.","type":"string"},"url":{"description":"The URL of the page that was screenshotted","anyOf":[{"type":"string"},{"type":"null"}]},"previewUrl":{"description":"An URL to an accessible preview of the screenshot","anyOf":[{"type":"string"},{"type":"null"}]},"viewport":{"anyOf":[{"type":"object","properties":{"width":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"The width of the viewport"},"height":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"The height of the viewport"}},"required":["width","height"],"additionalProperties":false,"description":"The viewport dimensions when the screenshot was taken"},{"type":"null"}]},"colorScheme":{"description":"The color scheme when the screenshot was taken","anyOf":[{"type":"string","enum":["light","dark"]},{"type":"null"}]},"mediaType":{"description":"The media type when the screenshot was taken","anyOf":[{"type":"string","enum":["screen","print"]},{"type":"null"}]},"test":{"anyOf":[{"type":"object","properties":{"id":{"description":"The unique identifier of the test","anyOf":[{"type":"string"},{"type":"null"}]},"title":{"type":"string","description":"The title of the test"},"titlePath":{"type":"array","items":{"type":"string"},"description":"The path of titles leading to the test"},"retries":{"description":"The number of retries for the test","anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"retry":{"description":"The current retry count","anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"repeat":{"description":"The repeat count for the test","anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"location":{"description":"The location of the test in the source code","type":"object","properties":{"file":{"type":"string","description":"The located file"},"line":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"The line number in the file"},"column":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"The column number in the file"}},"required":["file","line","column"],"additionalProperties":false},"annotations":{"description":"Annotations associated to the test","type":"array","items":{"type":"object","properties":{"type":{"type":"string","description":"The type of annotation"},"description":{"description":"The description of the annotation","type":"string"},"location":{"description":"The location of the annotation in the source code","type":"object","properties":{"file":{"type":"string","description":"The located file"},"line":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"The line number in the file"},"column":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"The column number in the file"}},"required":["file","line","column"],"additionalProperties":false}},"required":["type"],"additionalProperties":false,"description":"A test annotation"}},"tags":{"description":"Tags associated to the test","type":"array","items":{"type":"string"}}},"required":["title","titlePath"],"additionalProperties":false,"description":"The test that generated the screenshot"},{"type":"null"}]},"browser":{"anyOf":[{"type":"object","properties":{"name":{"type":"string","description":"The name of the browser"},"version":{"type":"string","description":"The version of the browser"}},"required":["name","version"],"additionalProperties":false,"description":"The browser that generated the screenshot"},{"type":"null"}]},"automationLibrary":{"type":"object","properties":{"name":{"type":"string","description":"The name of the automation library"},"version":{"type":"string","description":"The version of the automation library"}},"required":["name","version"],"additionalProperties":false,"description":"The automation library that generated the screenshot"},"sdk":{"type":"object","properties":{"name":{"type":"string","description":"The name of the Argos SDK"},"version":{"type":"string","description":"The version of the Argos SDK"}},"required":["name","version"],"additionalProperties":false,"description":"The Argos SDK that generated the screenshot"},"story":{"description":"Storybook story metadata","anyOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique ID of the story"},"tags":{"description":"Tags attached to the story","type":"array","items":{"type":"string"}},"mode":{"description":"Story mode","type":"string"},"play":{"description":"True if the story has a play function","type":"boolean"}},"required":["id"],"additionalProperties":false,"description":"Storybook story metadata"},{"type":"null"}]},"tags":{"description":"Tags associated to the screenshot","type":"array","items":{"type":"string"}}},"required":["automationLibrary","sdk"],"additionalProperties":false,"description":"Metadata about a screenshot"},{"type":"null"}]},"width":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Width of the screenshot in pixels"},"height":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Height of the screenshot in pixels"},"url":{"type":"string","format":"uri","description":"Public URL of the snapshot"},"contentType":{"type":"string","description":"Content type of the snapshot file"}},"required":["id","name","metadata","width","height","url","contentType"],"additionalProperties":false,"description":"Snapshot associated to a diff"},{"type":"null"}]},"head":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier of the snapshot"},"name":{"type":"string","description":"Name of the snapshot"},"metadata":{"anyOf":[{"type":"object","properties":{"$schema":{"description":"Ignored. Can be set to get completions, validations and documentation in some editors.","type":"string"},"url":{"description":"The URL of the page that was screenshotted","anyOf":[{"type":"string"},{"type":"null"}]},"previewUrl":{"description":"An URL to an accessible preview of the screenshot","anyOf":[{"type":"string"},{"type":"null"}]},"viewport":{"anyOf":[{"type":"object","properties":{"width":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"The width of the viewport"},"height":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"The height of the viewport"}},"required":["width","height"],"additionalProperties":false,"description":"The viewport dimensions when the screenshot was taken"},{"type":"null"}]},"colorScheme":{"description":"The color scheme when the screenshot was taken","anyOf":[{"type":"string","enum":["light","dark"]},{"type":"null"}]},"mediaType":{"description":"The media type when the screenshot was taken","anyOf":[{"type":"string","enum":["screen","print"]},{"type":"null"}]},"test":{"anyOf":[{"type":"object","properties":{"id":{"description":"The unique identifier of the test","anyOf":[{"type":"string"},{"type":"null"}]},"title":{"type":"string","description":"The title of the test"},"titlePath":{"type":"array","items":{"type":"string"},"description":"The path of titles leading to the test"},"retries":{"description":"The number of retries for the test","anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"retry":{"description":"The current retry count","anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"repeat":{"description":"The repeat count for the test","anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"location":{"description":"The location of the test in the source code","type":"object","properties":{"file":{"type":"string","description":"The located file"},"line":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"The line number in the file"},"column":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"The column number in the file"}},"required":["file","line","column"],"additionalProperties":false},"annotations":{"description":"Annotations associated to the test","type":"array","items":{"type":"object","properties":{"type":{"type":"string","description":"The type of annotation"},"description":{"description":"The description of the annotation","type":"string"},"location":{"description":"The location of the annotation in the source code","type":"object","properties":{"file":{"type":"string","description":"The located file"},"line":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"The line number in the file"},"column":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"The column number in the file"}},"required":["file","line","column"],"additionalProperties":false}},"required":["type"],"additionalProperties":false,"description":"A test annotation"}},"tags":{"description":"Tags associated to the test","type":"array","items":{"type":"string"}}},"required":["title","titlePath"],"additionalProperties":false,"description":"The test that generated the screenshot"},{"type":"null"}]},"browser":{"anyOf":[{"type":"object","properties":{"name":{"type":"string","description":"The name of the browser"},"version":{"type":"string","description":"The version of the browser"}},"required":["name","version"],"additionalProperties":false,"description":"The browser that generated the screenshot"},{"type":"null"}]},"automationLibrary":{"type":"object","properties":{"name":{"type":"string","description":"The name of the automation library"},"version":{"type":"string","description":"The version of the automation library"}},"required":["name","version"],"additionalProperties":false,"description":"The automation library that generated the screenshot"},"sdk":{"type":"object","properties":{"name":{"type":"string","description":"The name of the Argos SDK"},"version":{"type":"string","description":"The version of the Argos SDK"}},"required":["name","version"],"additionalProperties":false,"description":"The Argos SDK that generated the screenshot"},"story":{"description":"Storybook story metadata","anyOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique ID of the story"},"tags":{"description":"Tags attached to the story","type":"array","items":{"type":"string"}},"mode":{"description":"Story mode","type":"string"},"play":{"description":"True if the story has a play function","type":"boolean"}},"required":["id"],"additionalProperties":false,"description":"Storybook story metadata"},{"type":"null"}]},"tags":{"description":"Tags associated to the screenshot","type":"array","items":{"type":"string"}}},"required":["automationLibrary","sdk"],"additionalProperties":false,"description":"Metadata about a screenshot"},{"type":"null"}]},"width":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Width of the screenshot in pixels"},"height":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Height of the screenshot in pixels"},"url":{"type":"string","format":"uri","description":"Public URL of the snapshot"},"contentType":{"type":"string","description":"Content type of the snapshot file"}},"required":["id","name","metadata","width","height","url","contentType"],"additionalProperties":false,"description":"Snapshot associated to a diff"},{"type":"null"}]},"test":{"anyOf":[{"$ref":"#/components/schemas/Test"},{"type":"null"}]},"change":{"anyOf":[{"$ref":"#/components/schemas/Change"},{"type":"null"}]}},"required":["id","name","status","score","group","parentName","url","base","head","test","change"],"additionalProperties":false,"description":"Snapshot diff"},"Test":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier of the test"},"name":{"type":"string","description":"Name of the test"},"buildName":{"type":"string","description":"Name of the build the test belongs to"},"metrics":{"$ref":"#/components/schemas/TestMetrics"}},"required":["id","name","buildName","metrics"],"additionalProperties":false,"description":"Test associated to a diff, with flakiness metrics to help decide whether a change is worth reviewing."},"TestMetrics":{"type":"object","properties":{"total":{"type":"number","description":"Number of builds in which this test ran over the metrics period."},"changes":{"type":"number","description":"Number of times the test changed (produced a diff) over the metrics period."},"uniqueChanges":{"type":"number","description":"Number of changes that were seen only once over the metrics period. A high ratio of unique changes is a strong flakiness signal."},"stability":{"type":"number","description":"Ratio of builds without a change, between 0 and 1. `1` means the test never changed."},"consistency":{"type":"number","description":"How consistent the changes are, between 0 and 1. `1` means changes repeat the same way; a low value means changes are erratic."},"flakiness":{"type":"number","description":"Overall flakiness score between 0 and 1, derived from stability and consistency. `0` means stable, `1` means highly flaky."}},"required":["total","changes","uniqueChanges","stability","consistency","flakiness"],"additionalProperties":false,"description":"Flakiness metrics of a test over the requested period."},"Change":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier of the change (a test + fingerprint pair). Use it with the ignore/unignore endpoints."},"ignored":{"type":"boolean","description":"Whether this change is currently ignored. Ignored changes no longer require review and are automatically approved."},"occurrences":{"type":"number","description":"Number of times this change has been seen over the metrics period. A high count for a recurring change is a strong flakiness signal."}},"required":["id","ignored","occurrences"],"additionalProperties":false,"description":"A test change: a specific visual difference (fingerprint) of a test that can be ignored to silence flaky changes."}}}}
```

## The Test object

```json
{"openapi":"3.2.0","info":{"title":"Argos API","version":"2.0.0"},"components":{"schemas":{"Test":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier of the test"},"name":{"type":"string","description":"Name of the test"},"buildName":{"type":"string","description":"Name of the build the test belongs to"},"metrics":{"$ref":"#/components/schemas/TestMetrics"}},"required":["id","name","buildName","metrics"],"additionalProperties":false,"description":"Test associated to a diff, with flakiness metrics to help decide whether a change is worth reviewing."},"TestMetrics":{"type":"object","properties":{"total":{"type":"number","description":"Number of builds in which this test ran over the metrics period."},"changes":{"type":"number","description":"Number of times the test changed (produced a diff) over the metrics period."},"uniqueChanges":{"type":"number","description":"Number of changes that were seen only once over the metrics period. A high ratio of unique changes is a strong flakiness signal."},"stability":{"type":"number","description":"Ratio of builds without a change, between 0 and 1. `1` means the test never changed."},"consistency":{"type":"number","description":"How consistent the changes are, between 0 and 1. `1` means changes repeat the same way; a low value means changes are erratic."},"flakiness":{"type":"number","description":"Overall flakiness score between 0 and 1, derived from stability and consistency. `0` means stable, `1` means highly flaky."}},"required":["total","changes","uniqueChanges","stability","consistency","flakiness"],"additionalProperties":false,"description":"Flakiness metrics of a test over the requested period."}}}}
```

## The TestMetrics object

```json
{"openapi":"3.2.0","info":{"title":"Argos API","version":"2.0.0"},"components":{"schemas":{"TestMetrics":{"type":"object","properties":{"total":{"type":"number","description":"Number of builds in which this test ran over the metrics period."},"changes":{"type":"number","description":"Number of times the test changed (produced a diff) over the metrics period."},"uniqueChanges":{"type":"number","description":"Number of changes that were seen only once over the metrics period. A high ratio of unique changes is a strong flakiness signal."},"stability":{"type":"number","description":"Ratio of builds without a change, between 0 and 1. `1` means the test never changed."},"consistency":{"type":"number","description":"How consistent the changes are, between 0 and 1. `1` means changes repeat the same way; a low value means changes are erratic."},"flakiness":{"type":"number","description":"Overall flakiness score between 0 and 1, derived from stability and consistency. `0` means stable, `1` means highly flaky."}},"required":["total","changes","uniqueChanges","stability","consistency","flakiness"],"additionalProperties":false,"description":"Flakiness metrics of a test over the requested period."}}}}
```

## The Change object

```json
{"openapi":"3.2.0","info":{"title":"Argos API","version":"2.0.0"},"components":{"schemas":{"Change":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier of the change (a test + fingerprint pair). Use it with the ignore/unignore endpoints."},"ignored":{"type":"boolean","description":"Whether this change is currently ignored. Ignored changes no longer require review and are automatically approved."},"occurrences":{"type":"number","description":"Number of times this change has been seen over the metrics period. A high count for a recurring change is a strong flakiness signal."}},"required":["id","ignored","occurrences"],"additionalProperties":false,"description":"A test change: a specific visual difference (fingerprint) of a test that can be ignored to silence flaky changes."}}}}
```

## The BuildReview object

```json
{"openapi":"3.2.0","info":{"title":"Argos API","version":"2.0.0"},"components":{"schemas":{"BuildReview":{"type":"object","properties":{"id":{"type":"string"},"buildId":{"type":"string"},"state":{"type":"string","enum":["approved","rejected","commented","pending"],"description":"State of a build review: approved, rejected, commented (neutral) or pending (an unsubmitted draft)."},"user":{"anyOf":[{"$ref":"#/components/schemas/User"},{"type":"null"}],"description":"The user who submitted the review."},"dismissedAt":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Date the review was dismissed, null if not dismissed."},"dismissedBy":{"anyOf":[{"$ref":"#/components/schemas/User"},{"type":"null"}],"description":"The user who dismissed the review, if any."},"agent":{"anyOf":[{"$ref":"#/components/schemas/Agent"},{"type":"null"}],"description":"The coding agent that submitted the review on the reviewer's behalf. Null when they submitted it themselves."},"date":{"type":"string","description":"Date the review was created."}},"required":["id","buildId","state","user","dismissedAt","dismissedBy","agent","date"],"additionalProperties":false,"description":"Build review"},"User":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","slug","name"],"additionalProperties":false,"description":"A user."},"Agent":{"type":"object","properties":{"id":{"type":"string","description":"Stable id of the agent, e.g. `claude-code`. `unknown` when it could not be identified."},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Name to display, e.g. `Claude Code`. Null for an agent we cannot name."}},"required":["id","name"],"additionalProperties":false,"description":"A coding agent acting on behalf of a user."}}}}
```

## The BuildReviewers object

```json
{"openapi":"3.2.0","info":{"title":"Argos API","version":"2.0.0"},"components":{"schemas":{"BuildReviewers":{"type":"object","properties":{"reviewers":{"type":"array","items":{"$ref":"#/components/schemas/User"},"description":"The users currently requested to review the build."}},"required":["reviewers"],"additionalProperties":false,"description":"The review requests standing on a build."},"User":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","slug","name"],"additionalProperties":false,"description":"A user."}}}}
```

## The NotificationSubscription object

```json
{"openapi":"3.2.0","info":{"title":"Argos API","version":"2.0.0"},"components":{"schemas":{"NotificationSubscription":{"type":"object","properties":{"subscribed":{"type":"boolean","description":"Whether the authenticated user now receives notifications for this resource."}},"required":["subscribed"],"additionalProperties":false,"description":"A notification subscription."}}}}
```

## The TestSummary object

```json
{"openapi":"3.2.0","info":{"title":"Argos API","version":"2.0.0"},"components":{"schemas":{"TestSummary":{"description":"A test with its flakiness metrics over the requested period. Fetch the test itself for its history and the changes behind the score.","$ref":"#/components/schemas/Test"},"Test":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier of the test"},"name":{"type":"string","description":"Name of the test"},"buildName":{"type":"string","description":"Name of the build the test belongs to"},"metrics":{"$ref":"#/components/schemas/TestMetrics"}},"required":["id","name","buildName","metrics"],"additionalProperties":false,"description":"Test associated to a diff, with flakiness metrics to help decide whether a change is worth reviewing."},"TestMetrics":{"type":"object","properties":{"total":{"type":"number","description":"Number of builds in which this test ran over the metrics period."},"changes":{"type":"number","description":"Number of times the test changed (produced a diff) over the metrics period."},"uniqueChanges":{"type":"number","description":"Number of changes that were seen only once over the metrics period. A high ratio of unique changes is a strong flakiness signal."},"stability":{"type":"number","description":"Ratio of builds without a change, between 0 and 1. `1` means the test never changed."},"consistency":{"type":"number","description":"How consistent the changes are, between 0 and 1. `1` means changes repeat the same way; a low value means changes are erratic."},"flakiness":{"type":"number","description":"Overall flakiness score between 0 and 1, derived from stability and consistency. `0` means stable, `1` means highly flaky."}},"required":["total","changes","uniqueChanges","stability","consistency","flakiness"],"additionalProperties":false,"description":"Flakiness metrics of a test over the requested period."}}}}
```

## The ProjectDomain object

```json
{"openapi":"3.2.0","info":{"title":"Argos API","version":"2.0.0"},"components":{"schemas":{"ProjectDomain":{"type":"object","properties":{"domain":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The project's production deployment domain, `null` when deployments are disabled or no domain is set."}},"required":["domain"],"additionalProperties":false,"description":"A project's production deployment domain."}}}}
```

## The IgnoredChange object

```json
{"openapi":"3.2.0","info":{"title":"Argos API","version":"2.0.0"},"components":{"schemas":{"IgnoredChange":{"type":"object","properties":{"id":{"type":"string","description":"Identifier of the ignored change, accepted by the unignore endpoint."},"test":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"buildName":{"type":"string"}},"required":["id","name","buildName"],"additionalProperties":false,"description":"The test the ignored change belongs to."}},"required":["id","test"],"additionalProperties":false,"description":"A change currently ignored in a project: it no longer requires review and is approved automatically."}}}}
```

## The TestDetails object

```json
{"openapi":"3.2.0","info":{"title":"Argos API","version":"2.0.0"},"components":{"schemas":{"TestDetails":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier of the test"},"name":{"type":"string","description":"Name of the test"},"buildName":{"type":"string","description":"Name of the build the test belongs to"},"metrics":{"$ref":"#/components/schemas/TestMetrics"},"status":{"$ref":"#/components/schemas/TestStatus"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"When Argos first saw this test."},"url":{"type":"string","format":"uri","description":"URL of the test in Argos."},"series":{"type":"array","items":{"$ref":"#/components/schemas/TestMetricsDataPoint"},"description":"The test's metrics bucketed over the requested period, oldest first. Use it to tell a test that has always been flaky from one that only started recently."},"firstSeenChange":{"anyOf":[{"$ref":"#/components/schemas/TestChangeOccurrence"},{"type":"null"}],"description":"The first time this test ever changed, whatever the period. Null when it never changed."},"lastSeenChange":{"anyOf":[{"$ref":"#/components/schemas/TestChangeOccurrence"},{"type":"null"}],"description":"The last time this test changed, whatever the period. Null when it never changed."}},"required":["id","name","buildName","metrics","status","createdAt","url","series","firstSeenChange","lastSeenChange"],"additionalProperties":false,"description":"A test with its flakiness metrics, both aggregated and over time, and when it first and last changed."},"TestMetrics":{"type":"object","properties":{"total":{"type":"number","description":"Number of builds in which this test ran over the metrics period."},"changes":{"type":"number","description":"Number of times the test changed (produced a diff) over the metrics period."},"uniqueChanges":{"type":"number","description":"Number of changes that were seen only once over the metrics period. A high ratio of unique changes is a strong flakiness signal."},"stability":{"type":"number","description":"Ratio of builds without a change, between 0 and 1. `1` means the test never changed."},"consistency":{"type":"number","description":"How consistent the changes are, between 0 and 1. `1` means changes repeat the same way; a low value means changes are erratic."},"flakiness":{"type":"number","description":"Overall flakiness score between 0 and 1, derived from stability and consistency. `0` means stable, `1` means highly flaky."}},"required":["total","changes","uniqueChanges","stability","consistency","flakiness"],"additionalProperties":false,"description":"Flakiness metrics of a test over the requested period."},"TestStatus":{"type":"string","enum":["ongoing","removed"],"description":"`ongoing` when the test still runs — it showed up in the latest build of its build name. `removed` when it did not, so it was deleted, renamed or skipped."},"TestMetricsDataPoint":{"type":"object","properties":{"date":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Start of the time bucket."},"total":{"type":"number","description":"Number of builds in which the test ran in this bucket."},"changes":{"type":"number","description":"Number of times the test changed in this bucket."},"uniqueChanges":{"type":"number","description":"Number of those changes that were seen only once."}},"required":["date","total","changes","uniqueChanges"],"additionalProperties":false,"description":"One bucket of a test's metrics over time. The bucket size is derived from the requested period."},"TestChangeOccurrence":{"type":"object","properties":{"date":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"When the diff was captured."},"url":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}],"description":"Public URL of the diff image. Null when the image is no longer available."},"buildNumber":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"Number of the build that captured the diff."},"buildUrl":{"type":"string","format":"uri","description":"URL of that build in Argos."}},"required":["date","url","buildNumber","buildUrl"],"additionalProperties":false,"description":"A single appearance of a change, in the build that saw it."}}}}
```

## The TestStatus object

```json
{"openapi":"3.2.0","info":{"title":"Argos API","version":"2.0.0"},"components":{"schemas":{"TestStatus":{"type":"string","enum":["ongoing","removed"],"description":"`ongoing` when the test still runs — it showed up in the latest build of its build name. `removed` when it did not, so it was deleted, renamed or skipped."}}}}
```

## The TestMetricsDataPoint object

```json
{"openapi":"3.2.0","info":{"title":"Argos API","version":"2.0.0"},"components":{"schemas":{"TestMetricsDataPoint":{"type":"object","properties":{"date":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Start of the time bucket."},"total":{"type":"number","description":"Number of builds in which the test ran in this bucket."},"changes":{"type":"number","description":"Number of times the test changed in this bucket."},"uniqueChanges":{"type":"number","description":"Number of those changes that were seen only once."}},"required":["date","total","changes","uniqueChanges"],"additionalProperties":false,"description":"One bucket of a test's metrics over time. The bucket size is derived from the requested period."}}}}
```

## The TestChangeOccurrence object

```json
{"openapi":"3.2.0","info":{"title":"Argos API","version":"2.0.0"},"components":{"schemas":{"TestChangeOccurrence":{"type":"object","properties":{"date":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"When the diff was captured."},"url":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}],"description":"Public URL of the diff image. Null when the image is no longer available."},"buildNumber":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"Number of the build that captured the diff."},"buildUrl":{"type":"string","format":"uri","description":"URL of that build in Argos."}},"required":["date","url","buildNumber","buildUrl"],"additionalProperties":false,"description":"A single appearance of a change, in the build that saw it."}}}}
```

## The TestChange object

```json
{"openapi":"3.2.0","info":{"title":"Argos API","version":"2.0.0"},"components":{"schemas":{"TestChange":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier of the change (a test + fingerprint pair). Use it with the ignore/unignore endpoints."},"ignored":{"type":"boolean","description":"Whether this change is currently ignored. Ignored changes no longer require review and are automatically approved."},"occurrences":{"type":"number","description":"Number of times this change has been seen over the metrics period. A high count for a recurring change is a strong flakiness signal."},"firstSeen":{"description":"The first time this change was seen over the period.","$ref":"#/components/schemas/TestChangeOccurrence"},"lastSeen":{"description":"The last time this change was seen over the period.","$ref":"#/components/schemas/TestChangeOccurrence"},"diff":{"description":"The diff captured the last time the change was seen, with the baseline and the captured snapshot, so you can look at what moved.","$ref":"#/components/schemas/SnapshotDiff"}},"required":["id","ignored","occurrences","firstSeen","lastSeen","diff"],"additionalProperties":false,"description":"One distinct change of a test: an exact visual difference, with how often it came back over the period. A change that keeps reappearing while nothing in the UI changed is a flaky one."},"TestChangeOccurrence":{"type":"object","properties":{"date":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"When the diff was captured."},"url":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}],"description":"Public URL of the diff image. Null when the image is no longer available."},"buildNumber":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"Number of the build that captured the diff."},"buildUrl":{"type":"string","format":"uri","description":"URL of that build in Argos."}},"required":["date","url","buildNumber","buildUrl"],"additionalProperties":false,"description":"A single appearance of a change, in the build that saw it."},"SnapshotDiff":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier of the snapshot diff"},"name":{"type":"string","description":"Name of the snapshot diff"},"status":{"type":"string","enum":["pending","removed","failure","added","changed","unchanged","retryFailure","ignored"],"description":"Status of the snapshot diff"},"score":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Similarity score between snapshots"},"group":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Grouping key for the snapshot diff"},"parentName":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Parent name of the snapshot (usually the story id)"},"url":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}],"description":"URL of the diff image"},"base":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier of the snapshot"},"name":{"type":"string","description":"Name of the snapshot"},"metadata":{"anyOf":[{"type":"object","properties":{"$schema":{"description":"Ignored. Can be set to get completions, validations and documentation in some editors.","type":"string"},"url":{"description":"The URL of the page that was screenshotted","anyOf":[{"type":"string"},{"type":"null"}]},"previewUrl":{"description":"An URL to an accessible preview of the screenshot","anyOf":[{"type":"string"},{"type":"null"}]},"viewport":{"anyOf":[{"type":"object","properties":{"width":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"The width of the viewport"},"height":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"The height of the viewport"}},"required":["width","height"],"additionalProperties":false,"description":"The viewport dimensions when the screenshot was taken"},{"type":"null"}]},"colorScheme":{"description":"The color scheme when the screenshot was taken","anyOf":[{"type":"string","enum":["light","dark"]},{"type":"null"}]},"mediaType":{"description":"The media type when the screenshot was taken","anyOf":[{"type":"string","enum":["screen","print"]},{"type":"null"}]},"test":{"anyOf":[{"type":"object","properties":{"id":{"description":"The unique identifier of the test","anyOf":[{"type":"string"},{"type":"null"}]},"title":{"type":"string","description":"The title of the test"},"titlePath":{"type":"array","items":{"type":"string"},"description":"The path of titles leading to the test"},"retries":{"description":"The number of retries for the test","anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"retry":{"description":"The current retry count","anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"repeat":{"description":"The repeat count for the test","anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"location":{"description":"The location of the test in the source code","type":"object","properties":{"file":{"type":"string","description":"The located file"},"line":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"The line number in the file"},"column":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"The column number in the file"}},"required":["file","line","column"],"additionalProperties":false},"annotations":{"description":"Annotations associated to the test","type":"array","items":{"type":"object","properties":{"type":{"type":"string","description":"The type of annotation"},"description":{"description":"The description of the annotation","type":"string"},"location":{"description":"The location of the annotation in the source code","type":"object","properties":{"file":{"type":"string","description":"The located file"},"line":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"The line number in the file"},"column":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"The column number in the file"}},"required":["file","line","column"],"additionalProperties":false}},"required":["type"],"additionalProperties":false,"description":"A test annotation"}},"tags":{"description":"Tags associated to the test","type":"array","items":{"type":"string"}}},"required":["title","titlePath"],"additionalProperties":false,"description":"The test that generated the screenshot"},{"type":"null"}]},"browser":{"anyOf":[{"type":"object","properties":{"name":{"type":"string","description":"The name of the browser"},"version":{"type":"string","description":"The version of the browser"}},"required":["name","version"],"additionalProperties":false,"description":"The browser that generated the screenshot"},{"type":"null"}]},"automationLibrary":{"type":"object","properties":{"name":{"type":"string","description":"The name of the automation library"},"version":{"type":"string","description":"The version of the automation library"}},"required":["name","version"],"additionalProperties":false,"description":"The automation library that generated the screenshot"},"sdk":{"type":"object","properties":{"name":{"type":"string","description":"The name of the Argos SDK"},"version":{"type":"string","description":"The version of the Argos SDK"}},"required":["name","version"],"additionalProperties":false,"description":"The Argos SDK that generated the screenshot"},"story":{"description":"Storybook story metadata","anyOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique ID of the story"},"tags":{"description":"Tags attached to the story","type":"array","items":{"type":"string"}},"mode":{"description":"Story mode","type":"string"},"play":{"description":"True if the story has a play function","type":"boolean"}},"required":["id"],"additionalProperties":false,"description":"Storybook story metadata"},{"type":"null"}]},"tags":{"description":"Tags associated to the screenshot","type":"array","items":{"type":"string"}}},"required":["automationLibrary","sdk"],"additionalProperties":false,"description":"Metadata about a screenshot"},{"type":"null"}]},"width":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Width of the screenshot in pixels"},"height":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Height of the screenshot in pixels"},"url":{"type":"string","format":"uri","description":"Public URL of the snapshot"},"contentType":{"type":"string","description":"Content type of the snapshot file"}},"required":["id","name","metadata","width","height","url","contentType"],"additionalProperties":false,"description":"Snapshot associated to a diff"},{"type":"null"}]},"head":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier of the snapshot"},"name":{"type":"string","description":"Name of the snapshot"},"metadata":{"anyOf":[{"type":"object","properties":{"$schema":{"description":"Ignored. Can be set to get completions, validations and documentation in some editors.","type":"string"},"url":{"description":"The URL of the page that was screenshotted","anyOf":[{"type":"string"},{"type":"null"}]},"previewUrl":{"description":"An URL to an accessible preview of the screenshot","anyOf":[{"type":"string"},{"type":"null"}]},"viewport":{"anyOf":[{"type":"object","properties":{"width":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"The width of the viewport"},"height":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"The height of the viewport"}},"required":["width","height"],"additionalProperties":false,"description":"The viewport dimensions when the screenshot was taken"},{"type":"null"}]},"colorScheme":{"description":"The color scheme when the screenshot was taken","anyOf":[{"type":"string","enum":["light","dark"]},{"type":"null"}]},"mediaType":{"description":"The media type when the screenshot was taken","anyOf":[{"type":"string","enum":["screen","print"]},{"type":"null"}]},"test":{"anyOf":[{"type":"object","properties":{"id":{"description":"The unique identifier of the test","anyOf":[{"type":"string"},{"type":"null"}]},"title":{"type":"string","description":"The title of the test"},"titlePath":{"type":"array","items":{"type":"string"},"description":"The path of titles leading to the test"},"retries":{"description":"The number of retries for the test","anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"retry":{"description":"The current retry count","anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"repeat":{"description":"The repeat count for the test","anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"location":{"description":"The location of the test in the source code","type":"object","properties":{"file":{"type":"string","description":"The located file"},"line":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"The line number in the file"},"column":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"The column number in the file"}},"required":["file","line","column"],"additionalProperties":false},"annotations":{"description":"Annotations associated to the test","type":"array","items":{"type":"object","properties":{"type":{"type":"string","description":"The type of annotation"},"description":{"description":"The description of the annotation","type":"string"},"location":{"description":"The location of the annotation in the source code","type":"object","properties":{"file":{"type":"string","description":"The located file"},"line":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"The line number in the file"},"column":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"The column number in the file"}},"required":["file","line","column"],"additionalProperties":false}},"required":["type"],"additionalProperties":false,"description":"A test annotation"}},"tags":{"description":"Tags associated to the test","type":"array","items":{"type":"string"}}},"required":["title","titlePath"],"additionalProperties":false,"description":"The test that generated the screenshot"},{"type":"null"}]},"browser":{"anyOf":[{"type":"object","properties":{"name":{"type":"string","description":"The name of the browser"},"version":{"type":"string","description":"The version of the browser"}},"required":["name","version"],"additionalProperties":false,"description":"The browser that generated the screenshot"},{"type":"null"}]},"automationLibrary":{"type":"object","properties":{"name":{"type":"string","description":"The name of the automation library"},"version":{"type":"string","description":"The version of the automation library"}},"required":["name","version"],"additionalProperties":false,"description":"The automation library that generated the screenshot"},"sdk":{"type":"object","properties":{"name":{"type":"string","description":"The name of the Argos SDK"},"version":{"type":"string","description":"The version of the Argos SDK"}},"required":["name","version"],"additionalProperties":false,"description":"The Argos SDK that generated the screenshot"},"story":{"description":"Storybook story metadata","anyOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique ID of the story"},"tags":{"description":"Tags attached to the story","type":"array","items":{"type":"string"}},"mode":{"description":"Story mode","type":"string"},"play":{"description":"True if the story has a play function","type":"boolean"}},"required":["id"],"additionalProperties":false,"description":"Storybook story metadata"},{"type":"null"}]},"tags":{"description":"Tags associated to the screenshot","type":"array","items":{"type":"string"}}},"required":["automationLibrary","sdk"],"additionalProperties":false,"description":"Metadata about a screenshot"},{"type":"null"}]},"width":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Width of the screenshot in pixels"},"height":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Height of the screenshot in pixels"},"url":{"type":"string","format":"uri","description":"Public URL of the snapshot"},"contentType":{"type":"string","description":"Content type of the snapshot file"}},"required":["id","name","metadata","width","height","url","contentType"],"additionalProperties":false,"description":"Snapshot associated to a diff"},{"type":"null"}]},"test":{"anyOf":[{"$ref":"#/components/schemas/Test"},{"type":"null"}]},"change":{"anyOf":[{"$ref":"#/components/schemas/Change"},{"type":"null"}]}},"required":["id","name","status","score","group","parentName","url","base","head","test","change"],"additionalProperties":false,"description":"Snapshot diff"},"Test":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier of the test"},"name":{"type":"string","description":"Name of the test"},"buildName":{"type":"string","description":"Name of the build the test belongs to"},"metrics":{"$ref":"#/components/schemas/TestMetrics"}},"required":["id","name","buildName","metrics"],"additionalProperties":false,"description":"Test associated to a diff, with flakiness metrics to help decide whether a change is worth reviewing."},"TestMetrics":{"type":"object","properties":{"total":{"type":"number","description":"Number of builds in which this test ran over the metrics period."},"changes":{"type":"number","description":"Number of times the test changed (produced a diff) over the metrics period."},"uniqueChanges":{"type":"number","description":"Number of changes that were seen only once over the metrics period. A high ratio of unique changes is a strong flakiness signal."},"stability":{"type":"number","description":"Ratio of builds without a change, between 0 and 1. `1` means the test never changed."},"consistency":{"type":"number","description":"How consistent the changes are, between 0 and 1. `1` means changes repeat the same way; a low value means changes are erratic."},"flakiness":{"type":"number","description":"Overall flakiness score between 0 and 1, derived from stability and consistency. `0` means stable, `1` means highly flaky."}},"required":["total","changes","uniqueChanges","stability","consistency","flakiness"],"additionalProperties":false,"description":"Flakiness metrics of a test over the requested period."},"Change":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier of the change (a test + fingerprint pair). Use it with the ignore/unignore endpoints."},"ignored":{"type":"boolean","description":"Whether this change is currently ignored. Ignored changes no longer require review and are automatically approved."},"occurrences":{"type":"number","description":"Number of times this change has been seen over the metrics period. A high count for a recurring change is a strong flakiness signal."}},"required":["id","ignored","occurrences"],"additionalProperties":false,"description":"A test change: a specific visual difference (fingerprint) of a test that can be ignored to silence flaky changes."}}}}
```

## The IgnoreConfigOutput object

```json
{"openapi":"3.2.0","info":{"title":"Argos API","version":"2.0.0"},"components":{"schemas":{"IgnoreConfigOutput":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Whether changes can be ignored on this project."},"autoIgnore":{"anyOf":[{"type":"object","properties":{"changes":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"Number of times a change must reappear before it is ignored automatically."}},"required":["changes"],"additionalProperties":false},{"type":"null"}],"description":"Auto-ignore settings, `null` when auto-ignore is off."}},"required":["enabled","autoIgnore"],"additionalProperties":false,"description":"How flaky changes are ignored on a project."}}}}
```

## The AutomationConditionOutput object

```json
{"openapi":"3.2.0","info":{"title":"Argos API","version":"2.0.0"},"components":{"schemas":{"AutomationConditionOutput":{"anyOf":[{"anyOf":[{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"build-branch"},"value":{"type":"string","minLength":1}},"required":["type","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"build-conclusion"},"value":{"anyOf":[{"type":"string","enum":["no-changes","changes-detected"]},{"type":"null"}]}},"required":["type","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"build-mode"},"value":{"anyOf":[{"type":"string","enum":["ci","monitoring"]},{"type":"null"}]}},"required":["type","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"build-name"},"value":{"type":"string","minLength":1}},"required":["type","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"build-type"},"value":{"anyOf":[{"type":"string","enum":["reference","check","orphan","skipped"]},{"type":"null"}]}},"required":["type","value"],"additionalProperties":false}],"type":"object"},{"type":"object","properties":{"glob":{"type":"object","properties":{"type":{"type":"string","const":"build-branch"},"value":{"type":"string","minLength":1}},"required":["type","value"],"additionalProperties":false}},"required":["glob"],"additionalProperties":false}]},{"type":"object","properties":{"not":{"anyOf":[{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"build-branch"},"value":{"type":"string","minLength":1}},"required":["type","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"build-conclusion"},"value":{"anyOf":[{"type":"string","enum":["no-changes","changes-detected"]},{"type":"null"}]}},"required":["type","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"build-mode"},"value":{"anyOf":[{"type":"string","enum":["ci","monitoring"]},{"type":"null"}]}},"required":["type","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"build-name"},"value":{"type":"string","minLength":1}},"required":["type","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"build-type"},"value":{"anyOf":[{"type":"string","enum":["reference","check","orphan","skipped"]},{"type":"null"}]}},"required":["type","value"],"additionalProperties":false}],"type":"object"},{"type":"object","properties":{"glob":{"type":"object","properties":{"type":{"type":"string","const":"build-branch"},"value":{"type":"string","minLength":1}},"required":["type","value"],"additionalProperties":false}},"required":["glob"],"additionalProperties":false}]}},"required":["not"],"additionalProperties":false}],"description":"A condition narrowing when a rule fires. Conditions are combined with AND; wrap one in `{ not: … }` to negate it, or `{ glob: … }` to match a branch by pattern."}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://argos-ci.com/docs/api-reference/reference/models.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
