Skip to content

MaintenanceThe former company search endpoint goes into maintenance on November 9Migration guide

Endpoints // Bulk

Task history

New

Last verified

Available inAPIMCPSDKCLI

Read every task of your workspace, newest first, whoever started it, from the API, an AI assistant or the app, with filters by type, status and List, for free.

GET/v2/tasks

Credits

Free.

Introduction

The Task history endpoint returns the background tasks of your workspace, newest first: the tasks of Bulk enrichment, and the tasks that run the same way in the app or through a List, such as a List import or a Search exported as a file. It covers every task, whoever started it: an API key, an AI assistant through the MCP server, Ask or a member of your team in the app. Each item has the fields of Get a task.

This endpoint is free (0 credits), also at a zero balance. It counts toward your per-minute rate limit like any other call.

A key sees the tasks its permissions allow: Person Enrichment or Contact for the enrich_persons tasks, Lists for the List tasks, Search for the Search exports. A key with no matching permission gets an empty page.

Authorization

NameTypeRequiredDescription
apikeystringYesYour API key from the developer dashboard. Pass it via Authorization: Bearer YOUR_API_KEY header.

Query Parameters

NameTypeRequiredDescription
typestringNoOnly these types, comma-separated, see Task types
statusstringNoOnly these statuses, comma-separated: queued, running, paused, completed, cancelled, failed
listIdstringNoOnly the tasks of this List (UUID)
perPageintegerNoTasks per page, from 1 to 100. Defaults to 50.
cursorstringNoThe nextCursor of the previous page, sent with the same filters. A malformed cursor, or one sent with other filters, returns 400.

The route is GET /v2/tasks. A type or status that is not in its list returns 400 TASK_INVALID_INPUT with the accepted values.

Task types

typeWhat the task does
enrich_personsLooks up people and returns a CSV: Bulk enrichment, or a file enriched with Bulk Import in the app
list_importImports Signals or a file into a List: Import members and data
list_enrichBuys data for the members of a List
list_search_importAdds the results of a Search to a List
search_exportExports the results of a Search as a file

Only an enrich_persons task has a results CSV at Download task results. The members of a List task are read with List members, and its links.operation is the List operation it runs as.

Response structure

FieldTypeDescription
successbooleantrue if the request was processed successfully
errornullAlways null on success
dataobject

One page of tasks

Show child attributes
FieldTypeDescription
itemsTaskThe tasks of this page, newest first, with the fields of Get a task
nextCursorstring | nullSend it back as cursor for the next page, null on the last page

quotas and metadata are the blocks of every V2 response: see Usage.

Errors

StatusCodeMeaning
400TASK_INVALID_INPUTAn unknown type or status, a perPage out of range, or a cursor that is malformed or sent with other filters
422VALIDATION_ERRORlistId is not a UUID

Code examples

Code Examples

curl "https://api.reversecontact.com/v2/tasks?type=enrich_persons&status=completed,cancelled" \
  -H "Authorization: Bearer YOUR_API_KEY"

Example response

200 - Success

Example Response

{
  "success": true,
  "data": {
    "items": [
      {
        "id": "7b1e4c2a-5d3f-4e8b-9a6c-1f2d3e4b5a60",
        "type": "enrich_persons",
        "entity": "persons",
        "status": "completed",
        "source": "api",
        "taskName": "CRM export, November",
        "listId": null,
        "progress": { "total": 2, "processed": 2, "succeeded": 2, "failed": 0, "skipped": 0, "remaining": 0 },
        "credits": { "estimated": 9, "used": 6 },
        "estimatedSecondsRemaining": null,
        "error": null,
        "createdAt": "2026-11-04T09:30:00.000Z",
        "startedAt": "2026-11-04T09:30:01.000Z",
        "completedAt": "2026-11-04T09:31:12.000Z",
        "links": {
          "self": "/v2/tasks/7b1e4c2a-5d3f-4e8b-9a6c-1f2d3e4b5a60",
          "results": "/v2/tasks/7b1e4c2a-5d3f-4e8b-9a6c-1f2d3e4b5a60/results",
          "operation": null
        }
      },
      {
        "id": "c4d5e6f7-8a9b-4c0d-9e1f-2a3b4c5d6e7f",
        "type": "list_import",
        "entity": "persons",
        "status": "running",
        "source": "dashboard",
        "taskName": "Trade show leads.csv",
        "listId": "3f6c2a8e-1b4d-4f0a-9c7e-5d2b8a1e6f40",
        "progress": { "total": 500, "processed": 120, "succeeded": 114, "failed": 6, "skipped": 0, "remaining": 380 },
        "credits": { "estimated": 0, "used": 456 },
        "estimatedSecondsRemaining": 240,
        "error": null,
        "createdAt": "2026-11-04T09:12:00.000Z",
        "startedAt": "2026-11-04T09:12:02.000Z",
        "completedAt": null,
        "links": {
          "self": "/v2/tasks/c4d5e6f7-8a9b-4c0d-9e1f-2a3b4c5d6e7f",
          "results": null,
          "operation": "/v2/lists/3f6c2a8e-1b4d-4f0a-9c7e-5d2b8a1e6f40/operations/c4d5e6f7-8a9b-4c0d-9e1f-2a3b4c5d6e7f/progress"
        }
      }
    ],
    "nextCursor": null
  },
  "error": null,
  "quotas": {
    "creditsConsumed": 0,
    "workspace": {
      "id": "ws_abc123",
      "credits": { "total": 10000, "used": 4528, "left": 5472 }
    }
  },
  "metadata": {
    "requestId": "527e1f57-3514-4080-a649-adb2983ffb0f",
    "executionTimeMs": 44
  }
}