Documentation Index

Fetch the complete documentation index at: /llms.txt

Use this file to discover all available pages before exploring further.

Skip to main content
GET
/
extractions
List extractions
curl --request GET \
  --url https://xquik.com/api/v1/extractions \
  --header 'x-api-key: <api-key>'
import requests

url = "https://xquik.com/api/v1/extractions"

headers = {"x-api-key": "<api-key>"}

response = requests.get(url, headers=headers)

print(response.text)
const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};

fetch('https://xquik.com/api/v1/extractions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
package main

import (
"fmt"
"net/http"
"io"
)

func main() {

url := "https://xquik.com/api/v1/extractions"

req, _ := http.NewRequest("GET", url, nil)

req.Header.Add("x-api-key", "<api-key>")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
Free - does not consume credits
curl -X GET "https://xquik.com/api/v1/extractions?limit=20&toolType=reply_extractor" \
  -H "x-api-key: xq_YOUR_KEY_HERE" | jq
const params = new URLSearchParams({
  limit: "20",
  toolType: "reply_extractor",
});

const response = await fetch(`https://xquik.com/api/v1/extractions?${params}`, {
  method: "GET",
  headers: {
    "x-api-key": "xq_YOUR_KEY_HERE",
  },
});
const data = await response.json();
import requests

response = requests.get(
    "https://xquik.com/api/v1/extractions",
    headers={"x-api-key": "xq_YOUR_KEY_HERE"},
    params={
        "limit": 20,
        "toolType": "reply_extractor",
    },
)
data = response.json()
package main

import (
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    req, err := http.NewRequest("GET", "https://xquik.com/api/v1/extractions?limit=20&toolType=reply_extractor", nil)
    if err != nil {
        panic(err)
    }
    req.Header.Set("x-api-key", "xq_YOUR_KEY_HERE")

    resp, err := http.DefaultClient.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var data map[string]interface{}
    if err := json.NewDecoder(resp.Body).Decode(&data); err != nil {
        panic(err)
    }
    fmt.Println(data)
}

Headers

string
required
Your API key. Session cookie authentication is also supported. Generate a key from the dashboard.

Query parameters

number
Number of extractions to return per page. Default: 50. Maximum: 100.
string
Filter by tool type. One of: article_extractor, community_extractor, community_moderator_explorer, community_post_extractor, community_search, favoriters, follower_explorer, following_explorer, list_follower_explorer, list_member_extractor, list_post_extractor, mention_extractor, people_search, post_extractor, quote_extractor, reply_extractor, repost_extractor, space_explorer, thread_extractor, tweet_search_extractor, user_likes, user_media, verified_follower_explorer.
string
Filter by job status. One of: completed, failed, running.
string
Cursor for pagination. Use the nextCursor value from the previous response to fetch the next page.

Response

  • 200 OK
  • 401 Unauthenticated
  • 429 Rate Limited
object[]
Array of extraction job summaries.
boolean
Whether more results exist beyond this page.
string
Cursor to pass as the after parameter for the next page. Only present when hasMore is true.
{
  "extractions": [
    {
      "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "toolType": "reply_extractor",
      "status": "completed",
      "totalResults": 150,
      "createdAt": "2026-02-24T10:00:00.000Z",
      "completedAt": "2026-02-24T10:00:12.000Z"
    },
    {
      "id": "b2c3d4e5-f6a1-7890-abcd-ef2345678901",
      "toolType": "follower_explorer",
      "status": "completed",
      "totalResults": 4832,
      "createdAt": "2026-02-23T18:30:00.000Z",
      "completedAt": "2026-02-23T18:31:45.000Z"
    },
    {
      "id": "c3d4e5f6-a1b2-7890-abcd-ef3456789012",
      "toolType": "repost_extractor",
      "status": "failed",
      "totalResults": 0,
      "createdAt": "2026-02-23T12:00:00.000Z"
    }
  ],
  "hasMore": true,
  "nextCursor": "eyJjIjoiMjAyNi0wMi0yM1QxMjowMDowMC4wMDBaIiwiaSI6Ijc3NzY4In0"
}

Pagination

Results are ordered by creation date (newest first). To iterate through all extractions:
  1. Make the initial request without the after parameter.
  2. Check hasMore in the response. If true, use nextCursor as the after value in the next request.
  3. Repeat until hasMore is false.
import { appendFile } from "node:fs/promises";

let cursor = undefined;
let pageIndex = 0;

do {
  const params = new URLSearchParams({
    limit: "100",
    status: "completed",
  });
  if (cursor) params.set("after", cursor);
  const pageCursor = cursor ?? null;

  const response = await fetch(`https://xquik.com/api/v1/extractions?${params}`, {
    headers: { "x-api-key": "xq_YOUR_KEY_HERE" },
  });
  const data = await response.json();

  const rows = data.extractions.map((job) => ({
    extraction_id: job.id,
    tool_type: job.toolType,
    status: job.status,
    total_results: job.totalResults,
    created_at: job.createdAt,
    completed_at: job.completedAt ?? null,
    detail_path: `/api/v1/extractions/${job.id}`,
    export_path:
      job.status === "completed"
        ? `/api/v1/extractions/${job.id}/export?format=csv`
        : null,
    page_index: pageIndex,
    page_cursor: pageCursor,
    next_cursor: data.nextCursor ?? null,
    has_more: data.hasMore,
    handoff_format: "jsonl",
  }));

  if (rows.length > 0) {
    await appendFile(
      "xquik-extraction-jobs.jsonl",
      `${rows.map((row) => JSON.stringify(row)).join("\n")}\n`,
    );
  }

  cursor = data.hasMore ? data.nextCursor : undefined;
  pageIndex += 1;
} while (cursor);

Job inventory handoff

Use GET /extractions as the job inventory step before fetching details or exporting files. Treat nextCursor as opaque and pass it back as after; do not dump raw job lists into shared logs.

Page checkpoint

Store page_index, page_cursor, next_cursor, has_more, limit, tool_type_filter, and status_filter after each successful page.

Completed jobs

Store completed job id, toolType, totalResults, completedAt, detail_path, and export_path for the next fetch or file export.

Running or failed jobs

Keep status, createdAt, and id so dashboards can retry failed jobs or poll running jobs without rereading older pages.

Next API step

Use Get Extraction for paginated JSON rows, or Export Extraction for files.
Store page checkpoints separately from job rows:
{
  "page_index": 2,
  "page_cursor": "eyJjIjoiMjAyNi0wMi0yM1QxODozMTo0NS4wMDBaIiwiaSI6Ijc3NzY4In0",
  "next_cursor": "eyJjIjoiMjAyNi0wMi0yM1QxMjowMDowMC4wMDBaIiwiaSI6Ijc3NzY0In0",
  "has_more": true,
  "limit": 100,
  "tool_type_filter": "reply_extractor",
  "status_filter": "completed",
  "handoff_format": "jsonl"
}
Next steps: Get Extraction to retrieve full results for a specific job, or Create Extraction to run a new extraction.
Last modified on May 20, 2026
Morty Proxy This is a proxified and sanitized view of the page, visit original site.