--- title: "igmp" slug: "api-v1-capture-igmp" updated: 2026-06-28T03:40:20Z published: 2026-06-28T03:40:20Z canonical: "docs.fmad.io/api-v1-capture-igmp" --- > ## 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. # igmp Provides general purpose scriptable way to update IGMP multicast joins running on the FMADIO capture ports. --- ## /api/v1/capture/igmp/get Returns the current IGMP settings in LUA format. #### Address `/api/v1/capture/igmp/get` #### Verb GET #### Notes #### Arguments | Parameter | Description | | --- | --- | | no parameters | | ### Example In this case the IGMP subscribe list is to some EUREX feeds. ```bash fmadio@fmadio100v2-228U:/opt/fmadio/analytics$ curl -k -u fmadio:**** https://127.0.0.1/api/v1/capture/igmp/get local Port0 = {} -- eurex table.insert(Port0, { Group = "223.0.50.0",  Port = 17100, VLAN = nil  })      --  "eurex", table.insert(Port0, { Group = "223.0.114.1", Port = 17101, VLAN = nil, VLANIP = "192.168.124.1"} )     --  "eurex", table.insert(Port0, { Group = "223.0.114.2", Port = 17102, VLAN = nil, VLANIP = "192.168.124.1"} )     --  "eurex", table.insert(Port0, { Group = "223.0.114.3", Port = 17103, VLAN = nil, VLANIP = "192.168.124.1"} )     --  "eurex", local Port1 = {} return { Port0, Port1, Interval = 30e9, } fmadio@fmadio100v2-228U:/opt/fmadio/analytics$ ``` --- ## /api/v1/capture/igmp/put Updates the current IGMP join Lua configuration file on the system. #### Address `/api/v1/capture/igmp/put` #### Verb POST #### Notes There is a maximum of 1MB upload file size. #### Arguments | Parameter | Description | | --- | --- | | (none) | | This endpoint takes POST content of the `application/json` content type, and expects a schema exemplified below: ```json {    "Interval": 30000000000, // number    "Port0": [        // zero or more objects        {            "Enable": true, // boolean or null (null implies `false`)            "Comment": "hello world", // string or null (only for human documentation)            "Group": "224.0.50.0", // string or null            "Port": 17107, // number or null            "VLAN": 11, // number or null            "VLANIP": null // string or null        }    ], // array or null    "Port1": [        // zero or more objects          ] // array or null } ``` ### Example ```bash fmadio@fmadio100v2-228U:~$ curl -s -k \  -u fmadio:***** -X POST \  -H "Content-Type: application/json" \  -d "$(cat my_igmp_file.json)" \  https://127.0.0.1/api/v1/capture/igmp/put {  "Status": true,  "Port0_TotalGroup": 2,  "Port1_TotalGroup": 1 } ``` ```bash fmadio@fmadio100v2-228U:~$ curl -s -k -u fmadio:***** -X POST  https://127.0.0.1/api/v1/capture/igmp/put   -H "Content-Type: multipart/form-data" -F "data=@igmp" | jq {  "Status": true,  "Port0_TotalGroup": 2,  "Port1_TotalGroup": 1 } ``` --- ## /api/v1/capture/igmp/reset Resets the IGMP join lua configuration to blank default state #### Address `/api/v1/capture/igmp/reset` #### Verb GET #### Notes #### Arguments | Parameter | Description | | --- | --- | | (none) | | ### Example ```bash fmadio@fmadio100v2-228U:~$ curl -s -k -u fmadio:***** https://127.0.0.1/api/v1/capture/igmp/reset | jq { "Status": true,  "Desc": "IGMP join file reset" } ```