FFraud Community API

Report abusive IPs and read the community database. No account needed to report.

GitHub OpenAPI

Operations 6

POST /public/ip/{ip}/report Report an abusive IP (no account) #
GET /public/ip/{ip}/reports List community reports for an IP #
POST /public/ip/{ip}/reports/{report_id}/vote Vote a report up or down #
GET /public/reporters/leaderboard Top reporters #
GET /public/reporters/stats Community reporting stats #
POST /v1/report/bulk Bulk-report up to 1000 IPs #

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/ffraud-com:ffraud-com-community-api"
All apis
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.

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

ffraud-com-community-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: FFraud Community API
  version: 1.0.0
  summary: Free, open IP and email fraud intelligence.
  description: 'Check any IP or email for fraud, VPN, proxy, Tor, datacenter, and abuse history. Free for everyone, no usage caps. The public endpoints need no API key; a free key adds batch lookups, usage stats, and the community reporting API. The database behind this API is published daily as MIT-licensed open data at https://github.com/FFraud-com .


    Drop-in compatibility endpoints let you migrate off AbuseIPDB, IPQualityScore, or ipinfo by changing one URL.'
  contact:
    name: FFraud
    url: https://ffraud.com
    email: team@ffraud.com
  license:
    name: MIT
    url: https://github.com/FFraud-com/ip-fraud-database/blob/main/LICENSE
servers:
- url: https://api.ffraud.com
  description: Production
security:
- {}
- ApiKeyHeader: []
tags:
- name: Community
  description: Report abusive IPs and read the community database. No account needed to report.
paths:
  /public/ip/{ip}/report:
    post:
      tags:
      - Community
      summary: Report an abusive IP (no account)
      description: Add a community report for an IP. No API key required. Confirmed reports roll into the next daily open-data build.
      operationId: reportIp
      security:
      - {}
      parameters:
      - name: ip
        in: path
        required: true
        schema:
          type: string
        example: 80.82.77.33
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReportRequest'
      responses:
        '200':
          description: Report accepted.
        '400':
          $ref: '#/components/responses/Error'
  /public/ip/{ip}/reports:
    get:
      tags:
      - Community
      summary: List community reports for an IP
      operationId: listReports
      security:
      - {}
      parameters:
      - name: ip
        in: path
        required: true
        schema:
          type: string
        example: 80.82.77.33
      responses:
        '200':
          description: Reports, ranked by vote score then recency (max 50).
          content:
            application/json:
              schema:
                type: object
                properties:
                  total:
                    type: integer
                  reports:
                    type: array
                    items:
                      $ref: '#/components/schemas/Report'
  /public/ip/{ip}/reports/{report_id}/vote:
    post:
      tags:
      - Community
      summary: Vote a report up or down
      operationId: voteReport
      security:
      - {}
      parameters:
      - name: ip
        in: path
        required: true
        schema:
          type: string
      - name: report_id
        in: path
        required: true
        schema:
          type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                vote:
                  type: string
                  enum:
                  - up
                  - down
              required:
              - vote
      responses:
        '200':
          description: Vote recorded.
  /public/reporters/leaderboard:
    get:
      tags:
      - Community
      summary: Top reporters
      operationId: reportersLeaderboard
      security:
      - {}
      responses:
        '200':
          description: Ranked reporters with trust tiers.
  /public/reporters/stats:
    get:
      tags:
      - Community
      summary: Community reporting stats
      operationId: reportersStats
      security:
      - {}
      responses:
        '200':
          description: Aggregate reporting activity.
          content:
            application/json:
              schema:
                type: object
                properties:
                  total_reports:
                    type: integer
                  reports_last_24h:
                    type: integer
                  reports_last_7d:
                    type: integer
                  unique_ips_reported:
                    type: integer
  /v1/report/bulk:
    post:
      tags:
      - Community
      summary: Bulk-report up to 1000 IPs
      description: Trust-weighted bulk reporting for teams running honeypots, fail2ban, or WAFs.
      operationId: bulkReport
      security:
      - ApiKeyHeader: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                ips:
                  type: array
                  maxItems: 1000
                  items:
                    type: object
                    properties:
                      ip:
                        type: string
                      category:
                        $ref: '#/components/schemas/ReportCategory'
                      comment:
                        type: string
                    required:
                    - ip
                    - category
              required:
              - ips
      responses:
        '200':
          description: Accepted count.
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  schemas:
    ReportCategory:
      type: string
      enum:
      - brute_force
      - spam
      - vpn
      - tor
      - fraud
      - port_scan
      - web_attack
      - phishing
      - malware
      - bot
      - scraping
      - other
    Report:
      type: object
      properties:
        id:
          type: integer
        reporter:
          type: string
        category:
          $ref: '#/components/schemas/ReportCategory'
        comment:
          type: string
        evidence_url:
          type: string
        created_at:
          type: string
          format: date-time
        votes_up:
          type: integer
        votes_down:
          type: integer
    Error:
      type: object
      properties:
        success:
          type: boolean
          example: false
        error_code:
          type: integer
          example: 1002
        error:
          type: string
          example: INVALID_API_KEY
        message:
          type: string
          example: The API key provided is not valid.
    ReportRequest:
      type: object
      required:
      - category
      properties:
        category:
          $ref: '#/components/schemas/ReportCategory'
        comment:
          type: string
          example: Brute-forced /login 10k times overnight.
        evidence_url:
          type: string
          example: https://gist.github.com/...
        reporter:
          type: string
          description: Optional handle for leaderboard credit.
  responses:
    Unauthorized:
      description: Missing or invalid API key.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Error:
      description: Bad request.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    ApiKeyHeader:
      type: apiKey
      in: header
      name: X-API-Key
      description: Your FFraud API key (ff_live_...). Create one free at https://ffraud.com/register .
    AbuseIpdbKey:
      type: apiKey
      in: header
      name: Key
      description: Your FFraud API key, sent in AbuseIPDB's `Key` header for the compatibility endpoint.
    IpinfoToken:
      type: apiKey
      in: query
      name: token
      description: Your FFraud API key, sent as ipinfo's `token` query param.
externalDocs:
  description: Full docs
  url: https://ffraud.com/docs