Skip to main content
This guide builds on the Python SDK setup, which covers install and authentication.

Follower export workflow to CSV, JSON, or XLSX

Use this workflow when Python code needs an owned follower list. It fits a script, notebook, worker, or agent tool. Use the list for a CRM import, warehouse load, or analyst CSV file. You can also deliver it as an XLSX workbook or resumable JSON handoff. The workflow calls POST /extractions/estimate through client.extractions.estimate_cost. It creates the job with client.extractions.run. It reads saved rows with client.extractions.retrieve. It downloads files with client.extractions.export_results.
client.extractions.run returns the queued 202 Accepted receipt from POST /extractions. Python exposes REST id, toolType, and status: "running" as job.id, job.tool_type, and job.status. Store job.id immediately, then poll client.extractions.retrieve before reading pages or calling client.extractions.export_results. Credit reservation happens after the job starts. If available credits changed since estimate_cost, the run has 2 outcomes. It can fetch only the affordable count before export. Or it can mark the job failed with insufficient_credits.
follower_explorer requires target_username. Store job.id, target_username, estimate.estimated_results, and estimate.source before polling. With them, a notebook restart, queue retry, or worker restart can resume that export. client.extractions.retrieve returns results, has_more, and next_cursor. Pass next_cursor back as cursor when you need stored JSON pages before exporting files. Use xquik-followers.jsonl for queue replay or warehouse loads, and xquik-followers.json for app ingestion. Use xquik-followers.csv for CRM import and xquik-followers.xlsx for analyst handoff. Map exported User ID or row xUserId as the CRM unique key. The cost is 1 credit per follower extracted or returned. Exports cost no credits after the extraction job exists.

Next steps