Facticity.AI Complete Integration

v0.1.0

Complete Facticity.AI integration - fact-check claims, extract claims from content, transcribe links, check link reliability, check credits, and monitor task...

0· 458·0 current·0 all-time
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
The skill name/description map directly to the declared behavior: it calls Facticity.AI endpoints to fact-check, extract claims, transcribe links, check credits, and monitor tasks. The only credential requested is FACTICITY_API_KEY, which is appropriate for an API integration; no unrelated binaries, config paths, or extra credentials are required.
Instruction Scope
SKILL.md limits runtime actions to HTTP calls to https://api.facticity.ai and to verifying the presence of FACTICITY_API_KEY. Two items to be aware of: (1) the docs instruct the agent to "return the JSON response verbatim" — if the API response includes sensitive fields (the README/example shows an `api_key` field), this could cause the key to be echoed into chat/output; (2) the README recommends storing the API key in ~/.openclaw/openclaw.json, which is normal but means the key will reside on disk and should be protected. Aside from these notes, instructions don't scope creep into unrelated system files or other credentials.
Install Mechanism
There is no install spec and no code files — the skill is instruction-only and relies on existing HTTP call tooling. This minimizes risk from arbitrary code being written to disk.
Credentials
Only FACTICITY_API_KEY is required and it is declared as the primary credential. That is proportionate for an HTTP API integration. The skill suggests optionally adding the key to an OpenClaw config file (~/.openclaw/openclaw.json); this is a convenience but has the usual local-storage tradeoffs.
Persistence & Privilege
The skill does not request always: true, does not include installers that change system-wide configuration, and does not modify other skills. It runs on-demand and only uses the declared API key.
Assessment
This skill appears to be a straightforward HTTP integration with Facticity.AI and only needs your FACTICITY_API_KEY. Before installing: (1) confirm the API domain (app.facticity.ai / api.facticity.ai) and documentation are legitimate; (2) be cautious where you store the API key — adding it to ~/.openclaw/openclaw.json is convenient but means the key is on disk; protect that file and your account credentials; (3) test the /get-credits endpoint and avoid commands that would cause the agent to echo any sensitive fields — the SKILL.md asks to return API responses verbatim and example output shows an `api_key` field, which could leak the key if the service returns it unmasked; (4) if you need higher assurance, ask the publisher for a homepage or source repo or request the skill include minimal redaction logic so responses don't reveal secrets. Overall the skill is internally coherent, but follow standard key-handling hygiene.

Like a lobster shell, security has layers — review code before you run it.

Runtime requirements

🔍 Clawdis
EnvFACTICITY_API_KEY
Primary envFACTICITY_API_KEY
claimsvk97ejbez2y6s2tp1sw3kp09bz181qqdnfact-checkingvk97ejbez2y6s2tp1sw3kp09bz181qqdnlatestvk97ejbez2y6s2tp1sw3kp09bz181qqdnmultimediavk97ejbez2y6s2tp1sw3kp09bz181qqdnreliabilityvk97ejbez2y6s2tp1sw3kp09bz181qqdnresearch-agentvk97ejbez2y6s2tp1sw3kp09bz181qqdntranscriptionvk97ejbez2y6s2tp1sw3kp09bz181qqdnverificationvk97ejbez2y6s2tp1sw3kp09bz181qqdn
458downloads
0stars
1versions
Updated 1mo ago
v0.1.0
MIT-0

Facticity.AI Complete Integration

A comprehensive skill for interacting with the Facticity.AI API. Supports fact-checking claims, extracting claims from text/video, transcribing links, checking link reliability using MediaBias data, checking API credits, and monitoring async task status.

API Base URL

Base URL: https://api.facticity.ai

All API endpoints use this base URL. References to {BASE_URL}.

Behavior

First, check if FACTICITY_API_KEY is set and not empty. If it is missing or empty, return this onboarding message:

⚠️ API Key Not Configured

To use this skill, you need to set up your Facticity.AI API key:

