Endpoints
    POST/desearch/people/search/x

    X Profile Search

    Find X accounts by what they post and how they describe themselves. Describe the people you want in plain language; the search scans recent X posts for people talking about it, groups the matches by author, reads each profile (bio, followers, website, location) and scores how well each account fits. You get **profiles, not posts**: each with a fit score, the reasons it matched and the posts that prove it. **How it runs.** The search runs in the background. This call returns a `task_id` at once. Poll `GET /desearch/people/tasks/{task_id}` every few seconds, read profiles with `GET /desearch/people/tasks/{task_id}/results` (they arrive while the search is still running), or download everything with `GET /desearch/people/tasks/{task_id}/export?format=csv`. You can pause, resume or cancel a search at any time. Results stay available for 30 days. **Billing.** `count` profiles are reserved at the route price when the task is created (`cost_usd` on this response). When the search ends you pay only for the qualified profiles it delivered (minimum shown below); the rest of the reservation is returned automatically. A search that delivers no profiles costs nothing. Price: $0.04 per qualified profile, minimum 5 profiles ($0.20) per search that finds any. A search that finds no one is free. Billing metadata: successful billable responses include the `X-Desearch-Cost-Usd`, `X-Desearch-Usage-Count`, `X-Desearch-Service`, and `X-Desearch-Currency` headers. JSON object responses also include optional `cost_usd`, `usage_count`, `service`, and `currency` fields. For example, `usage_count=10` at `$0.015 / 1,000` resolves to `cost_usd=0.00015`. JSON arrays, text, and streaming responses keep their body shape and expose billing metadata only through headers.

    Base URL

    https://api.desearch.ai

    Implementation guidance

    Use X Profile Search when your application needs scored public profiles of people and creatorswithout maintaining its own crawler, social-data pipeline, or retrieval infrastructure. The endpoint returns structured data that can be consumed by agents, research tools, dashboards, and retrieval-augmented generation workflows. Keep the request focused on the minimum fields your workflow needs so responses remain fast and easy to validate.

    Send requests to POST /desearch/people/search/x with your Desearch API key in the authorization header. Treat the key as a server-side secret, validate all required parameters before sending the request, and handle non-2xx responses explicitly. Production integrations should use sensible timeouts, retry only transient failures with backoff, and record the response status and request identifier for troubleshooting.

    Test the example request below before integrating it into a larger workflow. Confirm that the returned fields, links, and timestamps meet your freshness requirements, then add schema validation at the application boundary. For agentic systems, preserve source URLs with the generated answer so users can inspect evidence and your application can avoid presenting unsupported claims.

    Body Parameters

    querystringrequired

    Who you are looking for, in plain language.

    countinteger

    How many qualified profiles to find. The search reserves this many at the route price and bills only the profiles it delivers (a minimum applies when it finds any; a search that finds none is free).

    Default: 25

    min_scorestring

    Only return profiles with at least this fit score (0-100).

    excludestring

    Handles to leave out, for example people you already contacted.

    filtersstring

    Responses

    200Same Idempotency-Key as an earlier search: that task, not charged again.
    202The created search task.
    400Bad request: an unknown platform, sort, status, cursor or `has` channel, or a filter the platform does not support
    401Unauthorized
    402Not enough credits for the reservation.
    422Validation Error
    429Too many searches are already queued, running or paused.
    500Internal Server Error
    Authorization

    Your API key is sent in the Authorization header.

    Request
    curl -X POST "https://api.desearch.ai/desearch/people/search/x" \
      -H "Authorization: YOUR_API_KEY" \
      -H "Content-Type: application/json"
    ResponseSchema
    {
      "task_id": "Task Id",
      "search_type": "x_profile_search",
      "platform": "x",
      "status": "queued",
      "stage": "planning",
      "query": "Query",
      "count": 0,
      "result_count": 0,
      "interpreted": {},
      "progress": {},
      "errors": [],
      "reserved_cost_usd": 0,
      "final_cost_usd": 0,
      "refunded_usd": 0,
      "created_by": {
        "user_id": "string",
        "api_key_id": "string",
        "via": "string"
      },
      "created_at": "2024-01-15T10:30:00Z",
      "started_at": "2024-01-15T10:30:00Z",
      "paused_at": "2024-01-15T10:30:00Z",
      "finished_at": "2024-01-15T10:30:00Z",
      "results_expire_at": "2024-01-15T10:30:00Z",
      "links": {
        "self": "Self",
        "results": "Results",
        "export": "Export"
      }
    }

    Possible status codes:

    200401422429500