Dregs Identities API

Identities known to Dregs

Operations 11

POST /api/identities/{id}/actions/review Request identity review #
POST /api/identities/{id}/actions/analyze Analyze identity #
GET /api/identities/{id} Get identity #
PATCH /api/identities/{id} Update identity #
GET /api/identities Identity list #
GET /api/identities/{id}/scores Get identity scores #
GET /api/identities/{id}/reviews List identity reviews #
GET /api/identities/{id}/history Get score history #
GET /api/identities/{id}/analysis Get identity analysis #
GET /api/identities/{id}/analysis/{cycleId} Get analysis cycle #

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/dregs-com:dregs-com-identities-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

dregs-com-identities-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Dregs Identities API
  description: 'Customer REST API for sending events and reading fraud scores, identities, devices, escalations, channels, datasets, and mappings.


    Authenticate with a secret key created in the dashboard under Settings > Credentials (security scheme secretKey). Send it as a Bearer token: Authorization: Bearer sk_... The key acts as an admin of that credential''s team. POST /api/events and GET /api/devices/{fingerprint} also accept the credential''s public key (security scheme publicKey, Bearer pk_...). Public keys may be embedded in a browser. Secret keys must not.


    This document is the curated public surface. Dashboard sign-in, billing, team administration, and trainer tools are not included.'
  version: '1.0'
servers:
- url: https://dregs.com
  description: Dregs API
security:
- secretKey: []
tags:
- name: Identities
  description: Identities known to Dregs
paths:
  /api/identities/{id}/actions/review:
    post:
      tags:
      - Identities
      summary: Request identity review
      description: Queue an LLM review of the identity's analysis
      operationId: reviewIdentity
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/V1ReviewRequest'
      responses:
        '201':
          description: Review scheduled
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/V1IdentityReview'
        '401':
          description: Invalid credentials
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/V1IdentityReview'
        '404':
          description: Identity not found
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/V1IdentityReview'
      security:
      - secretKey: []
  /api/identities/{id}/actions/analyze:
    post:
      tags:
      - Identities
      summary: Analyze identity
      description: Queue an analysis job for an identity
      operationId: analyzeIdentity
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '201':
          description: Analysis job scheduled
        '401':
          description: Invalid credentials
        '404':
          description: Identity not found
      security:
      - secretKey: []
  /api/identities/{id}:
    get:
      tags:
      - Identities
      summary: Get identity
      description: Get a single identity by ID
      operationId: getIdentity
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Identity found
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/V1Identity'
        '401':
          description: Invalid credentials
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/V1Identity'
        '404':
          description: Identity not found
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/V1Identity'
      security:
      - secretKey: []
    patch:
      tags:
      - Identities
      summary: Update identity
      description: Update an existing identity. Requires the admin role, like the device PATCH, because disregarding re-scores linked identities.
      operationId: updateIdentity
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/V1UpdateIdentityRequest'
        required: true
      responses:
        '200':
          description: Identity updated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/V1Identity'
        '400':
          description: Invalid request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/V1Identity'
        '401':
          description: Invalid credentials
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/V1Identity'
        '403':
          description: Admin role required
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/V1Identity'
        '404':
          description: Identity not found
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/V1Identity'
      security:
      - secretKey: []
  /api/identities:
    get:
      tags:
      - Identities
      summary: Identity list
      description: List identities known to Dregs
      operationId: listIdentities
      parameters:
      - name: request
        in: query
        required: true
        schema:
          $ref: '#/components/schemas/V1ListIdentitiesRequest'
      responses:
        '200':
          description: Successfully authenticated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/V1PageV1Identity'
        '401':
          description: Invalid credentials
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/V1PageV1Identity'
      security:
      - secretKey: []
  /api/identities/{id}/scores:
    get:
      tags:
      - Identities
      summary: Get identity scores
      description: Get scores for an identity
      operationId: getIdentityScores
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Identity found
          content:
            '*/*':
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/V1Score'
        '401':
          description: Invalid credentials
          content:
            '*/*':
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/V1Score'
        '404':
          description: Identity not found
          content:
            '*/*':
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/V1Score'
      security:
      - secretKey: []
  /api/identities/{id}/reviews:
    get:
      tags:
      - Identities
      summary: List identity reviews
      description: List LLM reviews for an identity
      operationId: listIdentityReviews
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Reviews found
          content:
            '*/*':
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/V1IdentityReview'
        '401':
          description: Invalid credentials
          content:
            '*/*':
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/V1IdentityReview'
        '404':
          description: Identity not found
          content:
            '*/*':
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/V1IdentityReview'
      security:
      - secretKey: []
  /api/identities/{id}/links:
    get:
      tags:
      - Identities
      summary: Get identity links
      description: Get cross-identity links for an identity
      operationId: getIdentityLinks
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Links found
          content:
            '*/*':
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/V1LinkedIdentity'
        '401':
          description: Invalid credentials
          content:
            '*/*':
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/V1LinkedIdentity'
        '404':
          description: Identity not found
          content:
            '*/*':
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/V1LinkedIdentity'
      security:
      - secretKey: []
  /api/identities/{id}/history:
    get:
      tags:
      - Identities
      summary: Get score history
      description: Get score history for an identity across analysis cycles
      operationId: getScoreHistory
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          format: int32
          default: 100
      responses:
        '200':
          description: History found
          content:
            '*/*':
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/V1ScoreHistoryEntry'
        '401':
          description: Invalid credentials
          content:
            '*/*':
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/V1ScoreHistoryEntry'
        '404':
          description: Identity not found
          content:
            '*/*':
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/V1ScoreHistoryEntry'
      security:
      - secretKey: []
  /api/identities/{id}/analysis:
    get:
      tags:
      - Identities
      summary: Get identity analysis
      description: Get the most recent analysis cycle for an identity
      operationId: getIdentityAnalysis
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Analysis found
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/V1AnalysisCycle'
        '401':
          description: Invalid credentials
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/V1AnalysisCycle'
        '404':
          description: Identity or analysis not found
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/V1AnalysisCycle'
      security:
      - secretKey: []
  /api/identities/{id}/analysis/{cycleId}:
    get:
      tags:
      - Identities
      summary: Get analysis cycle
      description: Get a specific analysis cycle by ID
      operationId: getAnalysisCycle
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: cycleId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: Analysis cycle found
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/V1AnalysisCycle'
        '401':
          description: Invalid credentials
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/V1AnalysisCycle'
        '404':
          description: Analysis cycle not found
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/V1AnalysisCycle'
      security:
      - secretKey: []
