Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
post a JSON file with curl

How do you POST a JSON file with curl??

You can post a json file with curl like so:

curl -X POST -H "Content-Type: application/json" -d @FILENAME DESTINATION

so for example:

curl -X POST -H "Content-Type: application/json" -d @../data/cats.json http://localhost:8080/mSfvMwNAfj

you can post a little blob of geojson, like so:

curl -X POST -H "Content-Type: application/json" -d '{"type":"Feature","properties":{"COUNTY":"M","PRECINCT":4505.0,"AREA":24330472.48801},"geometry":{"type":"Polygon","coordinates":[[[-122.579029970781065,45.53373981165327],[-122.579036751674209,45.533742065313575],[-122.579532751335037,45.533906068395808],[-122.579961749295705,45.534067060396104],[-122.580146749064056,45.534114065074704],[-122.581902757566823,45.534772060883959],[-122.582770766094569,45.535128058282019],[-122.583461773870638,45.535383050711246],[-122.584275765662781,45.535596050402262],[-122.584926770675438,45.535732043153857],[-122.585534768605342,45.535823041352423],[-122.586393777046183,45.535863042628513],[-122.586845771939593,45.535841037753478],[-122.587166778711079,45.535850042847976],[-122.587593783117342,45.535829037919441],[-122.587900782381638,45.535804036638346],[-122.588290773918729,45.535750036812139],[-122.588704782064923,45.535671034778389],[-122.589196776268082,45.535561035548149],[-122.589239647326053,45.535550318867173],[-122.589320708749753,45.536124484404517],[-122.589304695035338,45.537268231315537],[-122.59947923271595,45.53740953002616],[-122.599372142997979,45.537656509885132],[-122.601520781310597,45.537617244011571],[-122.601391421360532,45.543541079913162],[-122.578671442407,45.552336859399695],[-122.578672106607101,45.55230042862145],[-122.578693794893084,45.551092987187559],[-122.578713188347777,45.549969468845575],[-122.579029970781065,45.53373981165327]]]}}' http://localhost:8080/mSfvMwNAfj

Don't try to post a big blob, your terminal will hate you and you will hate yourself. It will go on forever and ever.

Use the syntax above (curl -X POST -H "Content-Type: application/json" -d @FILENAME DESTINATION) to specify a file instead.

@ted-fastly

This comment has been minimized.

Copy link

@ted-fastly ted-fastly commented Jun 20, 2019

RIP the image :)

@ungoldman

This comment has been minimized.

Copy link
Owner Author

@ungoldman ungoldman commented Jun 21, 2019

@ted-sigsci thanks! fixed (no more image 🙅‍♂️)

@ted-fastly

This comment has been minimized.

Copy link

@ted-fastly ted-fastly commented Jun 21, 2019

I wouldn't have even commented but we know each other from the internets and all that.

@ungoldman

This comment has been minimized.

Copy link
Owner Author

@ungoldman ungoldman commented Jun 21, 2019

@ted-sigsci comment appreciated! Thanks for the heads up internet friend 👍

@greysou1

This comment has been minimized.

Copy link

@greysou1 greysou1 commented Jun 22, 2019

Hi, I encountered with this error can you please help me out?
{"error": "was not able to parse dict in the request body."}

@ungoldman

This comment has been minimized.

Copy link
Owner Author

@ungoldman ungoldman commented Jun 23, 2019

@Prudvi01 I have no idea! Have you tried searching for the error message in general or on technical support forums like http://stackoverflow.com ? I don't know if this error is coming from the the curl command, the website you're trying to POST to, or something else. I can't help you further in this context, this is just a simple reference gist. Best of luck.

@Raj2032

This comment has been minimized.

Copy link

@Raj2032 Raj2032 commented Aug 11, 2019

Thanks for the help it helped me :)

@Querela

This comment has been minimized.

Copy link

@Querela Querela commented Apr 8, 2020

👍

@ReactiveSlime

This comment has been minimized.

Copy link

@ReactiveSlime ReactiveSlime commented Apr 28, 2020

thanks. this was helpfull

@jieunychoi

This comment has been minimized.

Copy link

@jieunychoi jieunychoi commented Oct 20, 2020

thanks

@rubenflush

This comment has been minimized.

Copy link

@rubenflush rubenflush commented Oct 30, 2020

Thanks!

@VinceSJ

This comment has been minimized.

Copy link

@VinceSJ VinceSJ commented Dec 2, 2020

Thank you!

@junoatscroll

This comment has been minimized.

Copy link

@junoatscroll junoatscroll commented Dec 3, 2020

thank you!

@ungoldman

This comment has been minimized.

Copy link
Owner Author

@ungoldman ungoldman commented Dec 3, 2020

@junoatscroll thank you!

@snepal87

This comment has been minimized.

Copy link

@snepal87 snepal87 commented Feb 18, 2021

What if I need to change a value of a Json object while posting?

For example my filename.json is

{
"id": "abcd",
"name": "name"
"address": "street",
}

My "id" may not always be "abcd" and it can be dynamic.
I want to Post this Json file using the above Curl but I want to pass "id" as dynamic value every time I Post the Json. How do I do this?

@ungoldman

This comment has been minimized.

Copy link
Owner Author

@ungoldman ungoldman commented Feb 18, 2021

@snepal87 sounds like you need to use a function.

https://linuxize.com/post/bash-functions/

good luck!

@hoffmanc

This comment has been minimized.

Copy link

@hoffmanc hoffmanc commented Feb 22, 2021

:<3:

@SoCalBeachrunner

This comment has been minimized.

Copy link

@SoCalBeachrunner SoCalBeachrunner commented Apr 15, 2021

Thanks. Cured my headache.

@ChosenMoren

This comment has been minimized.

Copy link

@ChosenMoren ChosenMoren commented Apr 24, 2021

How to know my destination?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment