This was giving me fits as well. I was about to give up, or try it without a sandbox but attempted one last time and got it to go. Eyebaling it not sure what minor difference between your post and the one that worked for me is. I have line breaks with the \ for the headers. I included a Paypal-Request-id though the response ended up ignoring it and generating its own. Mine, with the creds being replaced with xxxx though note there is a space between end of token and the closing ": curl -v -X POST https://api-m.sandbox.paypal.com/v1/catalogs/products \ -H "Content-Type: application/json" \ -H "Authorization: Bearer xxxx " \ -H "PayPal-Request-Id: SB-PRODUCT-001" \ -d '{ "name": "SB-WF-Premium", "description": "Ad-free content. Additional features in development.", "type": "DIGITAL", "category": "COMMERCIAL_SPORTS_PROFESSIONA", "image_url": "xxxx.png","home_url": "https://xxxxx" }' Good luck
... View more