Endpoints
    GET/desearch/companies/tasks/{task_id}

    Get a Company Search task

    Status, progress and cost of one Company Search or Company Enrich task. Poll every few seconds while it runs. Free. `stage` is `enriching` once every company is published and only later stages of some of them are left. Once it has ended, `completion_reason` says why (`count_reached`, `all_domains_processed` for Company Enrich, `rounds_exhausted`, `no_candidates`, `zero_qualified`, `candidate_budget`, `cost_limit`, `time_limit`, `cancelled`, `failed`) and `coverage_limited` is true when a budget (`candidate_budget`, `cost_limit`, `time_limit`) stopped it before `count` was reached — `status` alone stays `completed` in that case. `progress` counts the companies found, left out (`filtered`, by reason), published and fully enriched, and the email checks.

    Base URL

    https://api.desearch.ai

    Implementation guidance

    Use Get a Company Search task when your application needs companies with their public emails, phones, social profiles, and leaderswithout 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 GET /desearch/companies/tasks/{task_id} 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.

    Path Parameters

    task_idstringrequired

    The `task_id` returned when the task was created.

    Responses

    200Successful Response
    400Bad request: an unknown type, status or cursor, or an invalid `metadata.<key>` filter
    401Unauthorized
    404Task not found
    422Validation Error
    500Internal Server Error
    Authorization

    Your API key is sent in the Authorization header.

    Request
    curl -X GET "https://api.desearch.ai/desearch/companies/tasks/5b33f3ee-168b-4780-9c8e-63a626781872" \
      -H "Authorization: YOUR_API_KEY" \
      -H "Content-Type: application/json"
    ResponseSchema
    {
      "task_id": "Task Id",
      "search_type": "company_search",
      "platform": "company",
      "status": "queued",
      "stage": "planning",
      "query": "Query",
      "count": 0,
      "result_count": 0,
      "request": {},
      "metadata": {},
      "interpreted": {},
      "progress": {},
      "errors": [],
      "completion_reason": "count_reached",
      "coverage_limited": false,
      "warnings": [
        {
          "code": "Code",
          "message": "string"
        }
      ],
      "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