[{"data":1,"prerenderedAt":2167},["ShallowReactive",2],{"doc-\u002Fhow-to\u002Fhow-to-make-an-api-request-in-python":3},{"id":4,"title":5,"body":6,"description":2160,"extension":2161,"meta":2162,"navigation":90,"path":2163,"seo":2164,"stem":2165,"__hash__":2166},"content\u002Fhow-to\u002Fhow-to-make-an-api-request-in-python.md","How to Make an API Request in Python",{"type":7,"value":8,"toc":2126},"minimark",[9,13,17,25,30,33,69,182,185,205,208,212,215,218,240,247,249,253,256,273,276,293,295,299,304,307,319,325,328,361,372,374,378,381,384,447,452,471,478,481,491,494,571,577,579,583,589,596,710,717,720,737,743,758,760,764,767,770,784,787,918,924,1060,1063,1070,1072,1076,1079,1086,1240,1247,1260,1266,1274,1276,1280,1283,1287,1290,1375,1379,1382,1385,1494,1498,1504,1587,1591,1594,1646,1652,1748,1752,1755,1766,1772,1775,1787,1794,1796,1800,1803,1841,1844,1961,1964,1966,1970,1973,1995,1998,2035,2037,2041,2045,2055,2059,2068,2072,2078,2082,2085,2087,2091,2122],[10,11,5],"h1",{"id":12},"how-to-make-an-api-request-in-python",[14,15,16],"p",{},"If you want to get data from a website or service in Python, a common first step is making an API request.",[14,18,19,20,24],{},"This page shows the simplest way to send a basic ",[21,22,23],"strong",{},"GET request"," in Python, check whether it worked, and read JSON data safely. It stays focused on one task so you can get a working example quickly.",[26,27,29],"h2",{"id":28},"quick-example","Quick example",[14,31,32],{},"Use this when you want the fastest working example.",[34,35,36,44],"blockquote",{},[14,37,38,39,43],{},"You may need to install ",[40,41,42],"code",{},"requests"," first:",[45,46,51],"pre",{"className":47,"code":48,"language":49,"meta":50,"style":50},"language-bash shiki shiki-themes material-theme-lighter github-light github-dark","pip install requests\n","bash","",[40,52,53],{"__ignoreMap":50},[54,55,58,62,66],"span",{"class":56,"line":57},"line",1,[54,59,61],{"class":60},"sbgvK","pip",[54,63,65],{"class":64},"s_sjI"," install",[54,67,68],{"class":64}," requests\n",[45,70,74],{"className":71,"code":72,"language":73,"meta":50,"style":50},"language-python shiki shiki-themes material-theme-lighter github-light github-dark","import requests\n\nurl = \"https:\u002F\u002Fapi.github.com\"\nresponse = requests.get(url)\n\nprint(response.status_code)\nprint(response.json())\n","python",[40,75,76,85,92,112,140,145,165],{"__ignoreMap":50},[54,77,78,82],{"class":56,"line":57},[54,79,81],{"class":80},"sVHd0","import",[54,83,68],{"class":84},"su5hD",[54,86,88],{"class":56,"line":87},2,[54,89,91],{"emptyLinePlaceholder":90},true,"\n",[54,93,95,98,102,106,109],{"class":56,"line":94},3,[54,96,97],{"class":84},"url ",[54,99,101],{"class":100},"smGrS","=",[54,103,105],{"class":104},"sjJ54"," \"",[54,107,108],{"class":64},"https:\u002F\u002Fapi.github.com",[54,110,111],{"class":104},"\"\n",[54,113,115,118,120,123,127,131,134,137],{"class":56,"line":114},4,[54,116,117],{"class":84},"response ",[54,119,101],{"class":100},[54,121,122],{"class":84}," requests",[54,124,126],{"class":125},"sP7_E",".",[54,128,130],{"class":129},"slqww","get",[54,132,133],{"class":125},"(",[54,135,136],{"class":129},"url",[54,138,139],{"class":125},")\n",[54,141,143],{"class":56,"line":142},5,[54,144,91],{"emptyLinePlaceholder":90},[54,146,148,152,154,157,159,163],{"class":56,"line":147},6,[54,149,151],{"class":150},"sptTA","print",[54,153,133],{"class":125},[54,155,156],{"class":129},"response",[54,158,126],{"class":125},[54,160,162],{"class":161},"skxfh","status_code",[54,164,139],{"class":125},[54,166,168,170,172,174,176,179],{"class":56,"line":167},7,[54,169,151],{"class":150},[54,171,133],{"class":125},[54,173,156],{"class":129},[54,175,126],{"class":125},[54,177,178],{"class":129},"json",[54,180,181],{"class":125},"())\n",[14,183,184],{},"What this does:",[186,187,188,194,199,202],"ul",{},[189,190,191,192],"li",{},"Sends a GET request to ",[40,193,108],{},[189,195,196,197],{},"Stores the server's reply in ",[40,198,156],{},[189,200,201],{},"Prints the HTTP status code",[189,203,204],{},"Parses the JSON response into Python data",[206,207],"hr",{},[26,209,211],{"id":210},"what-this-page-helps-you-do","What this page helps you do",[14,213,214],{},"This page is about one specific task: sending a basic API request in Python.",[14,216,217],{},"It focuses on:",[186,219,220,225,230,237],{},[189,221,222,223],{},"Making a ",[21,224,23],{},[189,226,227,228],{},"Understanding the ",[21,229,156],{},[189,231,232,233,236],{},"Reading ",[21,234,235],{},"JSON"," data",[189,238,239],{},"Doing a few basic error checks",[14,241,242,243,246],{},"In simple terms, an ",[21,244,245],{},"API"," is a way for one program to ask another program for data.",[206,248],{},[26,250,252],{"id":251},"what-you-need-first","What you need first",[14,254,255],{},"Before you start, make sure you have:",[186,257,258,261,264,270],{},[189,259,260],{},"Python installed",[189,262,263],{},"An internet connection",[189,265,266,267,269],{},"The ",[40,268,42],{}," package installed",[189,271,272],{},"A test API URL that returns JSON",[14,274,275],{},"For the examples below, we will use:",[45,277,279],{"className":71,"code":278,"language":73,"meta":50,"style":50},"url = \"https:\u002F\u002Fapi.github.com\"\n",[40,280,281],{"__ignoreMap":50},[54,282,283,285,287,289,291],{"class":56,"line":57},[54,284,97],{"class":84},[54,286,101],{"class":100},[54,288,105],{"class":104},[54,290,108],{"class":64},[54,292,111],{"class":104},[206,294],{},[26,296,298],{"id":297},"install-the-requests-package","Install the requests package",[14,300,301,303],{},[40,302,42],{}," is a popular Python library for sending HTTP requests. It is much easier for beginners than using lower-level tools.",[14,305,306],{},"Install it with:",[45,308,309],{"className":47,"code":48,"language":49,"meta":50,"style":50},[40,310,311],{"__ignoreMap":50},[54,312,313,315,317],{"class":56,"line":57},[54,314,61],{"class":60},[54,316,65],{"class":64},[54,318,68],{"class":64},[14,320,321,322,324],{},"If that does not work, your ",[40,323,61],{}," command may be connected to a different Python version than the one you are running.",[14,326,327],{},"These commands can help you check:",[45,329,331],{"className":47,"code":330,"language":49,"meta":50,"style":50},"python --version\npip --version\npython -c \"import requests; print(requests.__version__)\"\n",[40,332,333,341,347],{"__ignoreMap":50},[54,334,335,337],{"class":56,"line":57},[54,336,73],{"class":60},[54,338,340],{"class":339},"stzsN"," --version\n",[54,342,343,345],{"class":56,"line":87},[54,344,61],{"class":60},[54,346,340],{"class":339},[54,348,349,351,354,356,359],{"class":56,"line":94},[54,350,73],{"class":60},[54,352,353],{"class":339}," -c",[54,355,105],{"class":104},[54,357,358],{"class":64},"import requests; print(requests.__version__)",[54,360,111],{"class":104},[14,362,363,364,126],{},"If Python says the package is missing, see ",[365,366,368,369],"a",{"href":367},"\u002Ferrors\u002Fmodulenotfounderror-no-module-named-x-fix","how to fix ",[40,370,371],{},"ModuleNotFoundError: No module named x",[206,373],{},[26,375,377],{"id":376},"make-your-first-get-request","Make your first GET request",[14,379,380],{},"A GET request asks a server for data.",[14,382,383],{},"Here is a simple example:",[45,385,387],{"className":71,"code":386,"language":73,"meta":50,"style":50},"import requests\n\nurl = \"https:\u002F\u002Fapi.github.com\"\nresponse = requests.get(url)\n\nprint(response.status_code)\n",[40,388,389,395,399,411,429,433],{"__ignoreMap":50},[54,390,391,393],{"class":56,"line":57},[54,392,81],{"class":80},[54,394,68],{"class":84},[54,396,397],{"class":56,"line":87},[54,398,91],{"emptyLinePlaceholder":90},[54,400,401,403,405,407,409],{"class":56,"line":94},[54,402,97],{"class":84},[54,404,101],{"class":100},[54,406,105],{"class":104},[54,408,108],{"class":64},[54,410,111],{"class":104},[54,412,413,415,417,419,421,423,425,427],{"class":56,"line":114},[54,414,117],{"class":84},[54,416,101],{"class":100},[54,418,122],{"class":84},[54,420,126],{"class":125},[54,422,130],{"class":129},[54,424,133],{"class":125},[54,426,136],{"class":129},[54,428,139],{"class":125},[54,430,431],{"class":56,"line":142},[54,432,91],{"emptyLinePlaceholder":90},[54,434,435,437,439,441,443,445],{"class":56,"line":147},[54,436,151],{"class":150},[54,438,133],{"class":125},[54,440,156],{"class":129},[54,442,126],{"class":125},[54,444,162],{"class":161},[54,446,139],{"class":125},[448,449,451],"h3",{"id":450},"how-it-works","How it works",[186,453,454,460,465],{},[189,455,456,459],{},[40,457,458],{},"requests.get(url)"," sends the request",[189,461,462,463],{},"The result is stored in ",[40,464,156],{},[189,466,467,470],{},[40,468,469],{},"response.status_code"," shows the HTTP status code",[14,472,473,474,477],{},"A status code of ",[21,475,476],{},"200"," usually means the request worked.",[14,479,480],{},"Example output:",[45,482,484],{"className":71,"code":483,"language":73,"meta":50,"style":50},"200\n",[40,485,486],{"__ignoreMap":50},[54,487,488],{"class":56,"line":57},[54,489,483],{"class":490},"srdBf",[14,492,493],{},"If you want a slightly safer version, use:",[45,495,497],{"className":71,"code":496,"language":73,"meta":50,"style":50},"import requests\n\nurl = \"https:\u002F\u002Fapi.github.com\"\nresponse = requests.get(url)\nresponse.raise_for_status()\n\nprint(\"Request worked\")\n",[40,498,499,505,509,521,539,551,555],{"__ignoreMap":50},[54,500,501,503],{"class":56,"line":57},[54,502,81],{"class":80},[54,504,68],{"class":84},[54,506,507],{"class":56,"line":87},[54,508,91],{"emptyLinePlaceholder":90},[54,510,511,513,515,517,519],{"class":56,"line":94},[54,512,97],{"class":84},[54,514,101],{"class":100},[54,516,105],{"class":104},[54,518,108],{"class":64},[54,520,111],{"class":104},[54,522,523,525,527,529,531,533,535,537],{"class":56,"line":114},[54,524,117],{"class":84},[54,526,101],{"class":100},[54,528,122],{"class":84},[54,530,126],{"class":125},[54,532,130],{"class":129},[54,534,133],{"class":125},[54,536,136],{"class":129},[54,538,139],{"class":125},[54,540,541,543,545,548],{"class":56,"line":142},[54,542,156],{"class":84},[54,544,126],{"class":125},[54,546,547],{"class":129},"raise_for_status",[54,549,550],{"class":125},"()\n",[54,552,553],{"class":56,"line":147},[54,554,91],{"emptyLinePlaceholder":90},[54,556,557,559,561,564,567,569],{"class":56,"line":167},[54,558,151],{"class":150},[54,560,133],{"class":125},[54,562,563],{"class":104},"\"",[54,565,566],{"class":64},"Request worked",[54,568,563],{"class":104},[54,570,139],{"class":125},[14,572,573,576],{},[40,574,575],{},"response.raise_for_status()"," raises an error if the server returned a bad status, such as 404 or 500.",[206,578],{},[26,580,582],{"id":581},"read-json-data-from-the-response","Read JSON data from the response",[14,584,585,586,588],{},"Many APIs return data in ",[21,587,235],{}," format.",[14,590,591,592,595],{},"In Python, you can parse that JSON with ",[40,593,594],{},"response.json()",":",[45,597,599],{"className":71,"code":598,"language":73,"meta":50,"style":50},"import requests\n\nurl = \"https:\u002F\u002Fapi.github.com\"\nresponse = requests.get(url)\nresponse.raise_for_status()\n\ndata = response.json()\n\nprint(data)\nprint(data[\"current_user_url\"])\n",[40,600,601,607,611,623,641,651,655,671,676,688],{"__ignoreMap":50},[54,602,603,605],{"class":56,"line":57},[54,604,81],{"class":80},[54,606,68],{"class":84},[54,608,609],{"class":56,"line":87},[54,610,91],{"emptyLinePlaceholder":90},[54,612,613,615,617,619,621],{"class":56,"line":94},[54,614,97],{"class":84},[54,616,101],{"class":100},[54,618,105],{"class":104},[54,620,108],{"class":64},[54,622,111],{"class":104},[54,624,625,627,629,631,633,635,637,639],{"class":56,"line":114},[54,626,117],{"class":84},[54,628,101],{"class":100},[54,630,122],{"class":84},[54,632,126],{"class":125},[54,634,130],{"class":129},[54,636,133],{"class":125},[54,638,136],{"class":129},[54,640,139],{"class":125},[54,642,643,645,647,649],{"class":56,"line":142},[54,644,156],{"class":84},[54,646,126],{"class":125},[54,648,547],{"class":129},[54,650,550],{"class":125},[54,652,653],{"class":56,"line":147},[54,654,91],{"emptyLinePlaceholder":90},[54,656,657,660,662,665,667,669],{"class":56,"line":167},[54,658,659],{"class":84},"data ",[54,661,101],{"class":100},[54,663,664],{"class":84}," response",[54,666,126],{"class":125},[54,668,178],{"class":129},[54,670,550],{"class":125},[54,672,674],{"class":56,"line":673},8,[54,675,91],{"emptyLinePlaceholder":90},[54,677,679,681,683,686],{"class":56,"line":678},9,[54,680,151],{"class":150},[54,682,133],{"class":125},[54,684,685],{"class":129},"data",[54,687,139],{"class":125},[54,689,691,693,695,697,700,702,705,707],{"class":56,"line":690},10,[54,692,151],{"class":150},[54,694,133],{"class":125},[54,696,685],{"class":129},[54,698,699],{"class":125},"[",[54,701,563],{"class":104},[54,703,704],{"class":64},"current_user_url",[54,706,563],{"class":104},[54,708,709],{"class":125},"])\n",[448,711,713,714,716],{"id":712},"what-responsejson-returns","What ",[40,715,594],{}," returns",[14,718,719],{},"JSON becomes normal Python objects such as:",[186,721,722,725,728,731,734],{},[189,723,724],{},"Dictionaries",[189,726,727],{},"Lists",[189,729,730],{},"Strings",[189,732,733],{},"Numbers",[189,735,736],{},"Booleans",[14,738,739,740,742],{},"In the example above, ",[40,741,685],{}," is a Python dictionary, so you can access values by key.",[14,744,745,746,750,751,126],{},"If you want to learn more about JSON in Python, see the ",[365,747,749],{"href":748},"\u002Fstandard-library\u002Fpython-json-module-overview","Python JSON module overview"," or ",[365,752,754,757],{"href":753},"\u002Freference\u002Fjson-loads-function-explained",[40,755,756],{},"json.loads()"," explained",[206,759],{},[26,761,763],{"id":762},"check-for-errors-before-using-the-data","Check for errors before using the data",[14,765,766],{},"Even if your Python code is correct, the request can still fail.",[14,768,769],{},"For example:",[186,771,772,775,778,781],{},[189,773,774],{},"The server may be down",[189,776,777],{},"The URL may be wrong",[189,779,780],{},"The request may time out",[189,782,783],{},"The server may return an error page instead of JSON",[14,785,786],{},"A good beginner pattern is:",[45,788,790],{"className":71,"code":789,"language":73,"meta":50,"style":50},"import requests\n\nurl = \"https:\u002F\u002Fapi.github.com\"\n\nresponse = requests.get(url)\n\nif response.status_code == 200:\n    data = response.json()\n    print(data)\nelse:\n    print(\"Request failed with status code:\", response.status_code)\n",[40,791,792,798,802,814,818,836,840,860,875,886,893],{"__ignoreMap":50},[54,793,794,796],{"class":56,"line":57},[54,795,81],{"class":80},[54,797,68],{"class":84},[54,799,800],{"class":56,"line":87},[54,801,91],{"emptyLinePlaceholder":90},[54,803,804,806,808,810,812],{"class":56,"line":94},[54,805,97],{"class":84},[54,807,101],{"class":100},[54,809,105],{"class":104},[54,811,108],{"class":64},[54,813,111],{"class":104},[54,815,816],{"class":56,"line":114},[54,817,91],{"emptyLinePlaceholder":90},[54,819,820,822,824,826,828,830,832,834],{"class":56,"line":142},[54,821,117],{"class":84},[54,823,101],{"class":100},[54,825,122],{"class":84},[54,827,126],{"class":125},[54,829,130],{"class":129},[54,831,133],{"class":125},[54,833,136],{"class":129},[54,835,139],{"class":125},[54,837,838],{"class":56,"line":147},[54,839,91],{"emptyLinePlaceholder":90},[54,841,842,845,847,849,851,854,857],{"class":56,"line":167},[54,843,844],{"class":80},"if",[54,846,664],{"class":84},[54,848,126],{"class":125},[54,850,162],{"class":161},[54,852,853],{"class":100}," ==",[54,855,856],{"class":490}," 200",[54,858,859],{"class":125},":\n",[54,861,862,865,867,869,871,873],{"class":56,"line":673},[54,863,864],{"class":84},"    data ",[54,866,101],{"class":100},[54,868,664],{"class":84},[54,870,126],{"class":125},[54,872,178],{"class":129},[54,874,550],{"class":125},[54,876,877,880,882,884],{"class":56,"line":678},[54,878,879],{"class":150},"    print",[54,881,133],{"class":125},[54,883,685],{"class":129},[54,885,139],{"class":125},[54,887,888,891],{"class":56,"line":690},[54,889,890],{"class":80},"else",[54,892,859],{"class":125},[54,894,896,898,900,902,905,907,910,912,914,916],{"class":56,"line":895},11,[54,897,879],{"class":150},[54,899,133],{"class":125},[54,901,563],{"class":104},[54,903,904],{"class":64},"Request failed with status code:",[54,906,563],{"class":104},[54,908,909],{"class":125},",",[54,911,664],{"class":129},[54,913,126],{"class":125},[54,915,162],{"class":161},[54,917,139],{"class":125},[14,919,920,921,595],{},"Another simple option is to use ",[40,922,923],{},"raise_for_status()",[45,925,927],{"className":71,"code":926,"language":73,"meta":50,"style":50},"import requests\n\nurl = \"https:\u002F\u002Fapi.github.com\"\n\ntry:\n    response = requests.get(url)\n    response.raise_for_status()\n    data = response.json()\n    print(data)\nexcept requests.exceptions.RequestException as error:\n    print(\"Request failed:\", error)\n",[40,928,929,935,939,951,955,962,981,992,1006,1016,1041],{"__ignoreMap":50},[54,930,931,933],{"class":56,"line":57},[54,932,81],{"class":80},[54,934,68],{"class":84},[54,936,937],{"class":56,"line":87},[54,938,91],{"emptyLinePlaceholder":90},[54,940,941,943,945,947,949],{"class":56,"line":94},[54,942,97],{"class":84},[54,944,101],{"class":100},[54,946,105],{"class":104},[54,948,108],{"class":64},[54,950,111],{"class":104},[54,952,953],{"class":56,"line":114},[54,954,91],{"emptyLinePlaceholder":90},[54,956,957,960],{"class":56,"line":142},[54,958,959],{"class":80},"try",[54,961,859],{"class":125},[54,963,964,967,969,971,973,975,977,979],{"class":56,"line":147},[54,965,966],{"class":84},"    response ",[54,968,101],{"class":100},[54,970,122],{"class":84},[54,972,126],{"class":125},[54,974,130],{"class":129},[54,976,133],{"class":125},[54,978,136],{"class":129},[54,980,139],{"class":125},[54,982,983,986,988,990],{"class":56,"line":167},[54,984,985],{"class":84},"    response",[54,987,126],{"class":125},[54,989,547],{"class":129},[54,991,550],{"class":125},[54,993,994,996,998,1000,1002,1004],{"class":56,"line":673},[54,995,864],{"class":84},[54,997,101],{"class":100},[54,999,664],{"class":84},[54,1001,126],{"class":125},[54,1003,178],{"class":129},[54,1005,550],{"class":125},[54,1007,1008,1010,1012,1014],{"class":56,"line":678},[54,1009,879],{"class":150},[54,1011,133],{"class":125},[54,1013,685],{"class":129},[54,1015,139],{"class":125},[54,1017,1018,1021,1023,1025,1028,1030,1033,1036,1039],{"class":56,"line":690},[54,1019,1020],{"class":80},"except",[54,1022,122],{"class":84},[54,1024,126],{"class":125},[54,1026,1027],{"class":161},"exceptions",[54,1029,126],{"class":125},[54,1031,1032],{"class":161},"RequestException",[54,1034,1035],{"class":80}," as",[54,1037,1038],{"class":84}," error",[54,1040,859],{"class":125},[54,1042,1043,1045,1047,1049,1052,1054,1056,1058],{"class":56,"line":895},[54,1044,879],{"class":150},[54,1046,133],{"class":125},[54,1048,563],{"class":104},[54,1050,1051],{"class":64},"Request failed:",[54,1053,563],{"class":104},[54,1055,909],{"class":125},[54,1057,1038],{"class":129},[54,1059,139],{"class":125},[14,1061,1062],{},"This is useful because it catches common request-related problems in one place.",[14,1064,1065,1066,126],{},"For the next step after making a request, see ",[365,1067,1069],{"href":1068},"\u002Fhow-to\u002Fhandle-api-responses-in-python","how to handle API responses in Python",[206,1071],{},[26,1073,1075],{"id":1074},"add-query-parameters","Add query parameters",[14,1077,1078],{},"Some APIs need extra values in the URL, such as search terms, page numbers, or filters.",[14,1080,1081,1082,1085],{},"Use the ",[40,1083,1084],{},"params"," argument instead of building the query string by hand.",[45,1087,1089],{"className":71,"code":1088,"language":73,"meta":50,"style":50},"import requests\n\nurl = \"https:\u002F\u002Fhttpbin.org\u002Fget\"\nparams = {\n    \"search\": \"python\",\n    \"page\": 1\n}\n\nresponse = requests.get(url, params=params)\nresponse.raise_for_status()\n\nprint(response.url)\nprint(response.json())\n",[40,1090,1091,1097,1101,1114,1124,1145,1159,1164,1168,1196,1206,1210,1225],{"__ignoreMap":50},[54,1092,1093,1095],{"class":56,"line":57},[54,1094,81],{"class":80},[54,1096,68],{"class":84},[54,1098,1099],{"class":56,"line":87},[54,1100,91],{"emptyLinePlaceholder":90},[54,1102,1103,1105,1107,1109,1112],{"class":56,"line":94},[54,1104,97],{"class":84},[54,1106,101],{"class":100},[54,1108,105],{"class":104},[54,1110,1111],{"class":64},"https:\u002F\u002Fhttpbin.org\u002Fget",[54,1113,111],{"class":104},[54,1115,1116,1119,1121],{"class":56,"line":114},[54,1117,1118],{"class":84},"params ",[54,1120,101],{"class":100},[54,1122,1123],{"class":125}," {\n",[54,1125,1126,1129,1132,1134,1136,1138,1140,1142],{"class":56,"line":142},[54,1127,1128],{"class":104},"    \"",[54,1130,1131],{"class":64},"search",[54,1133,563],{"class":104},[54,1135,595],{"class":125},[54,1137,105],{"class":104},[54,1139,73],{"class":64},[54,1141,563],{"class":104},[54,1143,1144],{"class":125},",\n",[54,1146,1147,1149,1152,1154,1156],{"class":56,"line":147},[54,1148,1128],{"class":104},[54,1150,1151],{"class":64},"page",[54,1153,563],{"class":104},[54,1155,595],{"class":125},[54,1157,1158],{"class":490}," 1\n",[54,1160,1161],{"class":56,"line":167},[54,1162,1163],{"class":125},"}\n",[54,1165,1166],{"class":56,"line":673},[54,1167,91],{"emptyLinePlaceholder":90},[54,1169,1170,1172,1174,1176,1178,1180,1182,1184,1186,1190,1192,1194],{"class":56,"line":678},[54,1171,117],{"class":84},[54,1173,101],{"class":100},[54,1175,122],{"class":84},[54,1177,126],{"class":125},[54,1179,130],{"class":129},[54,1181,133],{"class":125},[54,1183,136],{"class":129},[54,1185,909],{"class":125},[54,1187,1189],{"class":1188},"s99_P"," params",[54,1191,101],{"class":100},[54,1193,1084],{"class":129},[54,1195,139],{"class":125},[54,1197,1198,1200,1202,1204],{"class":56,"line":690},[54,1199,156],{"class":84},[54,1201,126],{"class":125},[54,1203,547],{"class":129},[54,1205,550],{"class":125},[54,1207,1208],{"class":56,"line":895},[54,1209,91],{"emptyLinePlaceholder":90},[54,1211,1213,1215,1217,1219,1221,1223],{"class":56,"line":1212},12,[54,1214,151],{"class":150},[54,1216,133],{"class":125},[54,1218,156],{"class":129},[54,1220,126],{"class":125},[54,1222,136],{"class":161},[54,1224,139],{"class":125},[54,1226,1228,1230,1232,1234,1236,1238],{"class":56,"line":1227},13,[54,1229,151],{"class":150},[54,1231,133],{"class":125},[54,1233,156],{"class":129},[54,1235,126],{"class":125},[54,1237,178],{"class":129},[54,1239,181],{"class":125},[448,1241,1243,1244,1246],{"id":1242},"why-params-is-better","Why ",[40,1245,1084],{}," is better",[186,1248,1249,1252,1257],{},[189,1250,1251],{},"Your code is easier to read",[189,1253,1254,1256],{},[40,1255,42],{}," builds the final URL for you",[189,1258,1259],{},"It handles URL encoding automatically",[14,1261,1262,1263,1265],{},"For example, ",[40,1264,42],{}," will create a URL like this:",[45,1267,1272],{"className":1268,"code":1270,"language":1271,"meta":50},[1269],"language-text","https:\u002F\u002Fhttpbin.org\u002Fget?search=python&page=1\n","text",[40,1273,1270],{"__ignoreMap":50},[206,1275],{},[26,1277,1279],{"id":1278},"handle-common-request-problems","Handle common request problems",[14,1281,1282],{},"Here are some common problems beginners run into.",[448,1284,1286],{"id":1285},"connection-problems","Connection problems",[14,1288,1289],{},"If your internet connection is down, or the server is unavailable, the request can fail.",[45,1291,1293],{"className":71,"code":1292,"language":73,"meta":50,"style":50},"import requests\n\ntry:\n    response = requests.get(\"https:\u002F\u002Fapi.github.com\")\n    response.raise_for_status()\nexcept requests.exceptions.ConnectionError:\n    print(\"Could not connect to the server\")\n",[40,1294,1295,1301,1305,1311,1333,1343,1360],{"__ignoreMap":50},[54,1296,1297,1299],{"class":56,"line":57},[54,1298,81],{"class":80},[54,1300,68],{"class":84},[54,1302,1303],{"class":56,"line":87},[54,1304,91],{"emptyLinePlaceholder":90},[54,1306,1307,1309],{"class":56,"line":94},[54,1308,959],{"class":80},[54,1310,859],{"class":125},[54,1312,1313,1315,1317,1319,1321,1323,1325,1327,1329,1331],{"class":56,"line":114},[54,1314,966],{"class":84},[54,1316,101],{"class":100},[54,1318,122],{"class":84},[54,1320,126],{"class":125},[54,1322,130],{"class":129},[54,1324,133],{"class":125},[54,1326,563],{"class":104},[54,1328,108],{"class":64},[54,1330,563],{"class":104},[54,1332,139],{"class":125},[54,1334,1335,1337,1339,1341],{"class":56,"line":142},[54,1336,985],{"class":84},[54,1338,126],{"class":125},[54,1340,547],{"class":129},[54,1342,550],{"class":125},[54,1344,1345,1347,1349,1351,1353,1355,1358],{"class":56,"line":147},[54,1346,1020],{"class":80},[54,1348,122],{"class":84},[54,1350,126],{"class":125},[54,1352,1027],{"class":161},[54,1354,126],{"class":125},[54,1356,1357],{"class":161},"ConnectionError",[54,1359,859],{"class":125},[54,1361,1362,1364,1366,1368,1371,1373],{"class":56,"line":167},[54,1363,879],{"class":150},[54,1365,133],{"class":125},[54,1367,563],{"class":104},[54,1369,1370],{"class":64},"Could not connect to the server",[54,1372,563],{"class":104},[54,1374,139],{"class":125},[448,1376,1378],{"id":1377},"timeouts","Timeouts",[14,1380,1381],{},"Sometimes a server is too slow to respond.",[14,1383,1384],{},"You can set a timeout so your program does not wait forever:",[45,1386,1388],{"className":71,"code":1387,"language":73,"meta":50,"style":50},"import requests\n\ntry:\n    response = requests.get(\"https:\u002F\u002Fapi.github.com\", timeout=5)\n    response.raise_for_status()\n    print(response.json())\nexcept requests.exceptions.Timeout:\n    print(\"The request took too long\")\n",[40,1389,1390,1396,1400,1406,1438,1448,1462,1479],{"__ignoreMap":50},[54,1391,1392,1394],{"class":56,"line":57},[54,1393,81],{"class":80},[54,1395,68],{"class":84},[54,1397,1398],{"class":56,"line":87},[54,1399,91],{"emptyLinePlaceholder":90},[54,1401,1402,1404],{"class":56,"line":94},[54,1403,959],{"class":80},[54,1405,859],{"class":125},[54,1407,1408,1410,1412,1414,1416,1418,1420,1422,1424,1426,1428,1431,1433,1436],{"class":56,"line":114},[54,1409,966],{"class":84},[54,1411,101],{"class":100},[54,1413,122],{"class":84},[54,1415,126],{"class":125},[54,1417,130],{"class":129},[54,1419,133],{"class":125},[54,1421,563],{"class":104},[54,1423,108],{"class":64},[54,1425,563],{"class":104},[54,1427,909],{"class":125},[54,1429,1430],{"class":1188}," timeout",[54,1432,101],{"class":100},[54,1434,1435],{"class":490},"5",[54,1437,139],{"class":125},[54,1439,1440,1442,1444,1446],{"class":56,"line":142},[54,1441,985],{"class":84},[54,1443,126],{"class":125},[54,1445,547],{"class":129},[54,1447,550],{"class":125},[54,1449,1450,1452,1454,1456,1458,1460],{"class":56,"line":147},[54,1451,879],{"class":150},[54,1453,133],{"class":125},[54,1455,156],{"class":129},[54,1457,126],{"class":125},[54,1459,178],{"class":129},[54,1461,181],{"class":125},[54,1463,1464,1466,1468,1470,1472,1474,1477],{"class":56,"line":167},[54,1465,1020],{"class":80},[54,1467,122],{"class":84},[54,1469,126],{"class":125},[54,1471,1027],{"class":161},[54,1473,126],{"class":125},[54,1475,1476],{"class":161},"Timeout",[54,1478,859],{"class":125},[54,1480,1481,1483,1485,1487,1490,1492],{"class":56,"line":673},[54,1482,879],{"class":150},[54,1484,133],{"class":125},[54,1486,563],{"class":104},[54,1488,1489],{"class":64},"The request took too long",[54,1491,563],{"class":104},[54,1493,139],{"class":125},[448,1495,1497],{"id":1496},"invalid-url","Invalid URL",[14,1499,1500,1501,1503],{},"If the URL is malformed, ",[40,1502,42],{}," can raise an error.",[45,1505,1507],{"className":71,"code":1506,"language":73,"meta":50,"style":50},"import requests\n\ntry:\n    response = requests.get(\"not-a-real-url\")\nexcept requests.exceptions.RequestException as error:\n    print(\"Request error:\", error)\n",[40,1508,1509,1515,1519,1525,1548,1568],{"__ignoreMap":50},[54,1510,1511,1513],{"class":56,"line":57},[54,1512,81],{"class":80},[54,1514,68],{"class":84},[54,1516,1517],{"class":56,"line":87},[54,1518,91],{"emptyLinePlaceholder":90},[54,1520,1521,1523],{"class":56,"line":94},[54,1522,959],{"class":80},[54,1524,859],{"class":125},[54,1526,1527,1529,1531,1533,1535,1537,1539,1541,1544,1546],{"class":56,"line":114},[54,1528,966],{"class":84},[54,1530,101],{"class":100},[54,1532,122],{"class":84},[54,1534,126],{"class":125},[54,1536,130],{"class":129},[54,1538,133],{"class":125},[54,1540,563],{"class":104},[54,1542,1543],{"class":64},"not-a-real-url",[54,1545,563],{"class":104},[54,1547,139],{"class":125},[54,1549,1550,1552,1554,1556,1558,1560,1562,1564,1566],{"class":56,"line":142},[54,1551,1020],{"class":80},[54,1553,122],{"class":84},[54,1555,126],{"class":125},[54,1557,1027],{"class":161},[54,1559,126],{"class":125},[54,1561,1032],{"class":161},[54,1563,1035],{"class":80},[54,1565,1038],{"class":84},[54,1567,859],{"class":125},[54,1569,1570,1572,1574,1576,1579,1581,1583,1585],{"class":56,"line":147},[54,1571,879],{"class":150},[54,1573,133],{"class":125},[54,1575,563],{"class":104},[54,1577,1578],{"class":64},"Request error:",[54,1580,563],{"class":104},[54,1582,909],{"class":125},[54,1584,1038],{"class":129},[54,1586,139],{"class":125},[448,1588,1590],{"id":1589},"non-json-response","Non-JSON response",[14,1592,1593],{},"Not every server returns JSON. Some return plain text or HTML.",[45,1595,1597],{"className":71,"code":1596,"language":73,"meta":50,"style":50},"import requests\n\nresponse = requests.get(\"https:\u002F\u002Fexample.com\")\nprint(response.text)\n",[40,1598,1599,1605,1609,1632],{"__ignoreMap":50},[54,1600,1601,1603],{"class":56,"line":57},[54,1602,81],{"class":80},[54,1604,68],{"class":84},[54,1606,1607],{"class":56,"line":87},[54,1608,91],{"emptyLinePlaceholder":90},[54,1610,1611,1613,1615,1617,1619,1621,1623,1625,1628,1630],{"class":56,"line":94},[54,1612,117],{"class":84},[54,1614,101],{"class":100},[54,1616,122],{"class":84},[54,1618,126],{"class":125},[54,1620,130],{"class":129},[54,1622,133],{"class":125},[54,1624,563],{"class":104},[54,1626,1627],{"class":64},"https:\u002F\u002Fexample.com",[54,1629,563],{"class":104},[54,1631,139],{"class":125},[54,1633,1634,1636,1638,1640,1642,1644],{"class":56,"line":114},[54,1635,151],{"class":150},[54,1637,133],{"class":125},[54,1639,156],{"class":129},[54,1641,126],{"class":125},[54,1643,1271],{"class":161},[54,1645,139],{"class":125},[14,1647,1648,1649,1651],{},"If ",[40,1650,594],{}," fails, check the raw text first:",[45,1653,1655],{"className":71,"code":1654,"language":73,"meta":50,"style":50},"import requests\n\ntry:\n    response = requests.get(\"https:\u002F\u002Fexample.com\")\n    data = response.json()\nexcept ValueError:\n    print(\"The response was not valid JSON\")\n    print(response.text)\n",[40,1656,1657,1663,1667,1673,1695,1709,1719,1734],{"__ignoreMap":50},[54,1658,1659,1661],{"class":56,"line":57},[54,1660,81],{"class":80},[54,1662,68],{"class":84},[54,1664,1665],{"class":56,"line":87},[54,1666,91],{"emptyLinePlaceholder":90},[54,1668,1669,1671],{"class":56,"line":94},[54,1670,959],{"class":80},[54,1672,859],{"class":125},[54,1674,1675,1677,1679,1681,1683,1685,1687,1689,1691,1693],{"class":56,"line":114},[54,1676,966],{"class":84},[54,1678,101],{"class":100},[54,1680,122],{"class":84},[54,1682,126],{"class":125},[54,1684,130],{"class":129},[54,1686,133],{"class":125},[54,1688,563],{"class":104},[54,1690,1627],{"class":64},[54,1692,563],{"class":104},[54,1694,139],{"class":125},[54,1696,1697,1699,1701,1703,1705,1707],{"class":56,"line":142},[54,1698,864],{"class":84},[54,1700,101],{"class":100},[54,1702,664],{"class":84},[54,1704,126],{"class":125},[54,1706,178],{"class":129},[54,1708,550],{"class":125},[54,1710,1711,1713,1717],{"class":56,"line":147},[54,1712,1020],{"class":80},[54,1714,1716],{"class":1715},"sZMiF"," ValueError",[54,1718,859],{"class":125},[54,1720,1721,1723,1725,1727,1730,1732],{"class":56,"line":167},[54,1722,879],{"class":150},[54,1724,133],{"class":125},[54,1726,563],{"class":104},[54,1728,1729],{"class":64},"The response was not valid JSON",[54,1731,563],{"class":104},[54,1733,139],{"class":125},[54,1735,1736,1738,1740,1742,1744,1746],{"class":56,"line":673},[54,1737,879],{"class":150},[54,1739,133],{"class":125},[54,1741,156],{"class":129},[54,1743,126],{"class":125},[54,1745,1271],{"class":161},[54,1747,139],{"class":125},[448,1749,1751],{"id":1750},"missing-requests-package","Missing requests package",[14,1753,1754],{},"If Python shows an import error like this:",[45,1756,1758],{"className":71,"code":1757,"language":73,"meta":50,"style":50},"import requests\n",[40,1759,1760],{"__ignoreMap":50},[54,1761,1762,1764],{"class":56,"line":57},[54,1763,81],{"class":80},[54,1765,68],{"class":84},[45,1767,1770],{"className":1768,"code":1769,"language":1271,"meta":50},[1269],"ModuleNotFoundError: No module named 'requests'\n",[40,1771,1769],{"__ignoreMap":50},[14,1773,1774],{},"install the package with:",[45,1776,1777],{"className":47,"code":48,"language":49,"meta":50,"style":50},[40,1778,1779],{"__ignoreMap":50},[54,1780,1781,1783,1785],{"class":56,"line":57},[54,1782,61],{"class":60},[54,1784,65],{"class":64},[54,1786,68],{"class":64},[14,1788,1789,1790,126],{},"If the problem continues, see ",[365,1791,368,1792],{"href":367},[40,1793,371],{},[206,1795],{},[26,1797,1799],{"id":1798},"beginner-tips-for-understanding-the-response","Beginner tips for understanding the response",[14,1801,1802],{},"When you get a response object, these parts are the most useful:",[186,1804,1805,1818,1826,1833],{},[189,1806,1807,1809,1812,1813,750,1815],{},[40,1808,469],{},[1810,1811],"br",{},"\nShows the HTTP result, such as ",[40,1814,476],{},[40,1816,1817],{},"404",[189,1819,1820,1823,1825],{},[40,1821,1822],{},"response.text",[1810,1824],{},"\nGives the raw response body as a string",[189,1827,1828,1830,1832],{},[40,1829,594],{},[1810,1831],{},"\nParses JSON into Python objects",[189,1834,1835,1838,1840],{},[40,1836,1837],{},"response.headers",[1810,1839],{},"\nContains metadata about the response",[14,1842,1843],{},"Example:",[45,1845,1847],{"className":71,"code":1846,"language":73,"meta":50,"style":50},"import requests\n\nresponse = requests.get(\"https:\u002F\u002Fapi.github.com\")\n\nprint(\"Status code:\", response.status_code)\nprint(\"Headers:\", response.headers)\nprint(\"Text:\", response.text[:100])\n",[40,1848,1849,1855,1859,1881,1885,1908,1932],{"__ignoreMap":50},[54,1850,1851,1853],{"class":56,"line":57},[54,1852,81],{"class":80},[54,1854,68],{"class":84},[54,1856,1857],{"class":56,"line":87},[54,1858,91],{"emptyLinePlaceholder":90},[54,1860,1861,1863,1865,1867,1869,1871,1873,1875,1877,1879],{"class":56,"line":94},[54,1862,117],{"class":84},[54,1864,101],{"class":100},[54,1866,122],{"class":84},[54,1868,126],{"class":125},[54,1870,130],{"class":129},[54,1872,133],{"class":125},[54,1874,563],{"class":104},[54,1876,108],{"class":64},[54,1878,563],{"class":104},[54,1880,139],{"class":125},[54,1882,1883],{"class":56,"line":114},[54,1884,91],{"emptyLinePlaceholder":90},[54,1886,1887,1889,1891,1893,1896,1898,1900,1902,1904,1906],{"class":56,"line":142},[54,1888,151],{"class":150},[54,1890,133],{"class":125},[54,1892,563],{"class":104},[54,1894,1895],{"class":64},"Status code:",[54,1897,563],{"class":104},[54,1899,909],{"class":125},[54,1901,664],{"class":129},[54,1903,126],{"class":125},[54,1905,162],{"class":161},[54,1907,139],{"class":125},[54,1909,1910,1912,1914,1916,1919,1921,1923,1925,1927,1930],{"class":56,"line":147},[54,1911,151],{"class":150},[54,1913,133],{"class":125},[54,1915,563],{"class":104},[54,1917,1918],{"class":64},"Headers:",[54,1920,563],{"class":104},[54,1922,909],{"class":125},[54,1924,664],{"class":129},[54,1926,126],{"class":125},[54,1928,1929],{"class":161},"headers",[54,1931,139],{"class":125},[54,1933,1934,1936,1938,1940,1943,1945,1947,1949,1951,1953,1956,1959],{"class":56,"line":167},[54,1935,151],{"class":150},[54,1937,133],{"class":125},[54,1939,563],{"class":104},[54,1941,1942],{"class":64},"Text:",[54,1944,563],{"class":104},[54,1946,909],{"class":125},[54,1948,664],{"class":129},[54,1950,126],{"class":125},[54,1952,1271],{"class":161},[54,1954,1955],{"class":125},"[:",[54,1957,1958],{"class":490},"100",[54,1960,709],{"class":125},[14,1962,1963],{},"This is a good way to inspect a response when you are not sure what the API returned.",[206,1965],{},[26,1967,1969],{"id":1968},"common-mistakes","Common mistakes",[14,1971,1972],{},"These are some common causes of problems when making an API request in Python:",[186,1974,1975,1980,1983,1986,1989,1992],{},[189,1976,266,1977,1979],{},[40,1978,42],{}," package is not installed",[189,1981,1982],{},"The API URL is wrong",[189,1984,1985],{},"The API requires parameters or authentication",[189,1987,1988],{},"The server returns text or HTML instead of JSON",[189,1990,1991],{},"The request times out because the server is slow",[189,1993,1994],{},"No internet connection or DNS issue",[14,1996,1997],{},"Useful commands for debugging:",[45,1999,2001],{"className":47,"code":2000,"language":49,"meta":50,"style":50},"pip install requests\npython --version\npip --version\npython -c \"import requests; print(requests.__version__)\"\n",[40,2002,2003,2011,2017,2023],{"__ignoreMap":50},[54,2004,2005,2007,2009],{"class":56,"line":57},[54,2006,61],{"class":60},[54,2008,65],{"class":64},[54,2010,68],{"class":64},[54,2012,2013,2015],{"class":56,"line":87},[54,2014,73],{"class":60},[54,2016,340],{"class":339},[54,2018,2019,2021],{"class":56,"line":94},[54,2020,61],{"class":60},[54,2022,340],{"class":339},[54,2024,2025,2027,2029,2031,2033],{"class":56,"line":114},[54,2026,73],{"class":60},[54,2028,353],{"class":339},[54,2030,105],{"class":104},[54,2032,358],{"class":64},[54,2034,111],{"class":104},[206,2036],{},[26,2038,2040],{"id":2039},"faq","FAQ",[448,2042,2044],{"id":2043},"do-i-need-the-requests-library-to-make-an-api-request-in-python","Do I need the requests library to make an API request in Python?",[14,2046,2047,2048,2051,2052,2054],{},"No, but it is the easiest option for beginners. Python also has ",[40,2049,2050],{},"urllib",", but ",[40,2053,42],{}," is simpler to read and use.",[448,2056,2058],{"id":2057},"what-does-responsestatus_code-mean","What does response.status_code mean?",[14,2060,2061,2062,2064,2065,2067],{},"It is the HTTP status code from the server. For example, ",[40,2063,476],{}," usually means success and ",[40,2066,1817],{}," usually means not found.",[448,2069,2071],{"id":2070},"why-does-responsejson-fail","Why does response.json() fail?",[14,2073,2074,2075,2077],{},"It usually fails when the server did not return valid JSON. Check ",[40,2076,1822],{}," and the status code first.",[448,2079,2081],{"id":2080},"can-i-use-this-for-apis-that-need-a-key","Can I use this for APIs that need a key?",[14,2083,2084],{},"Yes, but that is better covered on a separate page about authentication or headers so this page stays focused.",[206,2086],{},[26,2088,2090],{"id":2089},"see-also","See also",[186,2092,2093,2098,2104,2108,2115],{},[189,2094,2095],{},[365,2096,2097],{"href":1068},"How to handle API responses in Python",[189,2099,2100],{},[365,2101,2103],{"href":2102},"\u002Fhow-to\u002Fsend-a-post-request-in-python","How to send a POST request in Python",[189,2105,2106],{},[365,2107,749],{"href":748},[189,2109,2110],{},[365,2111,2112,2114],{"href":753},[40,2113,756],{}," function explained",[189,2116,2117],{},[365,2118,2119,2120],{"href":367},"Fix ",[40,2121,371],{},[2123,2124,2125],"style",{},"html pre.shiki code .sbgvK, html code.shiki .sbgvK{--shiki-light:#E2931D;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .s_sjI, html code.shiki .s_sjI{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF}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 .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 .sP7_E, html code.shiki .sP7_E{--shiki-light:#39ADB5;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .slqww, html code.shiki .slqww{--shiki-light:#6182B8;--shiki-default:#24292E;--shiki-dark:#E1E4E8}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 pre.shiki code .stzsN, html code.shiki .stzsN{--shiki-light:#91B859;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .srdBf, html code.shiki .srdBf{--shiki-light:#F76D47;--shiki-default:#005CC5;--shiki-dark:#79B8FF}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 .sZMiF, html code.shiki .sZMiF{--shiki-light:#E2931D;--shiki-default:#005CC5;--shiki-dark:#79B8FF}",{"title":50,"searchDepth":87,"depth":87,"links":2127},[2128,2129,2130,2131,2132,2135,2139,2140,2144,2151,2152,2153,2159],{"id":28,"depth":87,"text":29},{"id":210,"depth":87,"text":211},{"id":251,"depth":87,"text":252},{"id":297,"depth":87,"text":298},{"id":376,"depth":87,"text":377,"children":2133},[2134],{"id":450,"depth":94,"text":451},{"id":581,"depth":87,"text":582,"children":2136},[2137],{"id":712,"depth":94,"text":2138},"What response.json() returns",{"id":762,"depth":87,"text":763},{"id":1074,"depth":87,"text":1075,"children":2141},[2142],{"id":1242,"depth":94,"text":2143},"Why params is better",{"id":1278,"depth":87,"text":1279,"children":2145},[2146,2147,2148,2149,2150],{"id":1285,"depth":94,"text":1286},{"id":1377,"depth":94,"text":1378},{"id":1496,"depth":94,"text":1497},{"id":1589,"depth":94,"text":1590},{"id":1750,"depth":94,"text":1751},{"id":1798,"depth":87,"text":1799},{"id":1968,"depth":87,"text":1969},{"id":2039,"depth":87,"text":2040,"children":2154},[2155,2156,2157,2158],{"id":2043,"depth":94,"text":2044},{"id":2057,"depth":94,"text":2058},{"id":2070,"depth":94,"text":2071},{"id":2080,"depth":94,"text":2081},{"id":2089,"depth":87,"text":2090},"Master how to make an api request in python in our comprehensive Python beginner guide.","md",{},"\u002Fhow-to\u002Fhow-to-make-an-api-request-in-python",{"title":5,"description":2160},"how-to\u002Fhow-to-make-an-api-request-in-python","zZFxA0J58BFqie-0Juqx350V27H5gTGk7a22etthXKM",1777585507486]