Catalog PyPI
PACKAGE EXPLORERView in registry

aiidentifiers

PyPI

Multi-modal AI content detection with per-model provenance

aideepfakedetectionlangchainmcpsynthid
Versions collected1
Direct dependencies4From release 2.0.0
Last observed21 Oct, 11:02 UTC

README

Version 2.0.0 documentation

AI Identifiers Python SDK

Multi-modal AI content detection with per-model provenance — text, images, audio, and video in one call.

pip install aiidentifiers

50 free API calls/month — no credit card. Get your key at aiidentifiers.com/get-api-key.


Quick Start

from aiidentifiers import Client

client = Client(api_key="aid_...")

# ── Text detection ─────────────────────────────────────────────────────────
result = client.detect_text("This essay was drafted by an AI writing assistant.")
print(result.verdict)       # "ai_generated"
print(result.confidence)    # 88
print(result.is_ai_generated)  # True

# Per-model provenance (the key differentiator)
for p in result.provenance:
    print(f"  {p.model} ({p.provider}): {p.verdict} — {p.confidence}%")
# GPT-5 Text Analysis (openai): ai_generated — 92%
# Claude 4 Opus (anthropic): ai_generated — 88%
# Gemini 2.0 Flash (google): human_generated — 71%
# o1/o3 Reasoning (openai): ai_generated — 95%

# ── URL detection (image/video/audio/text — auto-detected) ────────────────
result = client.detect_url("https://example.com/image.jpg")
print(result.summary())

# ── Local file detection ───────────────────────────────────────────────────
result = client.detect_file("/path/to/audio.mp3")
result = client.detect_file("/path/to/video.mp4")
result = client.detect_file("/path/to/image.png")

# ── Quota check ────────────────────────────────────────────────────────────
quota = client.quota()
print(f"{quota.used}/{quota.limit} calls used ({quota.plan} plan, resets {quota.resets_at})")
print(f"{quota.remaining} calls remaining")

Response Format

Every DetectionResult contains:

FieldTypeDescription
verdictstr"ai_generated" | "human_generated" | "uncertain"
confidenceint0–100 ensemble confidence score
is_ai_generatedboolConvenience boolean
modalitystr"text" | "image" | "video" | "audio"
provenancelist[ProvenanceScore]Per-model breakdown
processing_time_msintWall-clock time in ms
quotaQuotaInfoQuota status after this call

LangChain Integration

from aiidentifiers.integrations.langchain import get_tools
from langchain.agents import AgentExecutor, create_openai_functions_agent
from langchain_openai import ChatOpenAI

tools  = get_tools(api_key="aid_...")
llm    = ChatOpenAI(model="gpt-4o")
agent  = create_openai_functions_agent(llm, tools, prompt)
executor = AgentExecutor(agent=agent, tools=tools)

result = executor.invoke({
    "input": "Is this image AI-generated? https://example.com/photo.jpg"
})

LlamaIndex Integration

from aiidentifiers.integrations.llamaindex import create_ai_identifiers_tools
from llama_index.core.agent import ReActAgent

tools = create_ai_identifiers_tools(api_key="aid_...")
agent = ReActAgent.from_tools(tools, verbose=True)
agent.chat("Check if this text was written by an AI: 'Leveraging synergies...'")

CrewAI Integration

from aiidentifiers.integrations.crewai import AIIdentifiersDetectionTool
from crewai import Agent, Task, Crew

tool  = AIIdentifiersDetectionTool(api_key="aid_...")
agent = Agent(role="Fact Checker", tools=[tool], ...)

Pricing

PlanQuotaPrice
Free50 calls/month$0 — no credit card
Pro10,000 calls/month$10/month
Enterprise100,000 calls/month$50+/month

Get started →

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Versions 1

Collected releases
VersionPublishedDirect dependenciesOpen version
2.0.02 Aug 20264

Package advisories

0
No matching advisories collected

This describes our collected data; it is not a security assessment.

Repository

PENDING
marva6116/best-detection-app-7

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 21 Oct, 11:02 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package:15df006faf8f7077d556cffdc8fab94c7c50d60490d46b2b254fe9195ea205bf