[{"data":1,"prerenderedAt":1149},["ShallowReactive",2],{"navigation_docs":3,"-docs-texts":114,"-docs-texts-surround":1144},[4,8,12,16,20,24,28,32,36,40,44,82,86,90,94,98,102,106,110],{"title":5,"path":6,"stem":7},"Overview","\u002Fdocs","docs\u002Findex",{"title":9,"path":10,"stem":11},"Quickstart","\u002Fdocs\u002Fquickstart","docs\u002F01.quickstart",{"title":13,"path":14,"stem":15},"Authentication and keys","\u002Fdocs\u002Fauthentication","docs\u002F02.authentication",{"title":17,"path":18,"stem":19},"Images","\u002Fdocs\u002Fimages","docs\u002F03.images",{"title":21,"path":22,"stem":23},"Texts","\u002Fdocs\u002Ftexts","docs\u002F04.texts",{"title":25,"path":26,"stem":27},"Migrating from SightEngine","\u002Fdocs\u002Fmigrating-from-sightengine","docs\u002F05.migrating-from-sightengine",{"title":29,"path":30,"stem":31},"Workflows","\u002Fdocs\u002Fworkflows","docs\u002F06.workflows",{"title":33,"path":34,"stem":35},"Responses and errors","\u002Fdocs\u002Fresponses-and-errors","docs\u002F07.responses-and-errors",{"title":37,"path":38,"stem":39},"Limits and quotas","\u002Fdocs\u002Flimits-and-quotas","docs\u002F08.limits-and-quotas",{"title":41,"path":42,"stem":43},"The journal and ref","\u002Fdocs\u002Fjournal-and-ref","docs\u002F09.journal-and-ref",{"title":45,"path":46,"stem":47,"children":48,"page":81},"Integration guides","\u002Fdocs\u002Fintegration-guides","docs\u002F10.integration-guides",[49,53,57,61,65,69,73,77],{"title":50,"path":51,"stem":52},"Node.js and TypeScript","\u002Fdocs\u002Fintegration-guides\u002Fnodejs","docs\u002F10.integration-guides\u002F1.nodejs",{"title":54,"path":55,"stem":56},"Python","\u002Fdocs\u002Fintegration-guides\u002Fpython","docs\u002F10.integration-guides\u002F2.python",{"title":58,"path":59,"stem":60},"PHP","\u002Fdocs\u002Fintegration-guides\u002Fphp","docs\u002F10.integration-guides\u002F3.php",{"title":62,"path":63,"stem":64},"Go","\u002Fdocs\u002Fintegration-guides\u002Fgo","docs\u002F10.integration-guides\u002F4.go",{"title":66,"path":67,"stem":68},"Supabase Edge Functions","\u002Fdocs\u002Fintegration-guides\u002Fsupabase-edge-functions","docs\u002F10.integration-guides\u002F5.supabase-edge-functions",{"title":70,"path":71,"stem":72},"Cloudflare Workers","\u002Fdocs\u002Fintegration-guides\u002Fcloudflare-workers","docs\u002F10.integration-guides\u002F6.cloudflare-workers",{"title":74,"path":75,"stem":76},"Nuxt and Next","\u002Fdocs\u002Fintegration-guides\u002Fnuxt-and-next","docs\u002F10.integration-guides\u002F7.nuxt-and-next",{"title":78,"path":79,"stem":80},"Moderate an AI agent","\u002Fdocs\u002Fintegration-guides\u002Fmoderate-ai-agents","docs\u002F10.integration-guides\u002F8.moderate-ai-agents",false,{"title":83,"path":84,"stem":85},"AI coding agents","\u002Fdocs\u002Fai-agents","docs\u002F11.ai-agents",{"title":87,"path":88,"stem":89},"Best practices","\u002Fdocs\u002Fbest-practices","docs\u002F12.best-practices",{"title":91,"path":92,"stem":93},"Privacy and data","\u002Fdocs\u002Fprivacy-and-data","docs\u002F13.privacy-and-data",{"title":95,"path":96,"stem":97},"API reference","\u002Fdocs\u002Fapi-reference","docs\u002F14.api-reference",{"title":99,"path":100,"stem":101},"Fraud prevention","\u002Fdocs\u002Ffraud-prevention","docs\u002F16.fraud-prevention",{"title":103,"path":104,"stem":105},"Device token and challenges","\u002Fdocs\u002Fdevice-and-challenges","docs\u002F17.device-and-challenges",{"title":107,"path":108,"stem":109},"MCP server","\u002Fdocs\u002Fmcp-server","docs\u002F18.mcp-server",{"title":111,"path":112,"stem":113},"Changelog","\u002Fdocs\u002Fchangelog","docs\u002F99.changelog",{"id":115,"title":21,"body":116,"description":1135,"extension":1136,"links":1137,"meta":1138,"navigation":1139,"path":22,"seo":1140,"stem":23,"__hash__":1143},"docs\u002Fdocs\u002F04.texts.md",{"type":117,"value":118,"toc":1128},"minimark",[119,127,132,143,236,568,572,578,595,601,605,612,961,965,974,997,1006,1010,1118,1124],[120,121,122,126],"p",{},[123,124,125],"code",{},"POST \u002Fv1\u002Ftext"," checks one text and answers with the decision. One text is one check, whatever the number of categories it is checked against.",[128,129,131],"h2",{"id":130},"request","Request",[120,133,134,135,138,139,142],{},"Send JSON, with the header ",[123,136,137],{},"Content-Type: application\u002Fjson",". Without it the API answers ",[123,140,141],{},"415 unsupported_media",".",[144,145,146,162],"table",{},[147,148,149],"thead",{},[150,151,152,156,159],"tr",{},[153,154,155],"th",{},"Field",[153,157,158],{},"Required",[153,160,161],{},"Description",[163,164,165,179,200,215],"tbody",{},[150,166,167,173,176],{},[168,169,170],"td",{},[123,171,172],{},"text",[168,174,175],{},"Yes",[168,177,178],{},"The text, at most 20,000 characters (5,000 until your first top-up).",[150,180,181,186,189],{},[168,182,183],{},[123,184,185],{},"workflow",[168,187,188],{},"No",[168,190,191,192,195,196,199],{},"The ",[193,194,185],"a",{"href":30}," to check against. ",[123,197,198],{},"default"," when absent.",[150,201,202,207,209],{},[168,203,204],{},[123,205,206],{},"ref",[168,208,188],{},[168,210,211,212,142],{},"Your own id for the text, 1 to 128 characters, no control character. It is echoed in the answer and kept in the ",[193,213,214],{"href":42},"journal",[150,216,217,222,224],{},[168,218,219],{},[123,220,221],{},"context",[168,223,188],{},[168,225,226,227,230,231,235],{},"Where the text comes from, in plain words, at most 2,000 characters: for example ",[123,228,229],{},"\"a buyer writes to a seller on a marketplace that forbids sharing phone numbers\"",". The ",[193,232,234],{"href":233},"#advanced-ai-workflows","advanced reading"," reads it once you have topped up; before that it is ignored. It is not kept in the journal.",[237,238,239,324],"code-group",{},[240,241,247],"pre",{"className":242,"code":243,"filename":244,"language":245,"meta":246,"style":246},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","curl -X POST \"https:\u002F\u002Fapi.openshield.dev\u002Fv1\u002Ftext\" \\\n  -H \"Authorization: Bearer $OPENSHIELD_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"text\": \"Write me at jane@example.com\", \"workflow\": \"default\", \"ref\": \"comment_9034\"}'\n","curl","bash","",[123,248,249,278,296,309],{"__ignoreMap":246},[250,251,254,257,261,264,268,271,274],"span",{"class":252,"line":253},"line",1,[250,255,244],{"class":256},"sBMFI",[250,258,260],{"class":259},"sfazB"," -X",[250,262,263],{"class":259}," POST",[250,265,267],{"class":266},"sMK4o"," \"",[250,269,270],{"class":259},"https:\u002F\u002Fapi.openshield.dev\u002Fv1\u002Ftext",[250,272,273],{"class":266},"\"",[250,275,277],{"class":276},"sTEyZ"," \\\n",[250,279,281,284,286,289,292,294],{"class":252,"line":280},2,[250,282,283],{"class":259},"  -H",[250,285,267],{"class":266},[250,287,288],{"class":259},"Authorization: Bearer ",[250,290,291],{"class":276},"$OPENSHIELD_API_KEY",[250,293,273],{"class":266},[250,295,277],{"class":276},[250,297,299,301,303,305,307],{"class":252,"line":298},3,[250,300,283],{"class":259},[250,302,267],{"class":266},[250,304,137],{"class":259},[250,306,273],{"class":266},[250,308,277],{"class":276},[250,310,312,315,318,321],{"class":252,"line":311},4,[250,313,314],{"class":259},"  -d",[250,316,317],{"class":266}," '",[250,319,320],{"class":259},"{\"text\": \"Write me at jane@example.com\", \"workflow\": \"default\", \"ref\": \"comment_9034\"}",[250,322,323],{"class":266},"'\n",[240,325,330],{"className":326,"code":327,"filename":328,"language":329,"meta":246,"style":246},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","const response = await fetch(\"https:\u002F\u002Fapi.openshield.dev\u002Fv1\u002Ftext\", {\n  method: \"POST\",\n  headers: {\n    Authorization: `Bearer ${process.env.OPENSHIELD_API_KEY}`,\n    \"Content-Type\": \"application\u002Fjson\",\n  },\n  body: JSON.stringify({ text: \"Write me at jane@example.com\", ref: \"comment_9034\" }),\n})\nconst answer = await response.json()\nconsole.log(answer.summary.action)\n","TypeScript","ts",[123,331,332,367,386,395,429,451,457,512,521,544],{"__ignoreMap":246},[250,333,334,338,341,344,348,352,355,357,359,361,364],{"class":252,"line":253},[250,335,337],{"class":336},"spNyl","const",[250,339,340],{"class":276}," response ",[250,342,343],{"class":266},"=",[250,345,347],{"class":346},"s7zQu"," await",[250,349,351],{"class":350},"s2Zo4"," fetch",[250,353,354],{"class":276},"(",[250,356,273],{"class":266},[250,358,270],{"class":259},[250,360,273],{"class":266},[250,362,363],{"class":266},",",[250,365,366],{"class":266}," {\n",[250,368,369,373,376,378,381,383],{"class":252,"line":280},[250,370,372],{"class":371},"swJcz","  method",[250,374,375],{"class":266},":",[250,377,267],{"class":266},[250,379,380],{"class":259},"POST",[250,382,273],{"class":266},[250,384,385],{"class":266},",\n",[250,387,388,391,393],{"class":252,"line":298},[250,389,390],{"class":371},"  headers",[250,392,375],{"class":266},[250,394,366],{"class":266},[250,396,397,400,402,405,408,411,414,416,419,421,424,427],{"class":252,"line":311},[250,398,399],{"class":371},"    Authorization",[250,401,375],{"class":266},[250,403,404],{"class":266}," `",[250,406,407],{"class":259},"Bearer ",[250,409,410],{"class":266},"${",[250,412,413],{"class":276},"process",[250,415,142],{"class":266},[250,417,418],{"class":276},"env",[250,420,142],{"class":266},[250,422,423],{"class":276},"OPENSHIELD_API_KEY",[250,425,426],{"class":266},"}`",[250,428,385],{"class":266},[250,430,432,435,438,440,442,444,447,449],{"class":252,"line":431},5,[250,433,434],{"class":266},"    \"",[250,436,437],{"class":371},"Content-Type",[250,439,273],{"class":266},[250,441,375],{"class":266},[250,443,267],{"class":266},[250,445,446],{"class":259},"application\u002Fjson",[250,448,273],{"class":266},[250,450,385],{"class":266},[250,452,454],{"class":252,"line":453},6,[250,455,456],{"class":266},"  },\n",[250,458,460,463,465,468,470,473,475,478,481,483,485,488,490,492,495,497,499,502,504,507,510],{"class":252,"line":459},7,[250,461,462],{"class":371},"  body",[250,464,375],{"class":266},[250,466,467],{"class":276}," JSON",[250,469,142],{"class":266},[250,471,472],{"class":350},"stringify",[250,474,354],{"class":276},[250,476,477],{"class":266},"{",[250,479,480],{"class":371}," text",[250,482,375],{"class":266},[250,484,267],{"class":266},[250,486,487],{"class":259},"Write me at jane@example.com",[250,489,273],{"class":266},[250,491,363],{"class":266},[250,493,494],{"class":371}," ref",[250,496,375],{"class":266},[250,498,267],{"class":266},[250,500,501],{"class":259},"comment_9034",[250,503,273],{"class":266},[250,505,506],{"class":266}," }",[250,508,509],{"class":276},")",[250,511,385],{"class":266},[250,513,515,518],{"class":252,"line":514},8,[250,516,517],{"class":266},"}",[250,519,520],{"class":276},")\n",[250,522,524,526,529,531,533,536,538,541],{"class":252,"line":523},9,[250,525,337],{"class":336},[250,527,528],{"class":276}," answer ",[250,530,343],{"class":266},[250,532,347],{"class":346},[250,534,535],{"class":276}," response",[250,537,142],{"class":266},[250,539,540],{"class":350},"json",[250,542,543],{"class":276},"()\n",[250,545,547,550,552,555,558,560,563,565],{"class":252,"line":546},10,[250,548,549],{"class":276},"console",[250,551,142],{"class":266},[250,553,554],{"class":350},"log",[250,556,557],{"class":276},"(answer",[250,559,142],{"class":266},[250,561,562],{"class":276},"summary",[250,564,142],{"class":266},[250,566,567],{"class":276},"action)\n",[128,569,571],{"id":570},"what-is-checked","What is checked",[120,573,574,575,577],{},"The categories of the workflow. The ",[123,576,198],{}," workflow:",[579,580,581,589],"ul",{},[582,583,584,588],"li",{},[585,586,587],"strong",{},"Rejects"," unsafe text, violence, sexual content, hate, illegal activity and unethical content at a score of 0.8 (and sends them to review from 0.5), and bank account numbers, payment card numbers and unsafe links outright.",[582,590,591,594],{},[585,592,593],{},"Sends to review"," self-harm from 0.5, and email addresses, phone numbers, requests to continue on another messaging app, spam, scams, extremism and links to adult or gambling sites outright.",[120,596,597,598,600],{},"Some rules look at the text itself, such as personal data and links. Their score is 1 when they match, which is why their thresholds are 1. ",[193,599,29],{"href":30}," explains how to change all of this.",[128,602,604],{"id":603},"answer","Answer",[120,606,607,608,611],{},"The answer has the ",[193,609,610],{"href":34},"shape described here",". For a text that holds an email address:",[240,613,616],{"className":614,"code":615,"language":540,"meta":246,"style":246},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"status\": \"success\",\n  \"workflow\": \"default\",\n  \"workflow_version\": 1,\n  \"summary\": {\n    \"action\": \"review\",\n    \"reject_prob\": 0,\n    \"reject_reason\": [],\n    \"review_reason\": [\n      {\n        \"id\": \"pii_email\",\n        \"text\": \"Email address\",\n        \"message\": \"This content contains an email address.\",\n        \"score\": 1,\n        \"threshold\": 1\n      }\n    ]\n  },\n  \"scores\": { \"pii_email\": 1 },\n  \"time_ms\": 4,\n  \"request_id\": \"0192b7c5-1d20-7b3a-8f61-5c9e2a7d4b10\",\n  \"ref\": \"comment_9034\"\n}\n",[123,617,618,623,644,662,679,691,711,727,741,755,760,782,802,823,839,854,860,866,871,899,916,937,955],{"__ignoreMap":246},[250,619,620],{"class":252,"line":253},[250,621,622],{"class":266},"{\n",[250,624,625,628,631,633,635,637,640,642],{"class":252,"line":280},[250,626,627],{"class":266},"  \"",[250,629,630],{"class":336},"status",[250,632,273],{"class":266},[250,634,375],{"class":266},[250,636,267],{"class":266},[250,638,639],{"class":259},"success",[250,641,273],{"class":266},[250,643,385],{"class":266},[250,645,646,648,650,652,654,656,658,660],{"class":252,"line":298},[250,647,627],{"class":266},[250,649,185],{"class":336},[250,651,273],{"class":266},[250,653,375],{"class":266},[250,655,267],{"class":266},[250,657,198],{"class":259},[250,659,273],{"class":266},[250,661,385],{"class":266},[250,663,664,666,669,671,673,677],{"class":252,"line":311},[250,665,627],{"class":266},[250,667,668],{"class":336},"workflow_version",[250,670,273],{"class":266},[250,672,375],{"class":266},[250,674,676],{"class":675},"sbssI"," 1",[250,678,385],{"class":266},[250,680,681,683,685,687,689],{"class":252,"line":431},[250,682,627],{"class":266},[250,684,562],{"class":336},[250,686,273],{"class":266},[250,688,375],{"class":266},[250,690,366],{"class":266},[250,692,693,695,698,700,702,704,707,709],{"class":252,"line":453},[250,694,434],{"class":266},[250,696,697],{"class":256},"action",[250,699,273],{"class":266},[250,701,375],{"class":266},[250,703,267],{"class":266},[250,705,706],{"class":259},"review",[250,708,273],{"class":266},[250,710,385],{"class":266},[250,712,713,715,718,720,722,725],{"class":252,"line":459},[250,714,434],{"class":266},[250,716,717],{"class":256},"reject_prob",[250,719,273],{"class":266},[250,721,375],{"class":266},[250,723,724],{"class":675}," 0",[250,726,385],{"class":266},[250,728,729,731,734,736,738],{"class":252,"line":514},[250,730,434],{"class":266},[250,732,733],{"class":256},"reject_reason",[250,735,273],{"class":266},[250,737,375],{"class":266},[250,739,740],{"class":266}," [],\n",[250,742,743,745,748,750,752],{"class":252,"line":523},[250,744,434],{"class":266},[250,746,747],{"class":256},"review_reason",[250,749,273],{"class":266},[250,751,375],{"class":266},[250,753,754],{"class":266}," [\n",[250,756,757],{"class":252,"line":546},[250,758,759],{"class":266},"      {\n",[250,761,763,766,769,771,773,775,778,780],{"class":252,"line":762},11,[250,764,765],{"class":266},"        \"",[250,767,768],{"class":675},"id",[250,770,273],{"class":266},[250,772,375],{"class":266},[250,774,267],{"class":266},[250,776,777],{"class":259},"pii_email",[250,779,273],{"class":266},[250,781,385],{"class":266},[250,783,785,787,789,791,793,795,798,800],{"class":252,"line":784},12,[250,786,765],{"class":266},[250,788,172],{"class":675},[250,790,273],{"class":266},[250,792,375],{"class":266},[250,794,267],{"class":266},[250,796,797],{"class":259},"Email address",[250,799,273],{"class":266},[250,801,385],{"class":266},[250,803,805,807,810,812,814,816,819,821],{"class":252,"line":804},13,[250,806,765],{"class":266},[250,808,809],{"class":675},"message",[250,811,273],{"class":266},[250,813,375],{"class":266},[250,815,267],{"class":266},[250,817,818],{"class":259},"This content contains an email address.",[250,820,273],{"class":266},[250,822,385],{"class":266},[250,824,826,828,831,833,835,837],{"class":252,"line":825},14,[250,827,765],{"class":266},[250,829,830],{"class":675},"score",[250,832,273],{"class":266},[250,834,375],{"class":266},[250,836,676],{"class":675},[250,838,385],{"class":266},[250,840,842,844,847,849,851],{"class":252,"line":841},15,[250,843,765],{"class":266},[250,845,846],{"class":675},"threshold",[250,848,273],{"class":266},[250,850,375],{"class":266},[250,852,853],{"class":675}," 1\n",[250,855,857],{"class":252,"line":856},16,[250,858,859],{"class":266},"      }\n",[250,861,863],{"class":252,"line":862},17,[250,864,865],{"class":266},"    ]\n",[250,867,869],{"class":252,"line":868},18,[250,870,456],{"class":266},[250,872,874,876,879,881,883,886,888,890,892,894,896],{"class":252,"line":873},19,[250,875,627],{"class":266},[250,877,878],{"class":336},"scores",[250,880,273],{"class":266},[250,882,375],{"class":266},[250,884,885],{"class":266}," {",[250,887,267],{"class":266},[250,889,777],{"class":256},[250,891,273],{"class":266},[250,893,375],{"class":266},[250,895,676],{"class":675},[250,897,898],{"class":266}," },\n",[250,900,902,904,907,909,911,914],{"class":252,"line":901},20,[250,903,627],{"class":266},[250,905,906],{"class":336},"time_ms",[250,908,273],{"class":266},[250,910,375],{"class":266},[250,912,913],{"class":675}," 4",[250,915,385],{"class":266},[250,917,919,921,924,926,928,930,933,935],{"class":252,"line":918},21,[250,920,627],{"class":266},[250,922,923],{"class":336},"request_id",[250,925,273],{"class":266},[250,927,375],{"class":266},[250,929,267],{"class":266},[250,931,932],{"class":259},"0192b7c5-1d20-7b3a-8f61-5c9e2a7d4b10",[250,934,273],{"class":266},[250,936,385],{"class":266},[250,938,940,942,944,946,948,950,952],{"class":252,"line":939},22,[250,941,627],{"class":266},[250,943,206],{"class":336},[250,945,273],{"class":266},[250,947,375],{"class":266},[250,949,267],{"class":266},[250,951,501],{"class":259},[250,953,954],{"class":266},"\"\n",[250,956,958],{"class":252,"line":957},23,[250,959,960],{"class":266},"}\n",[128,962,964],{"id":963},"advanced-ai-workflows","Advanced AI workflows",[120,966,967,968,970,971,973],{},"Once you have topped up your balance, a text that the first check sends to ",[123,969,706],{}," gets a second, deeper reading by a more advanced AI model, with your ",[123,972,221],{},". It answers:",[579,975,976,986,992],{},[582,977,978,981,982,985],{},[123,979,980],{},"reject"," when the text clearly breaks the policy on the points flagged, or on another point (then under ",[123,983,984],{},"text_unsafe",");",[582,987,988,991],{},[123,989,990],{},"accept"," when the flag was a false alarm;",[582,993,994,996],{},[123,995,706],{}," as before when it is not sure.",[120,998,999,1000,142],{},"It costs EUR 0.002 per text it reads, taken from your balance. When it is not available, or slower than 1.5 seconds, the first check's decision stands. Images are not concerned. The model runs at a sub-processor listed on the ",[193,1001,1005],{"href":1002,"rel":1003},"https:\u002F\u002Fopenshield.dev\u002Flegal\u002Fdpa#annex-sub-processors",[1004],"nofollow","list of sub-processors",[128,1007,1009],{"id":1008},"errors","Errors",[144,1011,1012,1027],{},[147,1013,1014],{},[150,1015,1016,1019,1024],{},[153,1017,1018],{},"Status",[153,1020,1021],{},[123,1022,1023],{},"error.type",[153,1025,1026],{},"When",[163,1028,1029,1051,1063,1076,1088,1105],{},[150,1030,1031,1034,1039],{},[168,1032,1033],{},"400",[168,1035,1036],{},[123,1037,1038],{},"bad_request",[168,1040,1041,1042,1044,1045,1047,1048,1050],{},"The body is not JSON, or has no ",[123,1043,172],{},", or ",[123,1046,206],{}," is refused, or ",[123,1049,221],{}," has more than 2,000 characters.",[150,1052,1053,1055,1060],{},[168,1054,1033],{},[168,1056,1057],{},[123,1058,1059],{},"unknown_workflow",[168,1061,1062],{},"There is no workflow of that name.",[150,1064,1065,1068,1073],{},[168,1066,1067],{},"413",[168,1069,1070],{},[123,1071,1072],{},"text_too_long",[168,1074,1075],{},"The text has more than 20,000 characters (5,000 until your first top-up).",[150,1077,1078,1080,1085],{},[168,1079,1067],{},[168,1081,1082],{},[123,1083,1084],{},"body_too_large",[168,1086,1087],{},"The body is over the size limit.",[150,1089,1090,1093,1098],{},[168,1091,1092],{},"415",[168,1094,1095],{},[123,1096,1097],{},"unsupported_media",[168,1099,191,1100,1102,1103,142],{},[123,1101,437],{}," is not ",[123,1104,446],{},[150,1106,1107,1110,1115],{},[168,1108,1109],{},"503",[168,1111,1112],{},[123,1113,1114],{},"workflow_unavailable",[168,1116,1117],{},"The workflow has no rule for texts, or none this server can check.",[120,1119,1120,1121,142],{},"Authentication, rate limit and quota errors are in ",[193,1122,1123],{"href":34},"responses and errors",[1125,1126,1127],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}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 .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":246,"searchDepth":280,"depth":280,"links":1129},[1130,1131,1132,1133,1134],{"id":130,"depth":280,"text":131},{"id":570,"depth":280,"text":571},{"id":603,"depth":280,"text":604},{"id":963,"depth":280,"text":964},{"id":1008,"depth":280,"text":1009},"Check a text with POST \u002Fv1\u002Ftext, for comments, messages, names and bios.","md",null,{},true,{"title":1141,"description":1142},"Text moderation API: \u002Fv1\u002Ftext","Check a text with POST \u002Fv1\u002Ftext, for comments, messages, names, bios and text an AI wrote. You get accept, review or reject, with the reasons.","zXzxYL1lMVaLxyw4U2yLaAE6jGSK7KWGd7pI3ceq8Y0",[1145,1147],{"title":17,"path":18,"stem":19,"description":1146,"children":-1},"Check an image with POST \u002Fv1\u002Fimage, sent as bytes or as a public URL.",{"title":25,"path":26,"stem":27,"description":1148,"children":-1},"Three SightEngine workflow routes work here with the same paths, request fields and answer envelope. Change the base URL and key, map the category ids.",1792938461846]