1. Visit https://app.facticity.ai/api to get your API key
2. Set the key as an environment variable:
   export FACTICITY_API_KEY=your_api_key_here
   
   Or add it to your OpenClaw config (~/.openclaw/openclaw.json):
   {
     "skills": {
       "entries": {
         "facticity-ai": {
           "enabled": true,
           "apiKey": "your_api_key_here"
         }
       }
     }
   }

3. Restart OpenClaw after configuration

Get your API key at: https://app.facticity.ai/api

If the API key is present, determine the operation based on the command and proceed:

1. Fact-Check (/fact-check)

When the command starts with /fact-check or the input is a claim to fact-check:

Endpoint: POST {BASE_URL}/fact-check

Headers:

  • X-API-KEY: ${FACTICITY_API_KEY}
  • Content-Type: application/json

Body:

{
  "query": "<raw command input (remove /fact-check prefix if present)>",
  "timeout": 60,
  "mode": "sync"
}

Return the JSON response verbatim. The response includes:

  • Classification: "True" or "False"
  • overall_assessment: Detailed assessment text
  • evidence: Array of evidence sources
  • sources: Detailed source assessments
  • bias: Bias metrics (if available)
  • task_id: Task ID for async tracking

Usage:

/fact-check "Vaccines contain microchips"
/fact-check "The unemployment rate dropped in 2023"

Async Mode: For long-running fact-checks, set mode: "async" in the request body. The API will return a task_id that can be checked with /check-task-status.

2. Extract Claims (/extract-claim)

When the command starts with /extract-claim or the input is a URL or text to extract claims from:

Endpoint: POST {BASE_URL}/extract-claim

Headers:

  • X-API-KEY: ${FACTICITY_API_KEY}
  • Content-Type: application/json

Body:

{
  "input": "<raw command input (remove /extract-claim prefix if present)>",
  "content_type": "text",
  "timestamp": false,
  "audio_transcript_enabled": false,
  "language_code": "en"
}

Note: For video URLs (YouTube, TikTok, Instagram), the API will auto-detect and transcribe. If you need transcription explicitly enabled, set audio_transcript_enabled: true in the request body.

Return the JSON response verbatim.

Usage:

/extract-claim "The Earth is flat and NASA is lying about it"
/extract-claim https://youtube.com/watch?v=abc123
/extract-claim https://tiktok.com/@user/video/123
/extract-claim https://instagram.com/p/abc123

Supported Content Types:

  • Text: Direct text input
  • Video URLs: YouTube, TikTok, Instagram (auto-transcribes)
  • Language: Set language_code for non-English content (default: "en")

Response Format:

  • status: "ok" on success
  • transcript: Transcribed content (for video URLs)
  • title: Video/article title (if available)
  • description: Content description (if available)
  • claims: Array of extracted claim strings
  • overall_assessment: Summary of extraction

3. Get Credits (/get-credits)

When the command is /get-credits or user wants to check API credits:

Endpoint: GET {BASE_URL}/get-credits

Headers:

  • X-API-KEY: ${FACTICITY_API_KEY}

No request body required.

Return the JSON response verbatim. The response includes:

  • email: User email associated with the API key
  • api_key: The API key (masked)
  • credits_left: Number of credits remaining
  • duration_seconds: Duration period (typically 3600 seconds)

Usage:

/get-credits

Response Format:

{
  "email": "user@example.com",
  "api_key": "your_api_key_here",
  "credits_left": 1482,
  "duration_seconds": 3600
}

4. Check Task Status (/check-task-status)

When the command starts with /check-task-status or the input is a task ID:

Endpoint: GET {BASE_URL}/check-task-status?task_id=<task_id>

Headers:

  • X-API-KEY: ${FACTICITY_API_KEY}

The raw command input should be the task_id from a previous async fact-check request (remove /check-task-status prefix if present).

Query Parameter:

  • task_id: The unique ID of the task to check (from the raw command input)

Return the JSON response verbatim.

Usage:

/check-task-status 1234567890abcdef

Or with the task_id from a previous async fact-check:

/fact-check "Long claim..." --mode async
# Returns task_id: abc123
/check-task-status abc123

Response Format:

For completed tasks:

