[{"data":1,"prerenderedAt":1809},["ShallowReactive",2],{"doc-\u002Fexamples\u002Fpython-api-post-request-example":3},{"id":4,"title":5,"body":6,"description":1802,"extension":1803,"meta":1804,"navigation":64,"path":1805,"seo":1806,"stem":1807,"__hash__":1808},"content\u002Fexamples\u002Fpython-api-post-request-example.md","Python API POST Request Example",{"type":7,"value":8,"toc":1772},"minimark",[9,13,17,31,36,231,234,241,259,263,279,283,286,304,307,310,340,344,347,509,514,727,730,741,745,751,782,785,798,805,810,857,860,868,878,884,903,906,909,915,934,937,946,950,953,975,978,1196,1199,1206,1210,1213,1235,1238,1268,1275,1279,1282,1629,1633,1663,1667,1671,1674,1688,1697,1701,1704,1711,1714,1721,1724,1728,1762,1768],[10,11,5],"h1",{"id":12},"python-api-post-request-example",[14,15,16],"p",{},"This example shows how to send a POST request in Python, send data to an API, and read the response.",[14,18,19,20,25,26,30],{},"The goal is to give you one simple working example you can run right away. If you want a more general guide later, see ",[21,22,24],"a",{"href":23},"\u002Fhow-to\u002Fhow-to-send-a-post-request-in-python\u002F","how to send a POST request in Python"," or ",[21,27,29],{"href":28},"\u002Fhow-to\u002Fhow-to-make-an-api-request-in-python\u002F","how to make an API request in Python",".",[32,33,35],"h2",{"id":34},"quick-example","Quick example",[37,38,43],"pre",{"className":39,"code":40,"language":41,"meta":42,"style":42},"language-python shiki shiki-themes material-theme-lighter github-light github-dark","import requests\n\nurl = \"https:\u002F\u002Fhttpbin.org\u002Fpost\"\npayload = {\n    \"name\": \"Alice\",\n    \"age\": 25\n}\n\nresponse = requests.post(url, json=payload)\n\nprint(response.status_code)\nprint(response.json())\n","python","",[44,45,46,59,66,87,99,124,140,146,151,189,194,214],"code",{"__ignoreMap":42},[47,48,51,55],"span",{"class":49,"line":50},"line",1,[47,52,54],{"class":53},"sVHd0","import",[47,56,58],{"class":57},"su5hD"," requests\n",[47,60,62],{"class":49,"line":61},2,[47,63,65],{"emptyLinePlaceholder":64},true,"\n",[47,67,69,72,76,80,84],{"class":49,"line":68},3,[47,70,71],{"class":57},"url ",[47,73,75],{"class":74},"smGrS","=",[47,77,79],{"class":78},"sjJ54"," \"",[47,81,83],{"class":82},"s_sjI","https:\u002F\u002Fhttpbin.org\u002Fpost",[47,85,86],{"class":78},"\"\n",[47,88,90,93,95],{"class":49,"line":89},4,[47,91,92],{"class":57},"payload ",[47,94,75],{"class":74},[47,96,98],{"class":97},"sP7_E"," {\n",[47,100,102,105,108,111,114,116,119,121],{"class":49,"line":101},5,[47,103,104],{"class":78},"    \"",[47,106,107],{"class":82},"name",[47,109,110],{"class":78},"\"",[47,112,113],{"class":97},":",[47,115,79],{"class":78},[47,117,118],{"class":82},"Alice",[47,120,110],{"class":78},[47,122,123],{"class":97},",\n",[47,125,127,129,132,134,136],{"class":49,"line":126},6,[47,128,104],{"class":78},[47,130,131],{"class":82},"age",[47,133,110],{"class":78},[47,135,113],{"class":97},[47,137,139],{"class":138},"srdBf"," 25\n",[47,141,143],{"class":49,"line":142},7,[47,144,145],{"class":97},"}\n",[47,147,149],{"class":49,"line":148},8,[47,150,65],{"emptyLinePlaceholder":64},[47,152,154,157,159,162,164,168,171,174,177,181,183,186],{"class":49,"line":153},9,[47,155,156],{"class":57},"response ",[47,158,75],{"class":74},[47,160,161],{"class":57}," requests",[47,163,30],{"class":97},[47,165,167],{"class":166},"slqww","post",[47,169,170],{"class":97},"(",[47,172,173],{"class":166},"url",[47,175,176],{"class":97},",",[47,178,180],{"class":179},"s99_P"," json",[47,182,75],{"class":74},[47,184,185],{"class":166},"payload",[47,187,188],{"class":97},")\n",[47,190,192],{"class":49,"line":191},10,[47,193,65],{"emptyLinePlaceholder":64},[47,195,197,201,203,206,208,212],{"class":49,"line":196},11,[47,198,200],{"class":199},"sptTA","print",[47,202,170],{"class":97},[47,204,205],{"class":166},"response",[47,207,30],{"class":97},[47,209,211],{"class":210},"skxfh","status_code",[47,213,188],{"class":97},[47,215,217,219,221,223,225,228],{"class":49,"line":216},12,[47,218,200],{"class":199},[47,220,170],{"class":97},[47,222,205],{"class":166},[47,224,30],{"class":97},[47,226,227],{"class":166},"json",[47,229,230],{"class":97},"())\n",[14,232,233],{},"This sends JSON data to a test API and prints the status code and returned JSON.",[14,235,236,237,240],{},"Install ",[44,238,239],{},"requests"," first:",[37,242,246],{"className":243,"code":244,"language":245,"meta":42,"style":42},"language-bash shiki shiki-themes material-theme-lighter github-light github-dark","pip install requests\n","bash",[44,247,248],{"__ignoreMap":42},[47,249,250,254,257],{"class":49,"line":50},[47,251,253],{"class":252},"sbgvK","pip",[47,255,256],{"class":82}," install",[47,258,58],{"class":82},[32,260,262],{"id":261},"what-this-example-shows","What this example shows",[264,265,266,270,273,276],"ul",{},[267,268,269],"li",{},"How to send a POST request with Python",[267,271,272],{},"How to send data as JSON",[267,274,275],{},"How to read the server response",[267,277,278],{},"How to check whether the request worked",[32,280,282],{"id":281},"before-you-run-the-code","Before you run the code",[14,284,285],{},"Make sure:",[264,287,288,291,299],{},[267,289,290],{},"Python is installed",[267,292,293,294,296,297],{},"The ",[44,295,239],{}," package is installed with ",[44,298,253],{},[267,300,301,302],{},"You use a safe test endpoint like ",[44,303,83],{},[14,305,306],{},"A POST request is often used when you want to send new data to an API. For example, you might create a user, submit a form, or send a message.",[14,308,309],{},"Useful commands:",[37,311,313],{"className":243,"code":312,"language":245,"meta":42,"style":42},"python --version\npip install requests\npip show requests\n",[44,314,315,323,331],{"__ignoreMap":42},[47,316,317,319],{"class":49,"line":50},[47,318,41],{"class":252},[47,320,322],{"class":321},"stzsN"," --version\n",[47,324,325,327,329],{"class":49,"line":61},[47,326,253],{"class":252},[47,328,256],{"class":82},[47,330,58],{"class":82},[47,332,333,335,338],{"class":49,"line":68},[47,334,253],{"class":252},[47,336,337],{"class":82}," show",[47,339,58],{"class":82},[32,341,343],{"id":342},"basic-post-request-example","Basic POST request example",[14,345,346],{},"Here is the same example again with a little more context:",[37,348,350],{"className":39,"code":349,"language":41,"meta":42,"style":42},"import requests\n\nurl = \"https:\u002F\u002Fhttpbin.org\u002Fpost\"\n\npayload = {\n    \"name\": \"Alice\",\n    \"age\": 25\n}\n\nresponse = requests.post(url, json=payload)\n\nprint(\"Status code:\", response.status_code)\nprint(\"Response JSON:\")\nprint(response.json())\n",[44,351,352,358,362,374,378,386,404,416,420,424,450,454,478,494],{"__ignoreMap":42},[47,353,354,356],{"class":49,"line":50},[47,355,54],{"class":53},[47,357,58],{"class":57},[47,359,360],{"class":49,"line":61},[47,361,65],{"emptyLinePlaceholder":64},[47,363,364,366,368,370,372],{"class":49,"line":68},[47,365,71],{"class":57},[47,367,75],{"class":74},[47,369,79],{"class":78},[47,371,83],{"class":82},[47,373,86],{"class":78},[47,375,376],{"class":49,"line":89},[47,377,65],{"emptyLinePlaceholder":64},[47,379,380,382,384],{"class":49,"line":101},[47,381,92],{"class":57},[47,383,75],{"class":74},[47,385,98],{"class":97},[47,387,388,390,392,394,396,398,400,402],{"class":49,"line":126},[47,389,104],{"class":78},[47,391,107],{"class":82},[47,393,110],{"class":78},[47,395,113],{"class":97},[47,397,79],{"class":78},[47,399,118],{"class":82},[47,401,110],{"class":78},[47,403,123],{"class":97},[47,405,406,408,410,412,414],{"class":49,"line":142},[47,407,104],{"class":78},[47,409,131],{"class":82},[47,411,110],{"class":78},[47,413,113],{"class":97},[47,415,139],{"class":138},[47,417,418],{"class":49,"line":148},[47,419,145],{"class":97},[47,421,422],{"class":49,"line":153},[47,423,65],{"emptyLinePlaceholder":64},[47,425,426,428,430,432,434,436,438,440,442,444,446,448],{"class":49,"line":191},[47,427,156],{"class":57},[47,429,75],{"class":74},[47,431,161],{"class":57},[47,433,30],{"class":97},[47,435,167],{"class":166},[47,437,170],{"class":97},[47,439,173],{"class":166},[47,441,176],{"class":97},[47,443,180],{"class":179},[47,445,75],{"class":74},[47,447,185],{"class":166},[47,449,188],{"class":97},[47,451,452],{"class":49,"line":196},[47,453,65],{"emptyLinePlaceholder":64},[47,455,456,458,460,462,465,467,469,472,474,476],{"class":49,"line":216},[47,457,200],{"class":199},[47,459,170],{"class":97},[47,461,110],{"class":78},[47,463,464],{"class":82},"Status code:",[47,466,110],{"class":78},[47,468,176],{"class":97},[47,470,471],{"class":166}," response",[47,473,30],{"class":97},[47,475,211],{"class":210},[47,477,188],{"class":97},[47,479,481,483,485,487,490,492],{"class":49,"line":480},13,[47,482,200],{"class":199},[47,484,170],{"class":97},[47,486,110],{"class":78},[47,488,489],{"class":82},"Response JSON:",[47,491,110],{"class":78},[47,493,188],{"class":97},[47,495,497,499,501,503,505,507],{"class":49,"line":496},14,[47,498,200],{"class":199},[47,500,170],{"class":97},[47,502,205],{"class":166},[47,504,30],{"class":97},[47,506,227],{"class":166},[47,508,230],{"class":97},[510,511,513],"h3",{"id":512},"example-output","Example output",[37,515,517],{"className":39,"code":516,"language":41,"meta":42,"style":42},"Status code: 200\nResponse JSON:\n{\n    \"args\": {},\n    \"data\": \"{\\\"name\\\": \\\"Alice\\\", \\\"age\\\": 25}\",\n    \"files\": {},\n    \"form\": {},\n    \"headers\": {\n        ...\n    },\n    \"json\": {\n        \"age\": 25,\n        \"name\": \"Alice\"\n    },\n    \"url\": \"https:\u002F\u002Fhttpbin.org\u002Fpost\"\n}\n",[44,518,519,529,541,546,560,608,621,634,647,652,657,669,685,701,705,722],{"__ignoreMap":42},[47,520,521,524,526],{"class":49,"line":50},[47,522,523],{"class":57},"Status code",[47,525,113],{"class":97},[47,527,528],{"class":138}," 200\n",[47,530,531,534,538],{"class":49,"line":61},[47,532,533],{"class":57},"Response ",[47,535,537],{"class":536},"s_hVV","JSON",[47,539,540],{"class":97},":\n",[47,542,543],{"class":49,"line":68},[47,544,545],{"class":97},"{\n",[47,547,548,550,553,555,557],{"class":49,"line":89},[47,549,104],{"class":78},[47,551,552],{"class":82},"args",[47,554,110],{"class":78},[47,556,113],{"class":97},[47,558,559],{"class":97}," {},\n",[47,561,562,564,567,569,571,573,576,579,581,583,586,588,590,592,595,597,599,601,604,606],{"class":49,"line":101},[47,563,104],{"class":78},[47,565,566],{"class":82},"data",[47,568,110],{"class":78},[47,570,113],{"class":97},[47,572,79],{"class":78},[47,574,575],{"class":82},"{",[47,577,578],{"class":536},"\\\"",[47,580,107],{"class":82},[47,582,578],{"class":536},[47,584,585],{"class":82},": ",[47,587,578],{"class":536},[47,589,118],{"class":82},[47,591,578],{"class":536},[47,593,594],{"class":82},", ",[47,596,578],{"class":536},[47,598,131],{"class":82},[47,600,578],{"class":536},[47,602,603],{"class":82},": 25}",[47,605,110],{"class":78},[47,607,123],{"class":97},[47,609,610,612,615,617,619],{"class":49,"line":126},[47,611,104],{"class":78},[47,613,614],{"class":82},"files",[47,616,110],{"class":78},[47,618,113],{"class":97},[47,620,559],{"class":97},[47,622,623,625,628,630,632],{"class":49,"line":142},[47,624,104],{"class":78},[47,626,627],{"class":82},"form",[47,629,110],{"class":78},[47,631,113],{"class":97},[47,633,559],{"class":97},[47,635,636,638,641,643,645],{"class":49,"line":148},[47,637,104],{"class":78},[47,639,640],{"class":82},"headers",[47,642,110],{"class":78},[47,644,113],{"class":97},[47,646,98],{"class":97},[47,648,649],{"class":49,"line":153},[47,650,651],{"class":536},"        ...\n",[47,653,654],{"class":49,"line":191},[47,655,656],{"class":97},"    },\n",[47,658,659,661,663,665,667],{"class":49,"line":196},[47,660,104],{"class":78},[47,662,227],{"class":82},[47,664,110],{"class":78},[47,666,113],{"class":97},[47,668,98],{"class":97},[47,670,671,674,676,678,680,683],{"class":49,"line":216},[47,672,673],{"class":78},"        \"",[47,675,131],{"class":82},[47,677,110],{"class":78},[47,679,113],{"class":97},[47,681,682],{"class":138}," 25",[47,684,123],{"class":97},[47,686,687,689,691,693,695,697,699],{"class":49,"line":480},[47,688,673],{"class":78},[47,690,107],{"class":82},[47,692,110],{"class":78},[47,694,113],{"class":97},[47,696,79],{"class":78},[47,698,118],{"class":82},[47,700,86],{"class":78},[47,702,703],{"class":49,"line":496},[47,704,656],{"class":97},[47,706,708,710,712,714,716,718,720],{"class":49,"line":707},15,[47,709,104],{"class":78},[47,711,173],{"class":82},[47,713,110],{"class":78},[47,715,113],{"class":97},[47,717,79],{"class":78},[47,719,83],{"class":82},[47,721,86],{"class":78},[47,723,725],{"class":49,"line":724},16,[47,726,145],{"class":97},[14,728,729],{},"The exact output may look a little different, but you should see:",[264,731,732,738],{},[267,733,734,735],{},"A status code such as ",[44,736,737],{},"200",[267,739,740],{},"Your sent data inside the returned JSON",[32,742,744],{"id":743},"how-the-key-lines-work","How the key lines work",[510,746,748],{"id":747},"requestspost",[44,749,750],{},"requests.post()",[37,752,754],{"className":39,"code":753,"language":41,"meta":42,"style":42},"response = requests.post(url, json=payload)\n",[44,755,756],{"__ignoreMap":42},[47,757,758,760,762,764,766,768,770,772,774,776,778,780],{"class":49,"line":50},[47,759,156],{"class":57},[47,761,75],{"class":74},[47,763,161],{"class":57},[47,765,30],{"class":97},[47,767,167],{"class":166},[47,769,170],{"class":97},[47,771,173],{"class":166},[47,773,176],{"class":97},[47,775,180],{"class":179},[47,777,75],{"class":74},[47,779,185],{"class":166},[47,781,188],{"class":97},[14,783,784],{},"This sends a POST request to the server.",[264,786,787,792],{},[267,788,789,791],{},[44,790,173],{}," is the API endpoint",[267,793,794,797],{},[44,795,796],{},"json=payload"," sends your Python dictionary as JSON",[14,799,800,801,30],{},"If you are new to JSON, see the ",[21,802,804],{"href":803},"\u002Fstandard-library\u002Fpython-json-module-overview\u002F","Python json module overview",[510,806,808],{"id":807},"jsonpayload",[44,809,796],{},[37,811,813],{"className":39,"code":812,"language":41,"meta":42,"style":42},"payload = {\n    \"name\": \"Alice\",\n    \"age\": 25\n}\n",[44,814,815,823,841,853],{"__ignoreMap":42},[47,816,817,819,821],{"class":49,"line":50},[47,818,92],{"class":57},[47,820,75],{"class":74},[47,822,98],{"class":97},[47,824,825,827,829,831,833,835,837,839],{"class":49,"line":61},[47,826,104],{"class":78},[47,828,107],{"class":82},[47,830,110],{"class":78},[47,832,113],{"class":97},[47,834,79],{"class":78},[47,836,118],{"class":82},[47,838,110],{"class":78},[47,840,123],{"class":97},[47,842,843,845,847,849,851],{"class":49,"line":68},[47,844,104],{"class":78},[47,846,131],{"class":82},[47,848,110],{"class":78},[47,850,113],{"class":97},[47,852,139],{"class":138},[47,854,855],{"class":49,"line":89},[47,856,145],{"class":97},[14,858,859],{},"This is a normal Python dictionary.",[14,861,862,863,594,865,867],{},"When you pass it with ",[44,864,796],{},[44,866,239],{}," converts it to JSON automatically before sending it.",[14,869,870,871,30],{},"If you need to convert Python data to a JSON string yourself, see ",[21,872,874,877],{"href":873},"\u002Fstandard-library\u002Fjson.dumps-function-explained",[44,875,876],{},"json.dumps()"," explained",[510,879,881],{"id":880},"responsestatus_code",[44,882,883],{},"response.status_code",[37,885,887],{"className":39,"code":886,"language":41,"meta":42,"style":42},"print(response.status_code)\n",[44,888,889],{"__ignoreMap":42},[47,890,891,893,895,897,899,901],{"class":49,"line":50},[47,892,200],{"class":199},[47,894,170],{"class":97},[47,896,205],{"class":166},[47,898,30],{"class":97},[47,900,211],{"class":210},[47,902,188],{"class":97},[14,904,905],{},"This shows the HTTP status code from the server.",[14,907,908],{},"It helps you check whether the request worked.",[510,910,912],{"id":911},"responsejson",[44,913,914],{},"response.json()",[37,916,918],{"className":39,"code":917,"language":41,"meta":42,"style":42},"print(response.json())\n",[44,919,920],{"__ignoreMap":42},[47,921,922,924,926,928,930,932],{"class":49,"line":50},[47,923,200],{"class":199},[47,925,170],{"class":97},[47,927,205],{"class":166},[47,929,30],{"class":97},[47,931,227],{"class":166},[47,933,230],{"class":97},[14,935,936],{},"This converts the JSON response into a Python object, usually a dictionary.",[14,938,939,940,30],{},"If you need to parse a JSON string manually, see ",[21,941,943,877],{"href":942},"\u002Fstandard-library\u002Fjson.loads-function-explained",[44,944,945],{},"json.loads()",[32,947,949],{"id":948},"common-response-checks","Common response checks",[14,951,952],{},"When working with APIs, these status codes are common:",[264,954,955,963,969],{},[267,956,957,25,959,962],{},[44,958,737],{},[44,960,961],{},"201"," usually means success",[267,964,965,968],{},[44,966,967],{},"400"," level codes usually mean your request has a problem",[267,970,971,974],{},[44,972,973],{},"500"," level codes usually mean the server has a problem",[14,976,977],{},"A simple pattern is:",[37,979,981],{"className":39,"code":980,"language":41,"meta":42,"style":42},"import requests\n\nurl = \"https:\u002F\u002Fhttpbin.org\u002Fpost\"\npayload = {\"name\": \"Alice\", \"age\": 25}\n\nresponse = requests.post(url, json=payload)\n\nprint(\"Status code:\", response.status_code)\n\nif response.status_code in (200, 201):\n    print(\"Request worked\")\n    print(response.json())\nelse:\n    print(\"Request failed\")\n    print(response.text)\n",[44,982,983,989,993,1005,1042,1046,1072,1076,1098,1102,1129,1145,1159,1166,1181],{"__ignoreMap":42},[47,984,985,987],{"class":49,"line":50},[47,986,54],{"class":53},[47,988,58],{"class":57},[47,990,991],{"class":49,"line":61},[47,992,65],{"emptyLinePlaceholder":64},[47,994,995,997,999,1001,1003],{"class":49,"line":68},[47,996,71],{"class":57},[47,998,75],{"class":74},[47,1000,79],{"class":78},[47,1002,83],{"class":82},[47,1004,86],{"class":78},[47,1006,1007,1009,1011,1014,1016,1018,1020,1022,1024,1026,1028,1030,1032,1034,1036,1038,1040],{"class":49,"line":89},[47,1008,92],{"class":57},[47,1010,75],{"class":74},[47,1012,1013],{"class":97}," {",[47,1015,110],{"class":78},[47,1017,107],{"class":82},[47,1019,110],{"class":78},[47,1021,113],{"class":97},[47,1023,79],{"class":78},[47,1025,118],{"class":82},[47,1027,110],{"class":78},[47,1029,176],{"class":97},[47,1031,79],{"class":78},[47,1033,131],{"class":82},[47,1035,110],{"class":78},[47,1037,113],{"class":97},[47,1039,682],{"class":138},[47,1041,145],{"class":97},[47,1043,1044],{"class":49,"line":101},[47,1045,65],{"emptyLinePlaceholder":64},[47,1047,1048,1050,1052,1054,1056,1058,1060,1062,1064,1066,1068,1070],{"class":49,"line":126},[47,1049,156],{"class":57},[47,1051,75],{"class":74},[47,1053,161],{"class":57},[47,1055,30],{"class":97},[47,1057,167],{"class":166},[47,1059,170],{"class":97},[47,1061,173],{"class":166},[47,1063,176],{"class":97},[47,1065,180],{"class":179},[47,1067,75],{"class":74},[47,1069,185],{"class":166},[47,1071,188],{"class":97},[47,1073,1074],{"class":49,"line":142},[47,1075,65],{"emptyLinePlaceholder":64},[47,1077,1078,1080,1082,1084,1086,1088,1090,1092,1094,1096],{"class":49,"line":148},[47,1079,200],{"class":199},[47,1081,170],{"class":97},[47,1083,110],{"class":78},[47,1085,464],{"class":82},[47,1087,110],{"class":78},[47,1089,176],{"class":97},[47,1091,471],{"class":166},[47,1093,30],{"class":97},[47,1095,211],{"class":210},[47,1097,188],{"class":97},[47,1099,1100],{"class":49,"line":153},[47,1101,65],{"emptyLinePlaceholder":64},[47,1103,1104,1107,1109,1111,1113,1116,1119,1121,1123,1126],{"class":49,"line":191},[47,1105,1106],{"class":53},"if",[47,1108,471],{"class":57},[47,1110,30],{"class":97},[47,1112,211],{"class":210},[47,1114,1115],{"class":74}," in",[47,1117,1118],{"class":97}," (",[47,1120,737],{"class":138},[47,1122,176],{"class":97},[47,1124,1125],{"class":138}," 201",[47,1127,1128],{"class":97},"):\n",[47,1130,1131,1134,1136,1138,1141,1143],{"class":49,"line":196},[47,1132,1133],{"class":199},"    print",[47,1135,170],{"class":97},[47,1137,110],{"class":78},[47,1139,1140],{"class":82},"Request worked",[47,1142,110],{"class":78},[47,1144,188],{"class":97},[47,1146,1147,1149,1151,1153,1155,1157],{"class":49,"line":216},[47,1148,1133],{"class":199},[47,1150,170],{"class":97},[47,1152,205],{"class":166},[47,1154,30],{"class":97},[47,1156,227],{"class":166},[47,1158,230],{"class":97},[47,1160,1161,1164],{"class":49,"line":480},[47,1162,1163],{"class":53},"else",[47,1165,540],{"class":97},[47,1167,1168,1170,1172,1174,1177,1179],{"class":49,"line":496},[47,1169,1133],{"class":199},[47,1171,170],{"class":97},[47,1173,110],{"class":78},[47,1175,1176],{"class":82},"Request failed",[47,1178,110],{"class":78},[47,1180,188],{"class":97},[47,1182,1183,1185,1187,1189,1191,1194],{"class":49,"line":707},[47,1184,1133],{"class":199},[47,1186,170],{"class":97},[47,1188,205],{"class":166},[47,1190,30],{"class":97},[47,1192,1193],{"class":210},"text",[47,1195,188],{"class":97},[14,1197,1198],{},"When debugging, always inspect the response body. It often tells you what went wrong.",[14,1200,1201,1202,30],{},"You can also read more in ",[21,1203,1205],{"href":1204},"\u002Fhow-to\u002Fhow-to-handle-api-responses-in-python\u002F","how to handle API responses in Python",[32,1207,1209],{"id":1208},"common-beginner-problems","Common beginner problems",[14,1211,1212],{},"Here are some common causes of trouble:",[264,1214,1215,1220,1223,1226,1229,1232],{},[267,1216,1217,1219],{},[44,1218,239],{}," is not installed",[267,1221,1222],{},"The URL or endpoint is wrong",[267,1224,1225],{},"You send form data when the API expects JSON",[267,1227,1228],{},"You try to parse JSON when the response is not actually JSON",[267,1230,1231],{},"You forget to handle network errors",[267,1233,1234],{},"The API requires authentication headers or a token",[14,1236,1237],{},"More specifically:",[264,1239,1240,1253,1259,1262,1265],{},[267,1241,1242,1245,1246,1248,1249,30],{},[44,1243,1244],{},"ModuleNotFoundError"," can happen if ",[44,1247,239],{}," is missing. See ",[21,1250,1252],{"href":1251},"\u002Ferrors\u002Fmodulenotfounderror-no-module-named-x-fix\u002F","how to fix ModuleNotFoundError: No module named x",[267,1254,1255,1256,1258],{},"A ",[44,1257,967],{}," response often means the server did not like your data format.",[267,1260,1261],{},"Connection errors often mean the URL is wrong or your network is down.",[267,1263,1264],{},"JSON parsing can fail if the server returns plain text or HTML instead of JSON.",[267,1266,1267],{},"Some APIs require login tokens, API keys, or headers.",[14,1269,1270,1271,30],{},"One more beginner tip: when reading response data, make sure the key exists before using it. This helps avoid errors like ",[21,1272,1274],{"href":1273},"\u002Ferrors\u002Fkeyerror-in-python-causes-and-fixes\u002F","KeyError in Python",[32,1276,1278],{"id":1277},"safer-version-with-error-handling","Safer version with error handling",[14,1280,1281],{},"This version is better for real programs because it handles common problems more safely.",[37,1283,1285],{"className":39,"code":1284,"language":41,"meta":42,"style":42},"import requests\n\nurl = \"https:\u002F\u002Fhttpbin.org\u002Fpost\"\npayload = {\n    \"name\": \"Alice\",\n    \"age\": 25\n}\n\ntry:\n    response = requests.post(url, json=payload, timeout=10)\n    response.raise_for_status()\n\n    print(\"Status code:\", response.status_code)\n\n    content_type = response.headers.get(\"Content-Type\", \"\")\n    if \"application\u002Fjson\" in content_type:\n        data = response.json()\n        print(\"JSON response:\")\n        print(data)\n    else:\n        print(\"Response is not JSON:\")\n        print(response.text)\n\nexcept requests.exceptions.RequestException as e:\n    print(\"Request failed:\", e)\n",[44,1286,1287,1293,1297,1309,1317,1335,1347,1351,1355,1362,1399,1412,1416,1438,1442,1476,1495,1511,1528,1539,1547,1563,1578,1583,1609],{"__ignoreMap":42},[47,1288,1289,1291],{"class":49,"line":50},[47,1290,54],{"class":53},[47,1292,58],{"class":57},[47,1294,1295],{"class":49,"line":61},[47,1296,65],{"emptyLinePlaceholder":64},[47,1298,1299,1301,1303,1305,1307],{"class":49,"line":68},[47,1300,71],{"class":57},[47,1302,75],{"class":74},[47,1304,79],{"class":78},[47,1306,83],{"class":82},[47,1308,86],{"class":78},[47,1310,1311,1313,1315],{"class":49,"line":89},[47,1312,92],{"class":57},[47,1314,75],{"class":74},[47,1316,98],{"class":97},[47,1318,1319,1321,1323,1325,1327,1329,1331,1333],{"class":49,"line":101},[47,1320,104],{"class":78},[47,1322,107],{"class":82},[47,1324,110],{"class":78},[47,1326,113],{"class":97},[47,1328,79],{"class":78},[47,1330,118],{"class":82},[47,1332,110],{"class":78},[47,1334,123],{"class":97},[47,1336,1337,1339,1341,1343,1345],{"class":49,"line":126},[47,1338,104],{"class":78},[47,1340,131],{"class":82},[47,1342,110],{"class":78},[47,1344,113],{"class":97},[47,1346,139],{"class":138},[47,1348,1349],{"class":49,"line":142},[47,1350,145],{"class":97},[47,1352,1353],{"class":49,"line":148},[47,1354,65],{"emptyLinePlaceholder":64},[47,1356,1357,1360],{"class":49,"line":153},[47,1358,1359],{"class":53},"try",[47,1361,540],{"class":97},[47,1363,1364,1367,1369,1371,1373,1375,1377,1379,1381,1383,1385,1387,1389,1392,1394,1397],{"class":49,"line":191},[47,1365,1366],{"class":57},"    response ",[47,1368,75],{"class":74},[47,1370,161],{"class":57},[47,1372,30],{"class":97},[47,1374,167],{"class":166},[47,1376,170],{"class":97},[47,1378,173],{"class":166},[47,1380,176],{"class":97},[47,1382,180],{"class":179},[47,1384,75],{"class":74},[47,1386,185],{"class":166},[47,1388,176],{"class":97},[47,1390,1391],{"class":179}," timeout",[47,1393,75],{"class":74},[47,1395,1396],{"class":138},"10",[47,1398,188],{"class":97},[47,1400,1401,1404,1406,1409],{"class":49,"line":196},[47,1402,1403],{"class":57},"    response",[47,1405,30],{"class":97},[47,1407,1408],{"class":166},"raise_for_status",[47,1410,1411],{"class":97},"()\n",[47,1413,1414],{"class":49,"line":216},[47,1415,65],{"emptyLinePlaceholder":64},[47,1417,1418,1420,1422,1424,1426,1428,1430,1432,1434,1436],{"class":49,"line":480},[47,1419,1133],{"class":199},[47,1421,170],{"class":97},[47,1423,110],{"class":78},[47,1425,464],{"class":82},[47,1427,110],{"class":78},[47,1429,176],{"class":97},[47,1431,471],{"class":166},[47,1433,30],{"class":97},[47,1435,211],{"class":210},[47,1437,188],{"class":97},[47,1439,1440],{"class":49,"line":496},[47,1441,65],{"emptyLinePlaceholder":64},[47,1443,1444,1447,1449,1451,1453,1455,1457,1460,1462,1464,1467,1469,1471,1474],{"class":49,"line":707},[47,1445,1446],{"class":57},"    content_type ",[47,1448,75],{"class":74},[47,1450,471],{"class":57},[47,1452,30],{"class":97},[47,1454,640],{"class":210},[47,1456,30],{"class":97},[47,1458,1459],{"class":166},"get",[47,1461,170],{"class":97},[47,1463,110],{"class":78},[47,1465,1466],{"class":82},"Content-Type",[47,1468,110],{"class":78},[47,1470,176],{"class":97},[47,1472,1473],{"class":78}," \"\"",[47,1475,188],{"class":97},[47,1477,1478,1481,1483,1486,1488,1490,1493],{"class":49,"line":724},[47,1479,1480],{"class":53},"    if",[47,1482,79],{"class":78},[47,1484,1485],{"class":82},"application\u002Fjson",[47,1487,110],{"class":78},[47,1489,1115],{"class":74},[47,1491,1492],{"class":57}," content_type",[47,1494,540],{"class":97},[47,1496,1498,1501,1503,1505,1507,1509],{"class":49,"line":1497},17,[47,1499,1500],{"class":57},"        data ",[47,1502,75],{"class":74},[47,1504,471],{"class":57},[47,1506,30],{"class":97},[47,1508,227],{"class":166},[47,1510,1411],{"class":97},[47,1512,1514,1517,1519,1521,1524,1526],{"class":49,"line":1513},18,[47,1515,1516],{"class":199},"        print",[47,1518,170],{"class":97},[47,1520,110],{"class":78},[47,1522,1523],{"class":82},"JSON response:",[47,1525,110],{"class":78},[47,1527,188],{"class":97},[47,1529,1531,1533,1535,1537],{"class":49,"line":1530},19,[47,1532,1516],{"class":199},[47,1534,170],{"class":97},[47,1536,566],{"class":166},[47,1538,188],{"class":97},[47,1540,1542,1545],{"class":49,"line":1541},20,[47,1543,1544],{"class":53},"    else",[47,1546,540],{"class":97},[47,1548,1550,1552,1554,1556,1559,1561],{"class":49,"line":1549},21,[47,1551,1516],{"class":199},[47,1553,170],{"class":97},[47,1555,110],{"class":78},[47,1557,1558],{"class":82},"Response is not JSON:",[47,1560,110],{"class":78},[47,1562,188],{"class":97},[47,1564,1566,1568,1570,1572,1574,1576],{"class":49,"line":1565},22,[47,1567,1516],{"class":199},[47,1569,170],{"class":97},[47,1571,205],{"class":166},[47,1573,30],{"class":97},[47,1575,1193],{"class":210},[47,1577,188],{"class":97},[47,1579,1581],{"class":49,"line":1580},23,[47,1582,65],{"emptyLinePlaceholder":64},[47,1584,1586,1589,1591,1593,1596,1598,1601,1604,1607],{"class":49,"line":1585},24,[47,1587,1588],{"class":53},"except",[47,1590,161],{"class":57},[47,1592,30],{"class":97},[47,1594,1595],{"class":210},"exceptions",[47,1597,30],{"class":97},[47,1599,1600],{"class":210},"RequestException",[47,1602,1603],{"class":53}," as",[47,1605,1606],{"class":57}," e",[47,1608,540],{"class":97},[47,1610,1612,1614,1616,1618,1621,1623,1625,1627],{"class":49,"line":1611},25,[47,1613,1133],{"class":199},[47,1615,170],{"class":97},[47,1617,110],{"class":78},[47,1619,1620],{"class":82},"Request failed:",[47,1622,110],{"class":78},[47,1624,176],{"class":97},[47,1626,1606],{"class":166},[47,1628,188],{"class":97},[510,1630,1632],{"id":1631},"what-this-safer-version-does","What this safer version does",[264,1634,1635,1641,1644,1651,1656],{},[267,1636,1637,1638],{},"Wraps the request in ",[44,1639,1640],{},"try-except",[267,1642,1643],{},"Catches network and request errors",[267,1645,1646,1647,1650],{},"Uses ",[44,1648,1649],{},"raise_for_status()"," to catch bad HTTP status codes",[267,1652,1653,1654],{},"Checks the response type before calling ",[44,1655,914],{},[267,1657,1658,1659,1662],{},"Adds a ",[44,1660,1661],{},"timeout"," so the program does not wait forever",[32,1664,1666],{"id":1665},"faq","FAQ",[510,1668,1670],{"id":1669},"what-is-a-post-request-in-python","What is a POST request in Python?",[14,1672,1673],{},"It is a request that sends data to a server, often to create or submit something.",[510,1675,1677,1678,25,1681,1684,1685,1687],{"id":1676},"should-i-use-data-or-json-in-requestspost","Should I use ",[44,1679,1680],{},"data=",[44,1682,1683],{},"json="," in ",[44,1686,750],{},"?",[14,1689,1690,1691,1693,1694,1696],{},"Use ",[44,1692,1683],{}," when the API expects JSON. Use ",[44,1695,1680],{}," for form-style data.",[510,1698,1700],{"id":1699},"why-use-httpbinorg-in-the-example","Why use httpbin.org in the example?",[14,1702,1703],{},"It is a simple test service that shows back the data you sent.",[510,1705,1707,1708,1710],{"id":1706},"what-does-responsestatus_code-mean","What does ",[44,1709,883],{}," mean?",[14,1712,1713],{},"It is the HTTP status code that tells you whether the request succeeded or failed.",[510,1715,1717,1718,1720],{"id":1716},"why-does-responsejson-fail-sometimes","Why does ",[44,1719,914],{}," fail sometimes?",[14,1722,1723],{},"It fails when the server response is not valid JSON.",[32,1725,1727],{"id":1726},"see-also","See also",[264,1729,1730,1735,1740,1745,1749,1756],{},[267,1731,1732],{},[21,1733,1734],{"href":23},"How to send a POST request in Python",[267,1736,1737],{},[21,1738,1739],{"href":28},"How to make an API request in Python",[267,1741,1742],{},[21,1743,1744],{"href":1204},"How to handle API responses in Python",[267,1746,1747],{},[21,1748,804],{"href":803},[267,1750,1751],{},[21,1752,1753,1755],{"href":942},[44,1754,945],{}," function explained",[267,1757,1758],{},[21,1759,1760,1755],{"href":873},[44,1761,876],{},[14,1763,1764,1765,1767],{},"If this copy-paste example works for you, the next step is learning how ",[44,1766,239],{},", JSON data, and response debugging fit together in a real API workflow.",[1769,1770,1771],"style",{},"html pre.shiki code .sVHd0, html code.shiki .sVHd0{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#D73A49;--shiki-default-font-style:inherit;--shiki-dark:#F97583;--shiki-dark-font-style:inherit}html pre.shiki code .su5hD, html code.shiki .su5hD{--shiki-light:#90A4AE;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .smGrS, html code.shiki .smGrS{--shiki-light:#39ADB5;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sjJ54, html code.shiki .sjJ54{--shiki-light:#39ADB5;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .s_sjI, html code.shiki .s_sjI{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sP7_E, html code.shiki .sP7_E{--shiki-light:#39ADB5;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .srdBf, html code.shiki .srdBf{--shiki-light:#F76D47;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .slqww, html code.shiki .slqww{--shiki-light:#6182B8;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .s99_P, html code.shiki .s99_P{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#E36209;--shiki-default-font-style:inherit;--shiki-dark:#FFAB70;--shiki-dark-font-style:inherit}html pre.shiki code .sptTA, html code.shiki .sptTA{--shiki-light:#6182B8;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .skxfh, html code.shiki .skxfh{--shiki-light:#E53935;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sbgvK, html code.shiki .sbgvK{--shiki-light:#E2931D;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .stzsN, html code.shiki .stzsN{--shiki-light:#91B859;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .s_hVV, html code.shiki .s_hVV{--shiki-light:#90A4AE;--shiki-default:#005CC5;--shiki-dark:#79B8FF}",{"title":42,"searchDepth":61,"depth":61,"links":1773},[1774,1775,1776,1777,1780,1786,1787,1788,1791,1801],{"id":34,"depth":61,"text":35},{"id":261,"depth":61,"text":262},{"id":281,"depth":61,"text":282},{"id":342,"depth":61,"text":343,"children":1778},[1779],{"id":512,"depth":68,"text":513},{"id":743,"depth":61,"text":744,"children":1781},[1782,1783,1784,1785],{"id":747,"depth":68,"text":750},{"id":807,"depth":68,"text":796},{"id":880,"depth":68,"text":883},{"id":911,"depth":68,"text":914},{"id":948,"depth":61,"text":949},{"id":1208,"depth":61,"text":1209},{"id":1277,"depth":61,"text":1278,"children":1789},[1790],{"id":1631,"depth":68,"text":1632},{"id":1665,"depth":61,"text":1666,"children":1792},[1793,1794,1796,1797,1799],{"id":1669,"depth":68,"text":1670},{"id":1676,"depth":68,"text":1795},"Should I use data= or json= in requests.post()?",{"id":1699,"depth":68,"text":1700},{"id":1706,"depth":68,"text":1798},"What does response.status_code mean?",{"id":1716,"depth":68,"text":1800},"Why does response.json() fail sometimes?",{"id":1726,"depth":61,"text":1727},"Master python api post request example in our comprehensive Python beginner guide.","md",{},"\u002Fexamples\u002Fpython-api-post-request-example",{"title":5,"description":1802},"examples\u002Fpython-api-post-request-example","XK7lgAbUVrDgsoYghjGTRn1nExx9y2rcMGjSlbANZj0",1777585474865]