Skip to content

قائمة عمليات الاستخراج

GET /v1/extractions

قائمة سجلات الاستخراج للمستخدم المصادق عليه. تُرجع النتائج بترتيب زمني عكسي (الأحدث أولاً). يدعم ترقيم الصفحات القائم على المؤشر والتصفية حسب القالب أو معرّف التشغيل الدفعي أو نطاق التاريخ.

جرّبه

اختبر هذا الـ endpoint بشكل تفاعلي في Swagger UI.

المصادقة مطلوبة

أدرج مفتاح API في ترويسة Authorization.

الطلب

الترويسات

الترويسةالقيمةمطلوب
AuthorizationBearer <token>نعم

معاملات الاستعلام

المعاملالنوعمطلوبالوصف
templateIdstringلاتصفية النتائج لعمليات الاستخراج من قالب محدد.
runIdstringلاتصفية النتائج لعمليات الاستخراج من تشغيل دفعي محدد. يُرجع جميع النتائج المطابقة (يتجاهل limit/cursor).
limitnumberلاالحد الأقصى لعدد النتائج المُرجعة. الافتراضي: 50، الحد الأقصى: 100.
cursorstringلامؤشر ترقيم الصفحات. مرر قيمة createdAt لآخر عنصر من الصفحة السابقة لجلب الصفحة التالية.
dateFromstringلاتصفية عمليات الاستخراج التي أُنشئت في هذا التاريخ أو بعده (YYYY-MM-DD).
dateTostringلاتصفية عمليات الاستخراج التي أُنشئت في هذا التاريخ أو قبله (YYYY-MM-DD).

ترقيم الصفحات

تتضمن الاستجابة قيمة منطقية hasMore. عندما تكون true، مرر قيمة createdAt لآخر عنصر كمعامل cursor لجلب الصفحة التالية.

عند التصفية بـ runId، تُرجع جميع عمليات الاستخراج المطابقة في استجابة واحدة (لا حاجة لترقيم الصفحات لأن التشغيلات الدفعية عادةً صغيرة).

أمثلة الكود

bash
# List all extractions (default limit of 50)
curl https://api.docmap.io/v1/extractions \
  -H "Authorization: Bearer dm_live_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0"

# Filter by template and limit results
curl "https://api.docmap.io/v1/extractions?templateId=48291&limit=10" \
  -H "Authorization: Bearer dm_live_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0"

# Filter by batch run ID
curl "https://api.docmap.io/v1/extractions?runId=b4704c6e-8917-4671-8c92-178aec3eba92" \
  -H "Authorization: Bearer dm_live_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0"

# Filter by date range
curl "https://api.docmap.io/v1/extractions?dateFrom=2025-01-01&dateTo=2025-01-31" \
  -H "Authorization: Bearer dm_live_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0"

# Paginate through results
curl "https://api.docmap.io/v1/extractions?limit=10&cursor=2025-01-15T09:30:00.000Z" \
  -H "Authorization: Bearer dm_live_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0"
typescript
const apiKey = process.env.DOCMAP_API_KEY

// List all extractions
const response = await fetch('https://api.docmap.io/v1/extractions', {
  headers: { 'Authorization': `Bearer ${apiKey}` },
})

const { data, hasMore } = await response.json()
console.log(`Found ${data.length} extractions, hasMore: ${hasMore}`)

// Paginate through all results
let cursor: string | undefined
const allExtractions = []

do {
  const url = new URL('https://api.docmap.io/v1/extractions')
  url.searchParams.set('limit', '50')
  if (cursor) url.searchParams.set('cursor', cursor)

  const res = await fetch(url, {
    headers: { 'Authorization': `Bearer ${apiKey}` },
  })
  const page = await res.json()

  allExtractions.push(...page.data)
  cursor = page.hasMore ? page.data.at(-1)?.createdAt : undefined
} while (cursor)

console.log(`Total: ${allExtractions.length} extractions`)

// Filter by template
const filtered = await fetch(
  'https://api.docmap.io/v1/extractions?templateId=48291&limit=10',
  { headers: { 'Authorization': `Bearer ${apiKey}` } },
)

