isMalicious Gate API
isinjected gate: prompt-injection scanning and link reputation for AI agents (own scan meter)
isinjected gate: prompt-injection scanning and link reputation for AI agents (own scan meter)
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/ismalicious-com:ismalicious-com-gate-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Ismalicious Com Gate API
version: 1.2.0
contact:
name: isMalicious Support
url: https://ismalicious.com/support
email: contact@ismalicious.com
license:
name: Proprietary
url: https://ismalicious.com/terms
description: 'Operations tagged gate across 2 of this provider''s published API definitions: ismalicious-com-openapi.json, ismalicious-com-openapi2.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.ismalicious.com
description: Production server
security:
- ApiKeyAuth: []
- BearerAuth: []
- BasicAuth: []
tags:
- name: gate
description: 'isinjected gate: prompt-injection scanning and link reputation for AI agents (own scan meter)'
paths:
/gate/quota:
get:
tags:
- gate
summary: GET /gate/quota
operationId: quota_status
responses:
'200':
description: Scan quota status
content:
application/json:
schema:
$ref: '#/components/schemas/GateQuotaResponse'
security:
- ApiKeyAuth: []
servers:
- url: https://api.ismalicious.com
description: Production server
/gate/scan:
post:
tags:
- gate
summary: POST /gate/scan
operationId: scan
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ScanRequest'
required: true
responses:
'200':
description: Scan verdict
content:
application/json:
schema:
$ref: '#/components/schemas/ScanResponse'
'400':
description: Empty content
'401':
description: Unauthorized
'413':
description: Content exceeds 1 MiB
'429':
description: Scan quota exceeded
content:
application/json:
schema:
$ref: '#/components/schemas/QuotaBody'
security:
- ApiKeyAuth: []
servers:
- url: https://api.ismalicious.com
description: Production server
/gate/url:
get:
tags:
- gate
summary: GET /gate/url?u=
operationId: url
parameters:
- name: u
in: query
description: URL to check
required: true
schema:
type: string
responses:
'200':
description: Reputation verdict
content:
application/json:
schema:
$ref: '#/components/schemas/UrlResponse'
'400':
description: u must not be empty
'401':
description: Unauthorized
'429':
description: Scan quota exceeded
content:
application/json:
schema:
$ref: '#/components/schemas/QuotaBody'
security:
- ApiKeyAuth: []
servers:
- url: https://api.ismalicious.com
description: Production server
components:
schemas:
UrlResponse:
type: object
required:
- url
- entity
- verdict
- sources
- latency_ms
properties:
entity:
type: string
latency_ms:
type: integer
format: int64
minimum: 0
sources:
type: integer
minimum: 0
url:
type: string
verdict:
type: string
ScanResponse:
type: object
required:
- verdict
- injection
- links
- links_truncated
- mode
- latency_ms
properties:
injection:
$ref: '#/components/schemas/InjectionReport'
latency_ms:
type: integer
format: int64
minimum: 0
links:
type: array
items:
$ref: '#/components/schemas/LinkVerdict'
links_truncated:
type: boolean
mode:
$ref: '#/components/schemas/Mode'
sanitized_content:
type:
- string
- 'null'
source:
oneOf:
- type: 'null'
- $ref: '#/components/schemas/LinkVerdict'
verdict:
type: string
description: One of `block` | `warn` | `allow`.
GateQuotaResponse:
type: object
required:
- used
- limit
- remaining
- percent
- plan
properties:
limit:
type: integer
format: int64
minimum: 0
percent:
type: integer
format: int64
minimum: 0
plan:
type: string
remaining:
type: integer
format: int64
minimum: 0
used:
type: integer
format: int64
minimum: 0
ScanRequest:
type: object
required:
- content
properties:
content:
type: string
description: The untrusted content to scan.
mode:
$ref: '#/components/schemas/Mode'
description: 'Scan mode. `fast` (default) is heuristics-only; `thorough` reserves the
v2 LLM judge and currently behaves as `fast`.'
source_url:
type:
- string
- 'null'
description: Optional URL the content was fetched from (provenance for the flywheel).
LinkVerdict:
type: object
required:
- url
- entity
- verdict
- sources
properties:
entity:
type: string
sources:
type: integer
minimum: 0
url:
type: string
verdict:
type: string
description: One of `malicious` | `suspicious` | `clean` | `unknown`.
SpanReport:
type: object
required:
- start
- end
- family
properties:
end:
type: integer
minimum: 0
family:
type: string
start:
type: integer
minimum: 0
InjectionReport:
type: object
required:
- score
- families
- spans
properties:
families:
type: array
items:
type: string
score:
type: number
format: double
description: Injection score, 0.0..=1.0.
spans:
type: array
items:
$ref: '#/components/schemas/SpanReport'
QuotaBody:
type: object
description: 'The scan-quota 429 (`/gate/scan`, `/gate/url`, `/mail/scan`).
`error`, `usage` (a number, unlike the request 429''s object) and `limit`
are the original contract and stay as they were; every other field was
added on 2026-10-04 so the refusal says when it lifts and what the caller
can do, as the request-quota 429 does.'
required:
- error
- usage
- limit
properties:
billingIssue:
type:
- boolean
- 'null'
description: 'True when the caller''s paid subscription is suspended (payment past
due, unpaid, incomplete or paused): settle it, buy nothing.'
cta:
type: object
description: '`primary` (`upgrade`, `contact` or `billing`), `url`, `reason`. A Free
caller''s points at Pro.'
docs:
type:
- string
- 'null'
error:
type: string
limit:
type: integer
format: int64
description: Scans included per month on the caller's plan.
minimum: 0
message:
type:
- string
- 'null'
description: The refusal in words, with the day the allowance resets.
promoCode:
type:
- string
- 'null'
description: First-transaction promo, offered to a Free caller only.
promoDiscount:
type:
- integer
- 'null'
format: int32
minimum: 0
resetsAt:
type:
- string
- 'null'
description: 'When the allowance resets: 00:00 UTC on the 1st of next month.'
example: '2026-11-01T00:00:00Z'
retryAfter:
type:
- integer
- 'null'
format: int64
description: 'Seconds until the reset. Deliberately not sent as a `Retry-After`
header: a client that sleeps on it before retrying would wait days.'
upgradeRequired:
type:
- boolean
- 'null'
description: True when buying a plan lifts the limit (Free, Basic).
usage:
type: integer
format: int64
description: Scans used this month.
minimum: 0
Mode:
type: string
enum:
- fast
- thorough
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: X-API-KEY
description: Base64 encoded `apiKey:apiSecret`. Get your keys from https://ismalicious.com/app/account
BasicAuth:
type: http
scheme: basic
description: 'Username = apiKey, password = apiSecret. Legacy: any username, password = Base64(apiKey:apiSecret).'
BearerAuth:
type: http
scheme: bearer
description: '`Authorization: Bearer <token>` where token = Base64(apiKey:apiSecret) — the same credential as X-API-KEY.'
sessionCookie:
type: apiKey
in: cookie
name: __Secure-authjs.session-token
description: Authenticated browser session. The claim endpoint also requires a verified email in the database; organization API keys cannot claim watches.
x-refined-from:
- ismalicious-com-openapi.json
- ismalicious-com-openapi2.json