components:
  schemas:
    V1PageV1Identity:
      type: object
      description: Paginated response wrapper
      properties:
        pageNumber:
          type: integer
          format: int32
          description: Current page number (0-based)
        pageSize:
          type: integer
          format: int32
          description: Number of items per page
        totalPages:
          type: integer
          format: int64
          description: Total number of pages
        totalElements:
          type: integer
          format: int64
          description: Total number of items across all pages
        content:
          type: array
          description: List of items on this page
          items:
            $ref: '#/components/schemas/V1Identity'
        first:
          type: boolean
          description: Whether this is the first page
        last:
          type: boolean
          description: Whether this is the last page
        numberOfElements:
          type: integer
          format: int32
          description: Number of items on this page
    V1Identity:
      type: object
      properties:
        id:
          type: string
        displayName:
          type: string
        displayEmail:
          type: string
        displayUsername:
          type: string
        humanityScore:
          type: integer
          format: int32
        authenticityScore:
          type: integer
          format: int32
        uniquenessScore:
          type: integer
          format: int32
        behaviorScore:
          type: integer
          format: int32
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        lastTrackedAt:
          type: string
          format: date-time
        lastScoredAt:
          type: string
          format: date-time
        disregarded:
          type: boolean
        badges:
          type: array
          items:
            $ref: '#/components/schemas/V1Badge'
        data:
          type: object
          additionalProperties: {}
    V1AnalysisCycle:
      type: object
      properties:
        id:
          type: integer
          format: int64
        identityId:
          type: string
        scores:
          type: array
          items:
            $ref: '#/components/schemas/V1Score'
        humanityScore:
          type: integer
          format: int32
        authenticityScore:
          type: integer
          format: int32
        uniquenessScore:
          type: integer
          format: int32
        behaviorScore:
          type: integer
          format: int32
        eventCount:
          type: integer
          format: int32
        deviceCount:
          type: integer
          format: int32
        durationMillis:
          type: integer
          format: int64
        startedAt:
          type: string
          format: date-time
        finishedAt:
          type: string
          format: date-time
    V1ScoreHistoryEntry:
      type: object
      properties:
        id:
          type: integer
          format: int64
        humanityScore:
          type: integer
          format: int32
        authenticityScore:
          type: integer
          format: int32
        uniquenessScore:
          type: integer
          format: int32
        behaviorScore:
          type: integer
          format: int32
        eventCount:
          type: integer
          format: int32
        deviceCount:
          type: integer
          format: int32
        finishedAt:
          type: string
          format: date-time
    V1Score:
      type: object
      properties:
        category:
          type: string
          enum:
          - UNIQUENESS
          - HUMANITY
          - AUTHENTICITY
          - BEHAVIOR
        value:
          type: integer
          format: int32
        observations:
          type: array
          items:
            $ref: '#/components/schemas/V1Observation'
    V1UpdateIdentityRequest:
      type: object
      properties:
        attributes:
          type: object
          additionalProperties: {}
        disregarded:
          type: boolean
    V1ProposedRevision:
      type: object
      properties:
        analyzerName:
          type: string
        category:
          type: string
        rationale:
          type: string
        status:
          type: string
        comparison:
          $ref: '#/components/schemas/V1AnalyzerComparison'
    V1ListIdentitiesRequest:
      type: object
      properties:
        pageNumber:
          type: integer
          format: int32
          minimum: 0
        pageSize:
          type: integer
          format: int32
          maximum: 100
          minimum: 1
        order:
          type: string
          enum:
          - ASC
          - DESC
        sort:
          type: string
        device:
          type: string
        group:
          type: string
        groupType:
          type: string
        search:
          type: string
        term:
          type: string
        humanityScoreMin:
          type: integer
          format: int32
        humanityScoreMax:
          type: integer
          format: int32
        authenticityScoreMin:
          type: integer
          format: int32
        authenticityScoreMax:
          type: integer
          format: int32
        uniquenessScoreMin:
          type: integer
          format: int32
        uniquenessScoreMax:
          type: integer
          format: int32
        behaviorScoreMin:
          type: integer
          format: int32
        behaviorScoreMax:
          type: integer
          format: int32
        badge:
          type: string
        effectiveTerm:
          type: string
    V1ConfigSuggestion:
      type: object
      properties:
        key:
          type: string
        value:
          type: string
        rationale:
          type: string
    V1ReviewRequest:
      type: object
      properties:
        feedback:
          type: string
    V1Observation:
      type: object
      properties:
        category:
          type: string
          enum:
          - UNIQUENESS
          - HUMANITY
          - AUTHENTICITY
          - BEHAVIOR
        id:
          type: string
        label:
          type: string
        explanation:
          type: string
        value:
          type: number
          format: double
        confidence:
          type: number
          format: double
        weight:
          type: number
          format: double
        metadata:
          type: object
          additionalProperties: {}
    V1AnalyzerComparison:
      type: object
      properties:
        baselineAnalyzerName:
          type: string
        changedCount:
          type: integer
          format: int32
        rows:
          type: array
          items:
            $ref: '#/components/schemas/V1AnalyzerComparisonRow'
    V1AnalyzerComparisonRow:
      type: object
      properties:
        identityId:
          type: string
        underReview:
          type: boolean
        beforeValue:
          type: number
          format: double
        afterValue:
          type: number
          format: double
        beforeExplanation:
          type: string
        afterExplanation:
          type: string
        observationCount:
          type: integer
          format: int32
        changed:
          type: boolean
        error:
          type: string
    V1ProposedAnalyzer:
      type: object
      properties:
        name:
          type: string
        category:
          type: string
        description:
          type: string
        rationale:
          type: string
        status:
          type: string
        comparison:
          $ref: '#/components/schemas/V1AnalyzerComparison'
    V1LinkedIdentity:
      type: object
      properties:
        id:
          type: integer
          format: int64
        targetIdentityId:
          type: string
        targetDisplayName:
          type: string
        type:
          type: string
          enum:
          - SAME_DEVICE
          - SIMILAR_NAME
          - SIMILAR_EMAIL
          - SHARED_IP
          - SHARED_SESSION
          - SIMILAR_BEHAVIOR
        value:
          type: number
          format: double
        confidence:
          type: number
          format: double
        explanation:
          type: string
        metadata:
          type: object
          additionalProperties: {}
        createdAt:
          type: string
          format: date-time
    V1Badge:
      type: object
      properties:
        slug:
          type: string
        name:
          type: string
        type:
          type: string
          enum:
          - GOOD
          - BAD
          - NEUTRAL
        explanation:
          type: string
        metadata:
          type: object
          additionalProperties: {}
    V1IdentityReview:
      type: object
      properties:
        id:
          type: integer
          format: int64
        identityId:
          type: string
        userFeedback:
          type: string
        status:
          type: string
        summary:
          type: string
        proposedAnalyzers:
          type: array
          items:
            $ref: '#/components/schemas/V1ProposedAnalyzer'
        proposedRevisions:
          type: array
          items:
            $ref: '#/components/schemas/V1ProposedRevision'
        configSuggestions:
          type: array
          items:
            $ref: '#/components/schemas/V1ConfigSuggestion'
        model:
          type: string
        errorMessage:
          type: string
        createdAt:
          type: string
          format: date-time
        completedAt:
          type: string
          format: date-time
  securitySchemes:
    secretKey:
      type: http
      description: Customer secret key from Settings > Credentials, sent as a Bearer token. The token value starts with sk_. It acts as an admin of that credential's team for every operation in this document. MCP tokens (dmcp_) are refused. Prefer the publicKey scheme on operations that accept a pk_ key.
      scheme: bearer
      bearerFormat: sk_
    publicKey:
      type: http
      description: Customer public key from Settings > Credentials, sent as a Bearer token. The token value starts with pk_. Accepted only by POST /api/events and GET /api/devices/{fingerprint}. It may be embedded in a browser. It cannot call the other operations in this document.
      scheme: bearer
      bearerFormat: pk_