--- title: "API" slug: "applications-packetscope2-api" updated: 2025-03-19T05:08:05Z published: 2025-03-19T05:08:05Z canonical: "docs.fmad.io/applications-packetscope2-api" --- > ## Documentation Index > Fetch the complete documentation index at: https://docs.fmad.io/llms.txt > Use this file to discover all available pages before exploring further. # API API interface for Packetscope2 The following API end points use PCAP interface and a custom target.lua configuration file. This allows custom processing of the streamed PCAP files Utilities file is located at [https://static.fmad.io/download/container/pscope2_utils_20250319.tar.gz](https://static.fmad.io/download/container/pscope2_utils_20250319.tar.gz) MD5 sum bd775af211d9bb113cb67d8a8e790e9e 1) Download the above 2) copy to /mnt/store0/tmp2 3) Extract the archive ```plaintext cd /mnt/store0/tmp2/ tar xfzv pscope2_utils_20250319.tar.gz ``` 4) Overwrite the target.lua file ```plaintext cp /mnt/store0/tmp2/pscope2/target.lua /opt/fmadio/etc/target.lua ``` --- ## /api/v1/capture/pcap/single?Target=pscope2_process This will process a full capture named StreamName which resides on the capture system into the Packetscope 2 container. #### Address `/api/v1/capture/pcap/single?Target=pscope2_process` #### Verb GET #### Notes #### Arguments | Parameter | Description | | --- | --- | | StreamName | Name of the capture | ### Example Example show processing a specific capture file previously captured (in this case the capture is named `ny2_election_20250204_2245` ```bash fmadio@fmadio100v2-228U:~$ curl -u fmadio:xxx -k "https://127.0.0.1/api/v1/pcap/single?Target=pscope2_process&StreamName=ny2_election_20250204_2245" │{"tstr":"20250319_123841", "timestamp":1742359121,"PktCnt":       857960770, "PktByte":    119093146198,                                                                                "ChunkID":60272653,"PCAPTS":"14:31:07.685.743.690","PendingB":745013248,                                                                                "Read_bps":4827339222,"Read_pps":4359387,                                                                                                             "Write_bps":9652734495,"Write_pps":8718775,                                                                                                             "FwdPct":2.000                                                               } ``` It will likely takes several minutes to process the file. To monitor its progress running the following ```plaintext sudo lxc-attach -n -- journalctl -f ``` Example output shown below ```plaintext Mar 19 04:48:13 fmadio100v2-228U-pscope2 pscope2.lua[2810]: [14:30:31.876.139.708] 1730903431876139708 59435732702 63882 55.354/0.096 GB     3.22 Mpps     3.48 Gbps | cat      0 MB 0.00 0.00 0.00 | Flows/Snap:      0:   0 FlowCPU:0.00 0.00 | Output     0.000 K Lines/sec  0.000 Gbps Mar 19 04:48:14 fmadio100v2-228U-pscope2 pscope2.lua[2810]: [14:30:32.167.900.052] 1730903432167900052 59946010772 64458 55.829/0.097 GB     3.63 Mpps     4.08 Gbps | cat      0 MB 0.00 0.00 0.00 | Flows/Snap:      0:   0 FlowCPU:0.00 0.00 | Output     0.000 K Lines/sec  0.000 Gbps ``` --- ## /api/v1/capture/pcap/single?Target=pscope2_dump This will dump the full processed JSON data from the specified StreamName to the standard out processing Address `/api/v1/capture/pcap/single?Target=pscope2_dump` #### Verb GET #### Notes #### Arguments | Parameter | Description | | --- | --- | | StreamName | Name of the capture | ### Example Example shows the first few lines of an output. Please note the amount of output data can be an order of magnitude larger than the source PCAP file. ```bash fmadio@fmadio100v2-228U:~$ curl -u fmadio:xxx -k "https://127.0.0.1/api/v1/pcap/single?Target=pscope2_dump&StreamName=ny2_election_20250204_2245" | head | jq  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current                                 Dload  Upload   Total   Spent    Left  Speed  0     0    0     0    0     0      0      0 --:--:--  0:00:01 --:--:--     0{  "TS": "0",  "timestamp": "2024-11-06 14:31:07",  "system": "fmadio100v2-228U-pscope2",  "site": "",  "capture": "ny2_election_20250204_2245",  "hashHalf": "34a64b47bb0fbb4e7cc8722d70e175f7353e8e3d",  "frameProto": ":ether:ipv4:udp",  "ether_0_type": "0x0800",  "ether_0_src": "ec:38:73:5b:eb:40",  "ether_0_dst": "01:00:5e:00:cc:4a",  "ether_1_type": "",  "ether_1_src": "",  "ether_1_dst": "",  "ether_2_type": "",  "ether_2_src": "",  "ether_2_dst": "", . . . ``` Alternatively writing this to a JSON file is another approach ```bash fmadio@fmadio100v2-228U:~$ curl -u fmadio:xxx -k "https://127.0.0.1/api/v1/pcap/single?Target=pscope2_dump&StreamName=ny2_election_20250204_2245" > output.json  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current                                 Dload  Upload   Total   Spent    Left  Speed 100  330M    0  330M    0     0  87.7M      0 --:--:--  0:00:03 --:--:-- 87.7M fmadio@fmadio100v2-228U:~$ ``` --- ## /api/v1/capture/pcap/single?Target=push_offline This runs an offline Push PCAP using the specific StreamName. This requires the Push PCAP functions to be pre-configured before running. Address `/api/v1/capture/pcap/single?Target=push_offline` #### Verb GET #### Notes #### Arguments | Parameter | Description | | --- | --- | | StreamName | Name of the capture | ### Example Example of running ```bash fmadio@fmadio100v2-228U:~$ curl -u fmadio:xxx -k "https://127.0.0.1/api/v1/pcap/single?Target=push_offline&StreamName=ny2_election_20250204_2245" ``` Monitoring of the process is in the logfile ```bash $ tail -F /mnt/store0/log/stream_command.cur ``` Or in the specific push_pcap logfile, for example using a Push Target named “Test” ```bash fmadio@fmadio100v2-228U:~$ tail -F /mnt/store0/log/push_pcap_Test.cur [0.000 H][2024-11-06 22:30:11] /mnt/store0/pushpcap/Test20241106_223011.pcap : Total Bytes          28161431034  167681290 28.161 GB Speed: 1.730 Gbps 1.371 Mpps : TotalSplit 284 PCAPTS: 1730903411926565522 fmad fmadlua Sep  7 2024 (/opt/fmadio/bin/fmadiolua --nocal /opt/fmadio/analytics/push_pcap_close.lua /mnt/store0/pushpcap/Test20241106_223011.pcap 2507091460 15576073 12149790000 1000000024 1730903411000000000 1730903412000000000 1730903411000000023 1730903411999999833 1730903412000000047 ) Disable cycle calibration done 0.001318Sec 0.000022Min [0.038 H][2024-11-06 22:30:12] /mnt/store0/pushpcap/Test20241106_223011.pcap : Finished : Split Bytes       2507091460 (2.507 GB) Split Pkts:  15576073 WallTime:         12149790000 PCAPTime:          1000000024 Script [/opt/fmadio/analytics/push_pcap_close.lua /mnt/store0/pushpcap/Test20241106_223011.pcap 2507091460 15576073 12149790000 1000000024 1730903411000000000 1730903412000000000 1730903411000000023 1730903411999999833 1730903412000000047] [cat > '/mnt/store0/pushpcap/Test20241106_223012.pcap.pending'] [0.038 H][2024-11-06 22:30:12] /mnt/store0/pushpcap/Test20241106_223012.pcap : Total Bytes 28.319 GB Speed: 1.642 Gbps : New Split [0.000 H][2024-11-06 22:30:12] /mnt/store0/pushpcap/Test20241106_223012.pcap : Total Bytes          28411275524  169301099 28.411 GB Speed: 1.675 Gbps 1.357 Mpps : TotalSplit 285 PCAPTS: 1730903412036390276 [0.000 H][2024-11-06 22:30:12] /mnt/store0/pushpcap/Test20241106_223012.pcap : Total Bytes          28658312092  170883233 28.658 GB Speed: 1.656 Gbps 1.326 Mpps : TotalSplit 285 PCAPTS: 1730903412142087319 ``` FMADIO Packet Capture systems provide a built-in PCAP Push feature to transfer captured PCAP data on a regular schedule to a remote system or local Scratch Disk.