Outputs API
Retrieve field reports and combined output packages over HTTP.
Last updated:
On this page
Report endpointsSelecting scopeJSON responseCombined output packageValidation and error handlingReport endpoints
Field outputs use GET /api/p/{pid}/ciktilar/{tur}. Users with read permission, including Viewers, can access outputs permitted by their module scope. The default is format=json; the reports below also accept csv, xlsx and pdf.
| Type | Contents | Scope parameters |
|---|---|---|
pano |
Panel / splice tray schedule | Repeatable dugum or hepsi=1 |
raf |
Rack schedule | Repeatable dugum or hepsi=1 |
malzeme |
Material list / bill of quantities (BoQ) | durum |
kapasite-optik |
Capacity / optical report | durum, bolum |
etiketler |
Tag list | Repeatable dugum or hepsi=1 |
Panel, rack, fiber/optical and label reports require fiber scope. Material outputs can use shared site data while fiber is disabled. Electric inventory endpoints belong to a module that is Coming soon.
Selecting scope
On endpoints requiring node selection, dugum can be repeated. hepsi=1 selects the entire project.
GET /api/p/{pid}/ciktilar/pano?dugum=DOL-123&dugum=EK-456&format=pdf
Replace example identifiers with accessible nodes in the same project. If neither nodes nor hepsi=1 are supplied, the endpoint returns 400.
For material reports, durum accepts hepsi, yeni, mevcut and kullanim_disi. yeni includes both planned and under-construction features.
For the fiber/optical report, circuit states are comma-separated aktif, planlanan and pasif; the default is aktif,planlanan. bolum=kapasite,optik is the default, and either section can be selected alone. The optical section shows saved calculations and their freshness; generating an output does not create a new optical calculation.
JSON response
A report JSON response is not an ordinary feature list. Its main fields are:
| Field | Meaning |
|---|---|
cikti, ad |
Report key and displayed name |
veri_ani |
Generation time, last change, modules and scope |
kunye |
Report-specific descriptive information |
notlar, uyarilar |
Records affecting interpretation of the result |
sayilar |
Report-specific totals |
bolumler |
Section definitions and rows |
Each section carries anahtar, baslik, anahtarlar, sutunlar, turler, notlar, satirlar and kimlikler. Map values in satirlar using the same section's anahtarlar order. Do not use Turkish column headings as stable field keys.
generated_at, son_degisiklik, moduller, kapsam, sozlesme and snapshot_tekil in veri_ani identify the data snapshot used for the output. Large integers may be returned as lossless strings; do not force every numeric-looking cell into a JavaScript Number.
Combined output package
GET /api/p/{pid}/ciktilar/paket with format=zip generates selected reports from one data snapshot. icerik values use <report>.<format>, separated by commas or supplied as repeated query parameters.
GET /api/p/{pid}/ciktilar/paket?icerik=pano.pdf&icerik=malzeme.xlsx&hepsi=1
Empty, duplicate or unknown selections are rejected with 400. Packages accept malzeme_durum, devre_durum and bolum. The ZIP includes the selected files and KUNYE.json describing the snapshot and file list.
This ZIP distributes reports; it is not a project restore bundle. Use Project bundle to transfer a project.
Validation and error handling
| Constraint | Value |
|---|---|
| Nodes selected in one request | 200 |
| Total section rows in one output | 200,000 |
| Total package rows | 400,000; different formats of the same data count separately |
| Single file | 25 MiB |
| Total expanded package files | 100 MiB |
| Collected cell content | 64 MiB |
| Total execution time allowance | 30 seconds |
| Concurrent output generation | 2 per application worker |
A row-count rejection returns 400/cikti_sinir; size, time or occupied generation slots may return 409. Retry cikti_mesgul later; for cikti_sure and cikti_boyut, narrow the selected nodes, states or sections. Package generation shares these checks.
Output calls do not modify project records and do not accept request_id. File formats return the file body directly; read its download name from Content-Disposition. Errors may return JSON instead of a file, so inspect the HTTP status before saving the body. See Error codes.