Dokumentacja dla programistów›Dokumentacja API (rdzeń)›Dokumentacja API eksportu tablicy
Dokumentacja dla programistów

Dokumentacja API eksportu tablicy

Aktualizacja 2026-11-04

Dostępne tylko w wersjach API 2026-10 i nowszych

  • 🚧 Dostępne tylko w planach Enterprise
  • Wymagany zakres: boards:read dla obu operacji (boards:write nie jest wymagany - eksport tylko odczytuje dane tablicy)
  • Eksportowany plik jest zawsze w formacie CSV

Proces eksportu:

  1. Wywołaj create_board_export z parametrem board_id
  2. Jeśli odpowiedź ma typ ExportFile, od razu pobierz plik z download_url
  3. Jeśli odpowiedź ma typ ExportAsyncJob, odpytuj export_job_status, przekazując jego job_id, aż zadanie osiągnie stan końcowy

Zapytania

Sprawdzanie stanu zadania eksportu

  • 🚧 Dostępne tylko w planach Enterprise - pozostałe konta otrzymają błąd FORBIDDEN_EXCEPTION
  • Wymagany zakres: boards:read
  • Zwraca bieżący stan asynchronicznego eksportu tablicy jako ExportJobStatusInfo albo null
  • Użyj tego zapytania, aby odpytywać o job_id zwrócone przez create_board_export
query {
  export_job_status(job_id: "a1b2c3d4-0000-0000-0000-000000000000") {
    status
    download_url
    failure_reason
    failure_message
  }
}
import { ApiClient } from "@mondaydotcomorg/api";
const mondayApiClient = new ApiClient({ token: myToken });

const query = `query ($job: ID!) { export_job_status (job_id: $job) { status download_url failure_reason failure_message }}`
const variables = {
  job: "a1b2c3d4-0000-0000-0000-000000000000"
}
const response = await mondayApiClient.request(query, variables);

Argumenty

Argument Typ Opis
job_id ID! job_id zwrócone przez create_board_export.

Odpytywanie

Odpytuj, aż status przyjmie jedną z wartości końcowych: COMPLETED, FAILED lub CANCELLED:

  • COMPLETED - odczytaj download_url. Może mieć wartość null, jeśli odpytasz po wygaśnięciu adresu URL, więc sprawdź go przed użyciem.
  • FAILED - odczytaj failure_reason (oraz failure_message, jeśli jest dostępny).
  • RUNNING - poczekaj i odpytaj ponownie.

Zwiększaj odstępy między kolejnymi zapytaniami, zamiast wysyłać je w krótkiej pętli. Każde wywołanie jest wliczane do limitów zapytań. Eksport dużych tablic może trwać kilka minut, dlatego ustaw limit czasu we własnym kliencie, zamiast odpytywać bez końca.

Wynik null nie oznacza, że zadanie się nie powiodło. To zapytanie zwraca null zarówno dla nieistniejącego job_id, jak i dla identyfikatora należącego do innego konta. Te przypadki celowo są nierozróżnialne, aby ujawniony identyfikator nie mógł posłużyć do sprawdzania eksportów innych kont. Jeśli wynik null pojawi się dla identyfikatora, który właśnie otrzymano, sprawdź, czy wysyłasz zapytanie z tokenem tego samego konta.


Mutacje

Wymagany zakres: boards:read (boards:write nie jest wymagany - ta mutacja tylko odczytuje dane tablicy)

Tworzenie eksportu tablicy

  • 🚧 Dostępne tylko w planach Enterprise
  • Eksportuje tablicę do pliku CSV i zwraca ExportResult
  • Eksportowany plik jest zawsze w formacie CSV

Ta mutacja zwraca jeden z dwóch różnych typów, a Twoje zapytanie musi obsługiwać oba.

Eksport małych tablic zwykle kończy się od razu i zwraca ExportFile z polem download_url. Eksport większych tablic zwraca ExportAsyncJob z polem job_id, o które trzeba następnie odpytywać.