{
  "status": "Completed",
  "input_query": "Original Input query",
  "classification": "False",
  "overall_assessment": "This claim is inaccurate.",
  "evidence_sources": ["Source 1", "Source 2"],
  "disambiguation": "Clarifies the context...",
  "detailed_source_reports": ["Detailed source report 1", "Detailed source report 2"],
  "task_id": "1234567...",
  "bias_quality_metrics": [
    {
      "source": "https://www.politico.com",
      "bias": -5.238666666666666,
      "quality": 46.45
    }
  ]
}

For in-progress tasks, returns current status and progress information.

5. Transcribe Link (/transcribe-link)

When the command starts with /transcribe-link or the input is a URL to transcribe:

Endpoint: POST {BASE_URL}/transcribe-link

Headers:

  • X-API-KEY: ${FACTICITY_API_KEY}
  • Content-Type: application/json

Body:

{
  "url": "<raw command input (remove /transcribe-link prefix if present)>"
}

The raw command input should be the URL to transcribe (remove /transcribe-link prefix if present).

Return the JSON response verbatim.

Usage:

/transcribe-link https://youtube.com/watch?v=abc123
/transcribe-link https://tiktok.com/@user/video/123
/transcribe-link https://instagram.com/p/abc123

Response Format:

  • status: "ok" on success
  • transcript: Transcribed content from the link
  • title: Video/article title (if available)
  • description: Content description (if available)
  • duration: Duration of the content (if available)

6. Check Link Reliability (/link-reliability/check)

When the command starts with /link-reliability/check or /check-link-reliability or the input is a URL to check for source reliability:

Endpoint: POST {BASE_URL}/link-reliability/check

Headers:

  • X-API-KEY: ${FACTICITY_API_KEY}
  • Content-Type: application/json

Body:

{
  "url": "<raw command input (remove /link-reliability/check or /check-link-reliability prefix if present)>"
}

The raw command input should be the URL to check (remove /link-reliability/check or /check-link-reliability prefix if present).

Return the JSON response verbatim. The response includes:

  • url: The processed URL
  • bias: Bias score (-42 to +42)
  • quality: Quality score (0 to 64)
  • bias_label: Human-readable bias category
  • quality_label: Human-readable quality category
  • found: Whether the URL was found in MediaBias database

Usage:

/link-reliability/check https://www.example.com/article
/check-link-reliability https://www.bbc.com/news
/link-reliability/check https://www.politico.com/story

Response Format:

{
  "url": "https://www.example.com/article",
  "bias": -5.24,
  "quality": 46.45,
  "bias_label": "Left-Center Bias",
  "quality_label": "High Quality",
  "found": true
}

Note: If the URL is not found in the MediaBias database, found will be false and bias/quality scores may be null or default values.

Command Routing

Determine which operation to perform based on the command prefix:

  • /fact-check or input looks like a claim → Fact-Check endpoint
  • /extract-claim or input is a URL → Extract Claims endpoint
  • /get-credits → Get Credits endpoint
  • /check-task-status or input is a task ID → Check Task Status endpoint
  • /transcribe-link or input is a URL → Transcribe Link endpoint
  • /link-reliability/check or /check-link-reliability or input is a URL → Check Link Reliability endpoint

API Token Usage

  • Fact-Check: Each request consumes 1 API token
  • Extract Claims: Consumes 1 API token per 1 million characters processed
  • Get Credits: Free, does not consume tokens
  • Check Task Status: Free, does not consume tokens
  • Transcribe Link: Consumes 1 API token per transcription request
  • Check Link Reliability: Consumes 1 API token per request

Monitor usage with /get-credits.

Configuration

Set FACTICITY_API_KEY in your OpenClaw config under skills.entries.facticity-ai.apiKey or as an environment variable.

Example config:

{
  "skills": {
    "entries": {
      "facticity-ai": {
        "enabled": true,
        "apiKey": "YOUR_API_KEY_HERE"
      }
    }
  }
}

Or set as environment variable:

export FACTICITY_API_KEY=your_api_key_here

Comments

Loading comments...