const { data: filteredData } = await filtered.json()
python
import requests

api_key = "dm_live_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0"
headers = {"Authorization": f"Bearer {api_key}"}

# List all extractions
response = requests.get(
    "https://api.docmap.io/v1/extractions",
    headers=headers,
)
result = response.json()
print(f"Found {len(result['data'])} extractions, hasMore: {result['hasMore']}")

# Paginate through all results
all_extractions = []
cursor = None

while True:
    params = {"limit": 50}
    if cursor:
        params["cursor"] = cursor

    response = requests.get(
        "https://api.docmap.io/v1/extractions",
        headers=headers,
        params=params,
    )
    page = response.json()

    all_extractions.extend(page["data"])

    if not page["hasMore"]:
        break
    cursor = page["data"][-1]["createdAt"]

print(f"Total: {len(all_extractions)} extractions")

# Filter by date range
response = requests.get(
    "https://api.docmap.io/v1/extractions",
    headers=headers,
    params={"dateFrom": "2025-01-01", "dateTo": "2025-01-31"},
)

الاستجابة

الحالة: 200 OK

يحتوي جسم الاستجابة على مصفوفة data من سجلات الاستخراج وقيمة منطقية hasMore تشير إلى وجود صفحات إضافية.

حقول المستوى الأعلى

الحقلالنوعالوصف
dataExtractionRecord[]مصفوفة سجلات الاستخراج.
hasMorebooleantrue إذا كانت هناك نتائج إضافية بعد الصفحة الحالية. false عند التصفية بـ runId (تُرجع جميع النتائج).

حقول سجل الاستخراج

يحتوي كل سجل استخراج في المصفوفة على نفس حقول استجابة تشغيل استخراج:

الحقلالنوعالوصف
idstringمعرّف الاستخراج الفريد (مسبوق بـ extract-).
userIdstringمعرّف المستخدم الذي يملك هذا الاستخراج.
templateIdstringمعرّف القالب المستخدم للاستخراج.
templateNamestringاسم العرض للقالب المستخدم.
fileNamestringاسم الملف الأصلي للمستند المرفوع.
status"processing" | "completed" | "failed"حالة الاستخراج الحالية. "processing" إذا كان لا يزال قيد المعالجة، "completed" عند النجاح، "failed" عند الخطأ.
extractedDataobject | nullالبيانات المستخرجة المطابقة لحقول القالب. null إذا فشل الاستخراج.
errorstring | nullرسالة خطأ تصف الفشل. null إذا نجح الاستخراج.
variablesVariable[]مصفوفة تعريفات متغيرات القالب المستخدمة أثناء الاستخراج.
source"dashboard" | "api"كيف تم تشغيل الاستخراج.
runIdstring | nullمعرّف التشغيل الدفعي، إذا تم توفيره.
processingTimeMsnumber | nullإجمالي مدة المعالجة بالمللي ثانية.
createdAtstringطابع زمني ISO 8601 لوقت إنشاء الاستخراج.

مثال

json
{
  "data": [
    {
      "id": "extract-KmL9nOpQrStUvWxYz",
      "userId": "L5kM9nRpQ7vX3yZ1wD4eF6gHjA2",
      "templateId": "48291",
      "templateName": "Invoice Template",
      "fileName": "invoice-2024-001.pdf",
      "status": "completed",
      "extractedData": {
        "vendor_name": "Acme Corp",
        "invoice_number": "INV-2024-001",
        "total_amount": 1250.00
      },
      "error": null,
      "variables": [
        {
          "name": "vendor_name",
          "type": "string",
          "description": "Name of the vendor or supplier"
        }
      ],
      "source": "api",
      "runId": null,
      "processingTimeMs": 3842,
      "createdAt": "2025-01-20T14:30:00.000Z"
    }
  ],
  "hasMore": true
}

الأخطاء

الحالةالرمزالوصف
401UNAUTHORIZEDمفتاح API / رمز مفقود أو غير صالح أو منتهي الصلاحية.

وثائق DocMap API