IP Detection
Check prompts and/or existing assets against the team’s enabled IP-detection filters, without generating anything. Advisory only: the call never blocks and nothing is stored. The payload is analyzed as ONE input set, so the answer is a single merged verdict — call the route once per item to know which item trips a filter. Videos are analyzed through their extracted frames; audio and 3d assets are returned in skippedAssetIds and are never checked. Available on the Enterprise plan only; a team with no enabled filter gets evaluatedFilters: 0 and is charged nothing. Billed on the provider tokens the check sends — the prompt plus every analyzed image, once per enabled filter — with a 1 CU minimum, reported under ipDetection.creativeUnitsCharged and surfaced in GET /v1/usages as ip-detection.
IP Detection
import Scenario from '@scenario-labs/sdk';
const client = new Scenario({
apiKey: process.env['SCENARIO_SDK_API_KEY'], // This is the default and can be omitted
apiSecret: process.env['SCENARIO_SDK_API_SECRET'], // This is the default and can be omitted
});
const response = await client.generate.ipDetection();
console.log(response.ipDetection);{
"ipDetection": {
"action": "allowed",
"analyzedImagesCount": 0,
"creativeUnitsCharged": 0,
"evaluatedFilters": 0,
"findings": [
{
"category": "artist-style",
"confidence": 0,
"filterId": "filterId",
"filterName": "filterName",
"flagged": true,
"reason": "reason",
"entities": [
"string"
]
}
],
"flagged": true,
"hasDetectorError": true
},
"skippedAssetIds": [
"string"
]
}Returns Examples
{
"ipDetection": {
"action": "allowed",
"analyzedImagesCount": 0,
"creativeUnitsCharged": 0,
"evaluatedFilters": 0,
"findings": [
{
"category": "artist-style",
"confidence": 0,
"filterId": "filterId",
"filterName": "filterName",
"flagged": true,
"reason": "reason",
"entities": [
"string"
]
}
],
"flagged": true,
"hasDetectorError": true
},
"skippedAssetIds": [
"string"
]
}