AnyImageDetector Detection API

Analyze an image and report whether it is AI-generated.

Operations 1

POST /image/detect Detect whether an image is AI-generated #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/anyimagedetector-detection-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API 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 Specification

anyimagedetector-detection-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: AI Image Detector Detection API
  version: v1
  summary: Single-endpoint REST API that reports whether an image is AI-generated.
  description: The AI Image Detector API exposes a single endpoint that reports whether an image is AI-generated.
  contact:
    name: AnyImageDetector Support
    email: support@imagedetector.online
    url: https://imagedetector.online/api
  termsOfService: https://imagedetector.online/terms-of-service
  x-provenance:
    generated: '2026-08-11'
    method: derived
    derivation: transcribed-from-published-reference
    source: https://imagedetector.online/docs
    additional_sources:
    - https://imagedetector.online/api
    - https://imagedetector.online/pricing
    published_by_provider: false
    note: Authored by API Evangelist from the provider's published HTML reference. It is NOT a provider-published contract and carries no support commitment from AnyImageDetector.
servers:
- url: https://imagedetector.online/v1
  description: Production. HTTPS only, versioned with a /v1 path prefix.
security:
- BearerAuth: []
- ApiKeyHeader: []
tags:
- name: Detection
  description: Analyze an image and report whether it is AI-generated.
paths:
  /image/detect:
    post:
      tags:
      - Detection
      operationId: detectImage
      summary: Detect whether an image is AI-generated
      description: Send EITHER a multipart file upload OR a JSON body containing a public image URL. Provide exactly one of `image` or `imageUrl` per request. A successful detection costs 1 credit.
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              required:
              - image
              properties:
                image:
                  type: string
                  format: binary
                  description: Image file to analyze. JPG, PNG or WebP, up to 8 MB.
              additionalProperties: false
          application/json:
            schema:
              type: object
              required:
              - imageUrl
              properties:
                imageUrl:
                  type: string
                  format: uri
                  description: Publicly reachable HTTP/HTTPS URL of the image.
                  examples:
                  - https://example.com/photo.jpg
              additionalProperties: false
      responses:
        '200':
          description: Detection result.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DetectionResult'
              examples:
                likelyAi:
                  summary: Published example response
                  value:
                    verdict: likely_ai
                    ai_score: 0.87
                    confidence: high
                    source_breakdown: []
        '400':
          description: bad_request — Missing or invalid image, URL, or format.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                badRequest:
                  value:
                    error: bad_request
                    message: Missing or invalid image, URL, or format
        '401':
          description: unauthorized — Missing or invalid API key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                unauthorized:
                  summary: Body observed on a live anonymous probe, 2026-08-11
                  value:
                    error: unauthorized
                    message: Missing API key
        '402':
          description: insufficient_credits — Out of credits; upgrade your plan.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                insufficientCredits:
                  summary: Published example error body
                  value:
                    error: insufficient_credits
                    message: Insufficient credits
        '403':
          description: paid_plan_required — API access requires a paid plan.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                paidPlanRequired:
                  value:
                    error: paid_plan_required
                    message: API access requires a paid plan
        '429':
          description: too_many_requests — Rate limit exceeded (1 request per second per API key). Retry after the number of seconds given in the Retry-After header.
          headers:
            Retry-After:
              description: Seconds to wait before retrying.
              schema:
                type: integer
              example: 1
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                tooManyRequests:
                  value:
                    error: too_many_requests
                    message: Rate limit exceeded
        '500':
          description: detection_failed — Unexpected provider error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                detectionFailed:
                  value:
                    error: detection_failed
                    message: Unexpected provider error
        '503':
          description: unavailable — Detection provider not configured.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                unavailable:
                  value:
                    error: unavailable
                    message: Detection provider not configured
      x-credit-cost: 1
      x-evidence:
        probed: '2026-08-11'
        url: https://imagedetector.online/v1/image/detect
        method: POST
        request: 'application/json {"imageUrl": "https://example.com/photo.jpg"} with no credentials'
        http_status: 401
        content_type: application/json
        body: '{"error":"unauthorized","message":"Missing API key"}'
        note: The live unauthenticated response matches the documented 401 envelope exactly, which confirms the endpoint, the base URL and the error shape recorded here.
components:
  schemas:
    Error:
      type: object
      title: Error
      description: Errors return a JSON body with a machine-readable `error` code, a human-readable `message`, and a standard HTTP status. This is NOT RFC 9457 application/problem+json.
      required:
      - error
      - message
      properties:
        error:
          type: string
          description: Machine-readable error code.
          enum:
          - bad_request
          - unauthorized
          - insufficient_credits
          - paid_plan_required
          - too_many_requests
          - detection_failed
          - unavailable
        message:
          type: string
          description: Human-readable message.
      additionalProperties: false
    DetectionResult:
      type: object
      title: DetectionResult
      description: The result of a single image detection.
      required:
      - verdict
      - ai_score
      - confidence
      - source_breakdown
      properties:
        verdict:
          type: string
          description: Classification result.
          enum:
          - likely_ai
          - likely_human
          - uncertain
        ai_score:
          type: number
          format: float
          minimum: 0
          maximum: 1
          description: Probability the image is AI-generated, from 0 to 1.
        confidence:
          type: string
          description: Certainty level of the detection.
          enum:
          - low
          - medium
          - high
        source_breakdown:
          type: array
          description: Reserved for future per-generator scores; currently always an empty array.
          items: {}
      additionalProperties: false
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: 'Authorization: Bearer sk_your_api_key. API keys are created in Settings -> API Keys and are shown only once at creation. Provide either this or the x-api-key header, not both.'
    ApiKeyHeader:
      type: apiKey
      in: header
      name: x-api-key
      description: 'x-api-key: sk_your_api_key — alternative to the Authorization header. Provide one of the two.'