CURL PUT request to a restful API

I have a an API that i am using to perform some automation for some thin client devices. What I am attempting to do is to update a field in a database from the API with information provided by the device.

I have tested the server side code with Postman and the field updates as expected but I cannot get the curl request to run correctly. I did try the code that postman generates for curl requests and that failed.

I am running this from a bash script:

#! /bin/bash

MAC=$(cat /sys/class/net/eth0/address)
IP=$(hostname -I)
FQDN=$(hostname -A)

echo $MAC
echo $IP
echo $FQDN
echo " "

curl -X PUT --header "application/json" --header "charset=utf-8"  --header "content-length: 4" --header "application/json"$MAC&ip=$IP&fqdn=$FQDN

When I attempt to run this code it dumps straight back to the prompt with no info.

What am I a doing wrong?