Story checks
Write the checks Nuvelics evaluates your stories against, draft one from a sentence, and preview one before you save it.
x-api-key<token>A service key (nvs_...) in the x-api-key header. A service key belongs to one organization: an X-Org-Id header is optional and, when sent, must name that organization. This header also accepts any credential the bearer scheme does, and when a request sends both headers, this one is used.
Every check the org has ever defined, archived included
application/json- response
items*array<>curl -X GET 'https://api.nuvelics.com/api/tenant/v1/story-checks'{ "items": [ { "id": "string", "orgId": "string", "slug": "string", "name": "string", "instructions": "string", "outputKind": "findings", "maxSeverity": "inform", "channels": [ "nrcs" ], "modelTier": "fast", "enabled": false, "enabledAt": "2019-08-24T14:15:22Z", "definitionVersion": 1, "version": 0, "createdBy": "string", "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z", "archivedAt": "2019-08-24T14:15:22Z" } ]}x-api-key<token>A service key (nvs_...) in the x-api-key header. A service key belongs to one organization: an X-Org-Id header is optional and, when sent, must name that organization. This header also accepts any credential the bearer scheme does, and when a request sends both headers, this one is used.
application/json- body
slug*stringKebab-case identifier this check is keyed by downstream (the rule_id on the wire); immutable after create
^[a-z0-9]+(-[a-z0-9]+)*$1 <= length <= 100name*stringCheck display name
1 <= lengthinstructions*stringOrg-authored rubric text evaluated against a story's content, in the admin's own words
1 <= length <= 4000outputKind*stringWhether this check reports findings against a rubric or freeform suggestions
"findings""suggestions"maxSeverity*stringSeverity ceiling a finding is clamped to, never raised past; only meaningful when outputKind is findings, null otherwise
"inform""flag"nullchannels*array<>Where this check runs; a non-empty set with no duplicates
1 <= itemsmodelTier?stringWhich model tier evaluates this check
"fast""fast""capable"enabled?booleanWhether this check runs on matching stories
falseStory check created
application/json- response
id*stringStory check identifier
^[0-7][0-9A-HJKMNP-TV-Z]{25}$orgId*stringOwning organization identifier
^[0-7][0-9A-HJKMNP-TV-Z]{25}$slug*stringKebab-case identifier this check is keyed by downstream (the rule_id on the wire); immutable after create
^[a-z0-9]+(-[a-z0-9]+)*$1 <= length <= 100name*stringCheck display name
1 <= lengthinstructions*stringOrg-authored rubric text evaluated against a story's content, in the admin's own words
1 <= length <= 4000outputKind*stringWhether this check reports findings against a rubric or freeform suggestions
"findings""suggestions"maxSeverity*stringSeverity ceiling a finding is clamped to, never raised past; only meaningful when outputKind is findings, null otherwise
"inform""flag"nullchannels*array<>Where this check runs; a non-empty set with no duplicates
1 <= itemsmodelTier?stringWhich model tier evaluates this check
"fast""fast""capable"enabled?booleanWhether this check runs on matching stories
falseenabledAt*stringWhen enabled was last switched on; null if it never has been
date-timedefinitionVersion*integerBumped whenever instructions, maxSeverity, outputKind or modelTier changes
1 <= valueversion*integerMonotonic row version; used as concurrency token
createdBy*stringUser who created this check
^[0-7][0-9A-HJKMNP-TV-Z]{25}$createdAt*stringISO 8601 creation timestamp
date-timeupdatedAt*stringISO 8601 last-modified timestamp
date-timearchivedAt*stringISO 8601 archival timestamp; null while the check is active
date-timecurl -X POST 'https://api.nuvelics.com/api/tenant/v1/story-checks' \ -H 'Content-Type: application/json' \ -d '{ "slug": "string", "name": "string", "instructions": "string", "outputKind": "findings", "maxSeverity": "inform", "channels": [ "nrcs" ]}'{ "id": "string", "orgId": "string", "slug": "string", "name": "string", "instructions": "string", "outputKind": "findings", "maxSeverity": "inform", "channels": [ "nrcs" ], "modelTier": "fast", "enabled": false, "enabledAt": "2019-08-24T14:15:22Z", "definitionVersion": 1, "version": 0, "createdBy": "string", "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z", "archivedAt": "2019-08-24T14:15:22Z"}x-api-key<token>A service key (nvs_...) in the x-api-key header. A service key belongs to one organization: an X-Org-Id header is optional and, when sent, must name that organization. This header also accepts any credential the bearer scheme does, and when a request sends both headers, this one is used.
id*stringStory check identifier
^[0-7][0-9A-HJKMNP-TV-Z]{25}$The story check.
application/json- response
id*stringStory check identifier
^[0-7][0-9A-HJKMNP-TV-Z]{25}$orgId*stringOwning organization identifier
^[0-7][0-9A-HJKMNP-TV-Z]{25}$slug*stringKebab-case identifier this check is keyed by downstream (the rule_id on the wire); immutable after create
^[a-z0-9]+(-[a-z0-9]+)*$1 <= length <= 100name*stringCheck display name
1 <= lengthinstructions*stringOrg-authored rubric text evaluated against a story's content, in the admin's own words
1 <= length <= 4000outputKind*stringWhether this check reports findings against a rubric or freeform suggestions
"findings""suggestions"maxSeverity*stringSeverity ceiling a finding is clamped to, never raised past; only meaningful when outputKind is findings, null otherwise
"inform""flag"nullchannels*array<>Where this check runs; a non-empty set with no duplicates
1 <= itemsmodelTier?stringWhich model tier evaluates this check
"fast""fast""capable"enabled?booleanWhether this check runs on matching stories
falseenabledAt*stringWhen enabled was last switched on; null if it never has been
date-timedefinitionVersion*integerBumped whenever instructions, maxSeverity, outputKind or modelTier changes
1 <= valueversion*integerMonotonic row version; used as concurrency token
createdBy*stringUser who created this check
^[0-7][0-9A-HJKMNP-TV-Z]{25}$createdAt*stringISO 8601 creation timestamp
date-timeupdatedAt*stringISO 8601 last-modified timestamp
date-timearchivedAt*stringISO 8601 archival timestamp; null while the check is active
date-timecurl -X GET 'https://api.nuvelics.com/api/tenant/v1/story-checks/string'{ "id": "string", "orgId": "string", "slug": "string", "name": "string", "instructions": "string", "outputKind": "findings", "maxSeverity": "inform", "channels": [ "nrcs" ], "modelTier": "fast", "enabled": false, "enabledAt": "2019-08-24T14:15:22Z", "definitionVersion": 1, "version": 0, "createdBy": "string", "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z", "archivedAt": "2019-08-24T14:15:22Z"}x-api-key<token>A service key (nvs_...) in the x-api-key header. A service key belongs to one organization: an X-Org-Id header is optional and, when sent, must name that organization. This header also accepts any credential the bearer scheme does, and when a request sends both headers, this one is used.
id*stringStory check identifier
^[0-7][0-9A-HJKMNP-TV-Z]{25}$application/json- body
name?stringCheck display name
1 <= lengthinstructions?stringOrg-authored rubric text evaluated against a story's content, in the admin's own words
1 <= length <= 4000outputKind?stringWhether this check reports findings against a rubric or freeform suggestions
"findings""suggestions"maxSeverity?stringSeverity ceiling a finding is clamped to, never raised past; only meaningful when outputKind is findings, null otherwise
"inform""flag"nullchannels?array<>Where this check runs; a non-empty set with no duplicates
1 <= itemsmodelTier?string"fast""capable"enabled?booleanStory check updated
application/json- response
id*stringStory check identifier
^[0-7][0-9A-HJKMNP-TV-Z]{25}$orgId*stringOwning organization identifier
^[0-7][0-9A-HJKMNP-TV-Z]{25}$slug*stringKebab-case identifier this check is keyed by downstream (the rule_id on the wire); immutable after create
^[a-z0-9]+(-[a-z0-9]+)*$1 <= length <= 100name*stringCheck display name
1 <= lengthinstructions*stringOrg-authored rubric text evaluated against a story's content, in the admin's own words
1 <= length <= 4000outputKind*stringWhether this check reports findings against a rubric or freeform suggestions
"findings""suggestions"maxSeverity*stringSeverity ceiling a finding is clamped to, never raised past; only meaningful when outputKind is findings, null otherwise
"inform""flag"nullchannels*array<>Where this check runs; a non-empty set with no duplicates
1 <= itemsmodelTier?stringWhich model tier evaluates this check
"fast""fast""capable"enabled?booleanWhether this check runs on matching stories
falseenabledAt*stringWhen enabled was last switched on; null if it never has been
date-timedefinitionVersion*integerBumped whenever instructions, maxSeverity, outputKind or modelTier changes
1 <= valueversion*integerMonotonic row version; used as concurrency token
createdBy*stringUser who created this check
^[0-7][0-9A-HJKMNP-TV-Z]{25}$createdAt*stringISO 8601 creation timestamp
date-timeupdatedAt*stringISO 8601 last-modified timestamp
date-timearchivedAt*stringISO 8601 archival timestamp; null while the check is active
date-timecurl -X PATCH 'https://api.nuvelics.com/api/tenant/v1/story-checks/string' \ -H 'Content-Type: application/json' \ -d '{}'{ "id": "string", "orgId": "string", "slug": "string", "name": "string", "instructions": "string", "outputKind": "findings", "maxSeverity": "inform", "channels": [ "nrcs" ], "modelTier": "fast", "enabled": false, "enabledAt": "2019-08-24T14:15:22Z", "definitionVersion": 1, "version": 0, "createdBy": "string", "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z", "archivedAt": "2019-08-24T14:15:22Z"}x-api-key<token>A service key (nvs_...) in the x-api-key header. A service key belongs to one organization: an X-Org-Id header is optional and, when sent, must name that organization. This header also accepts any credential the bearer scheme does, and when a request sends both headers, this one is used.
id*stringStory check identifier
^[0-7][0-9A-HJKMNP-TV-Z]{25}$Story check archived
curl -X DELETE 'https://api.nuvelics.com/api/tenant/v1/story-checks/string'x-api-key<token>A service key (nvs_...) in the x-api-key header. A service key belongs to one organization: an X-Org-Id header is optional and, when sent, must name that organization. This header also accepts any credential the bearer scheme does, and when a request sends both headers, this one is used.
application/json- body
definition*subject*|The evaluator's verdict against the draft definition and subject
application/json- response
verdict*string"pass""findings"findings*array<>items <= 20truncated*booleanWhether the model's findings list was longer than the cap and was truncated
curl -X POST 'https://api.nuvelics.com/api/tenant/v1/story-checks/preview' \ -H 'Content-Type: application/json' \ -d '{ "definition": { "instructions": "string", "outputKind": "findings", "maxSeverity": "inform" }, "subject": { "storyId": "string" }}'{ "verdict": "pass", "findings": [ { "severity": "inform", "title": "string", "detail": "string", "excerpt": "string" } ], "truncated": true}x-api-key<token>A service key (nvs_...) in the x-api-key header. A service key belongs to one organization: an X-Org-Id header is optional and, when sent, must name that organization. This header also accepts any credential the bearer scheme does, and when a request sends both headers, this one is used.
application/json- body
intent*stringA sentence or two of editorial intent the admin types, from which a model drafts a full check definition
1 <= length <= 500A complete, editable check definition drafted from the intent; nothing is stored
application/json- response
slug*stringKebab-case identifier this check is keyed by downstream (the rule_id on the wire); immutable after create
^[a-z0-9]+(-[a-z0-9]+)*$1 <= length <= 100name*stringCheck display name
1 <= lengthinstructions*stringOrg-authored rubric text evaluated against a story's content, in the admin's own words
1 <= length <= 4000outputKind*stringWhether this check reports findings against a rubric or freeform suggestions
"findings""suggestions"maxSeverity*stringSeverity ceiling a finding is clamped to, never raised past; only meaningful when outputKind is findings, null otherwise
"inform""flag"nullchannels*array<>Where this check runs; a non-empty set with no duplicates
1 <= itemsmodelTier?stringWhich model tier evaluates this check
"fast""fast""capable"curl -X POST 'https://api.nuvelics.com/api/tenant/v1/story-checks/draft' \ -H 'Content-Type: application/json' \ -d '{ "intent": "string"}'{ "slug": "string", "name": "string", "instructions": "string", "outputKind": "findings", "maxSeverity": "inform", "channels": [ "nrcs" ], "modelTier": "fast"}