DATPAQ Deslop API
Detect and rewrite AI writing patterns in text
Detect and rewrite AI writing patterns in text
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/datpaq-com:datpaq-com-deslop-api"
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.
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: 3.2.0
info:
title: Datpaq Com Deslop API
version: 1.1.0
contact:
name: Datpaq Support
url: https://datpaq.com
license:
name: Proprietary
description: 'Operations tagged Deslop across 2 of this provider''s published API definitions: datpaq-com.yaml, datpaq-com-openapi.yaml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://datpaq.com/api/v1
description: Production
- url: https://staging.datpaq.com/api/v1
description: Staging
security:
- ApiKeyHeader: []
- ApiKeyQuery: []
tags:
- name: Deslop
description: Detect and rewrite AI writing patterns in text
paths:
/deslop/rules:
get:
tags:
- Deslop
operationId: deslopRules
summary: List detection rules
parameters:
- name: layer
in: query
required: false
description: Rule layer (1-5)
schema:
type: integer
example: 1
- name: category
in: query
required: false
description: Rule category
schema:
type: string
example: filler
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/GenericSuccess'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/RateLimited'
default:
$ref: '#/components/responses/ServiceUnavailable'
servers:
- url: https://datpaq.com/api/v1
description: Production
- url: https://staging.datpaq.com/api/v1
description: Staging
/deslop/analyze:
post:
tags:
- Deslop
operationId: deslopAnalyze
summary: Analyze text for AI writing patterns
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- text
properties:
text:
type: string
description: Text to process (up to 200,000 characters)
format:
type: string
description: text (default) or markdown
profile:
type: string
description: Rule profile name
categories:
type: array
description: Rule categories to apply (JSON array or comma-separated)
items: {}
ignore:
type: array
description: Rule IDs to ignore (JSON array or comma-separated)
items: {}
preserve:
type: array
description: Content to preserve (JSON array or comma-separated)
items: {}
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/GenericSuccess'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/RateLimited'
default:
$ref: '#/components/responses/ServiceUnavailable'
get:
tags:
- Deslop
operationId: deslopAnalyzeGet
summary: Analyze short text via GET
parameters:
- name: text
in: query
required: true
description: Text to analyze (short; use analyze for long text)
schema:
type: string
example: We delve into synergy.
- name: format
in: query
required: false
description: text (default) or markdown
schema:
type: string
example: text
- name: profile
in: query
required: false
description: Rule profile name
schema:
type: string
example: default
- name: categories
in: query
required: false
description: Comma-separated rule categories
schema:
type: string
example: filler
- name: ignore
in: query
required: false
description: Comma-separated rule IDs to ignore
schema:
type: string
example: em-dash
- name: preserve
in: query
required: false
description: Comma-separated content to preserve
schema:
type: string
example: code
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/GenericSuccess'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/RateLimited'
default:
$ref: '#/components/responses/ServiceUnavailable'
servers:
- url: https://datpaq.com/api/v1
description: Production
- url: https://staging.datpaq.com/api/v1
description: Staging
/deslop/rewrite:
post:
tags:
- Deslop
operationId: deslopRewrite
summary: Rewrite text to remove AI writing patterns
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- text
properties:
text:
type: string
description: Text to process (up to 200,000 characters)
format:
type: string
description: text (default) or markdown
profile:
type: string
description: Rule profile name
categories:
type: array
description: Rule categories to apply (JSON array or comma-separated)
items: {}
ignore:
type: array
description: Rule IDs to ignore (JSON array or comma-separated)
items: {}
preserve:
type: array
description: Content to preserve (JSON array or comma-separated)
items: {}
mode:
type: string
description: light, balanced (default), or strict
example:
text: It turns out we must leverage a very robust solution.
profile: technical
mode: balanced
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/GenericSuccess'
example:
success: true
textClean: We must use a strong solution.
changesApplied: 3
rulesVersion: 1.0.0
correlationId: req_abc123
metadata: {}
updatedAt: '2026-09-13T12:00:00.000Z'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/RateLimited'
default:
$ref: '#/components/responses/ServiceUnavailable'
servers:
- url: https://datpaq.com/api/v1
description: Production
- url: https://staging.datpaq.com/api/v1
description: Staging
components:
schemas:
ErrorResponse:
type: object
properties:
error:
type: string
description: Human-readable error message
example: Invalid API key
correlationId:
type: string
description: Request tracking identifier for support
example: abc123-def456-789ghi
service:
type: string
description: Service name that produced the error
example: ip-geolocation
GenericSuccess:
type: object
description: Standard success envelope. The data property structure varies by endpoint.
properties:
correlationId:
type: string
description: Request tracking identifier
example: abc123-def456
data:
type: object
description: Response payload (structure varies by endpoint)
cached:
type: boolean
description: Whether the response was served from cache
example: false
responses:
BadRequest:
description: Bad request — missing or invalid parameters
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
RateLimited:
description: Rate limit exceeded — retry after the indicated period
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
ServiceUnavailable:
description: Service temporarily unavailable
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
Unauthorized:
description: Unauthorized — missing or invalid API key
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
securitySchemes:
ApiKeyHeader:
type: apiKey
in: header
name: x-api-key
description: API key passed via x-api-key request header
ApiKeyQuery:
type: apiKey
in: query
name: api_key
description: API key passed as api_key query parameter
x-refined-from:
- datpaq-com.yaml
- datpaq-com-openapi.yaml