To, który typ otrzymasz, nie jest gwarantowane. Zależy od rozmiaru tablicy i bieżącego obciążenia serwera. Progi mogą też zostać zmienione bez uprzedzenia, więc ta sama tablica może dziś zwrócić ExportFile, a jutro ExportAsyncJob. Klient, który wybiera tylko jedną z tych możliwości, przestanie działać. Zawsze wybieraj oba typy.

mutation {
  create_board_export(
    board_id: 1234567890
    export_options: { include_subitems: true, header_row: COLUMN_ID, columns_order: ["name", "status", "date4"] }
    time_zone: "America/New_York"
  ) {
    ... on ExportFile {
      download_url
      expires_at
    }
    ... on ExportAsyncJob {
      job_id
    }
  }
}
import { ApiClient } from "@mondaydotcomorg/api";
const mondayApiClient = new ApiClient({ token: myToken });

const query = `mutation ($board: ID!) { create_board_export (board_id: $board) { ... on ExportFile { download_url expires_at } ... on ExportAsyncJob { job_id }}}`
const variables = {
  board: 1234567890
}
const response = await mondayApiClient.request(query, variables);

const result = response.create_board_export;
if (result.download_url) {
  // Finished synchronously - download it now.
} else {
  // Still running - poll export_job_status with result.job_id.
}

Argumenty

Argument Typ Opis
board_id ID! Unikatowy identyfikator tablicy do wyeksportowania.
export_options CreateBoardExportOptionsInput Konfiguracja eksportu (podelementy, format nagłówka, kolejność kolumn itd.). Pomiń ten argument, aby użyć ustawień domyślnych.
time_zone String Strefa czasowa IANA używana do formatowania dat i godzin, np. America/New_York. Domyślnie jest to strefa czasowa użytkownika, którego tokenem wysłano zapytanie, a jeśli użytkownik jej nie ustawił - UTC.

export_options.columns_order wybiera kolumny i ustala ich kolejność. Każda niewymieniona kolumna zostanie całkowicie pominięta w eksporcie - nie zostanie dodana na końcu. Aby zmienić kolejność kolumn na tablicy bez utraty żadnej z nich, podaj identyfikator każdej kolumny, którą chcesz uwzględnić.

Kolumna z nazwą elementu i kolumny podelementów stanowią wyjątek: zawsze są umieszczane na początku, niezależnie od tego, czy je wymienisz.

Zwracane wartości

ExportResult - jeden z typów:

Typ Kiedy jest zwracany Co zrobić
ExportFile Eksport zakończył się na czas Pobierz plik z download_url przed upływem expires_at.
ExportAsyncJob Eksport jest nadal w toku Odpytuj export_job_status, przekazując job_id, aż zadanie osiągnie stan końcowy.

Jeśli wolisz rozróżniać typy bezpośrednio, zamiast wnioskować o nich na podstawie zwróconych pól, użyj __typename:

mutation {
  create_board_export(board_id: 1234567890) {
    __typename
    ... on ExportFile { download_url }
    ... on ExportAsyncJob { job_id }
  }
}

Błędy

Wynik nie ma osobnej gałęzi dla błędów. Błędy są zgłaszane na jeden z dwóch sposobów:

  • Jako błąd GraphQL, jeśli żądanie zostanie odrzucone przed rozpoczęciem eksportu - na przykład z powodu nieprawidłowego board_id, braku uprawnień lub nieobsługiwanej kombinacji opcji eksportu. Konta bez planu Enterprise zostaną odrzucone z kodem błędu FORBIDDEN_EXCEPTION.
  • Jako stan FAILED w export_job_status, jeśli asynchroniczny eksport nie powiedzie się po rozpoczęciu. Odczytaj ExportFailureReason, aby poznać przyczynę.

Adresy URL pobierania

download_url to podpisany adres URL, który wygasa. Traktuj go jak sekret - każda osoba, która go ma, może pobrać plik do czasu jego wygaśnięcia. Nie można odnowić tego adresu: po jego wygaśnięciu ponownie wywołaj create_board_export, aby utworzyć nowy plik.


Zobacz także