[{"data":1,"prerenderedAt":1507},["ShallowReactive",2],{"docs-navigation-en":3,"docs-\u002Fen\u002Fdocs\u002Fdevelopers\u002Fhttp-api":66,"docs-surround-\u002Fen\u002Fdocs\u002Fdevelopers\u002Fhttp-api":1503},[4],{"title":5,"path":6,"stem":7,"children":8,"page":65},"En","\u002Fen","en",[9],{"title":10,"path":11,"stem":12,"children":13,"page":65},"Docs","\u002Fen\u002Fdocs","en\u002Fdocs",[14,22,41],{"title":15,"path":16,"stem":17,"children":18,"icon":21},"Getting started","\u002Fen\u002Fdocs\u002Fgetting-started","en\u002Fdocs\u002F1.getting-started\u002F1.index",[19],{"title":20,"path":16,"stem":17},"What Flowfy is","i-lucide-rocket",{"title":23,"path":24,"stem":25,"children":26,"icon":40},"Destinations","\u002Fen\u002Fdocs\u002Fdestinations","en\u002Fdocs\u002F2.destinations\u002F1.index",[27,28,32,36],{"title":23,"path":24,"stem":25},{"title":29,"path":30,"stem":31},"Meta","\u002Fen\u002Fdocs\u002Fdestinations\u002Fmeta","en\u002Fdocs\u002F2.destinations\u002F2.meta",{"title":33,"path":34,"stem":35},"TikTok","\u002Fen\u002Fdocs\u002Fdestinations\u002Ftiktok","en\u002Fdocs\u002F2.destinations\u002F3.tiktok",{"title":37,"path":38,"stem":39},"Snapchat","\u002Fen\u002Fdocs\u002Fdestinations\u002Fsnapchat","en\u002Fdocs\u002F2.destinations\u002F4.snapchat","i-lucide-share-2",{"title":42,"path":43,"stem":44,"children":45,"icon":64},"For developers","\u002Fen\u002Fdocs\u002Fdevelopers","en\u002Fdocs\u002F9.developers\u002F1.index",[46,48,52,56,60],{"title":47,"path":43,"stem":44},"Developer overview",{"title":49,"path":50,"stem":51},"Install the SDK","\u002Fen\u002Fdocs\u002Fdevelopers\u002Finstall","en\u002Fdocs\u002F9.developers\u002F2.install",{"title":53,"path":54,"stem":55},"Tracking","\u002Fen\u002Fdocs\u002Fdevelopers\u002Ftracking","en\u002Fdocs\u002F9.developers\u002F3.tracking",{"title":57,"path":58,"stem":59},"Event reference","\u002Fen\u002Fdocs\u002Fdevelopers\u002Fevents","en\u002Fdocs\u002F9.developers\u002F4.events",{"title":61,"path":62,"stem":63},"HTTP API","\u002Fen\u002Fdocs\u002Fdevelopers\u002Fhttp-api","en\u002Fdocs\u002F9.developers\u002F5.http-api","i-lucide-code",false,{"id":67,"title":61,"audience":68,"body":69,"description":1497,"extension":1498,"meta":1499,"navigation":1500,"path":62,"seo":1501,"stem":63,"__hash__":1502},"docs_en\u002Fen\u002Fdocs\u002F9.developers\u002F5.http-api.md","developer",{"type":70,"value":71,"toc":1486},"minimark",[72,76,83,88,254,265,269,277,313,321,324,331,335,503,507,653,658,680,683,686,958,965,969,1278,1288,1292,1328,1332,1385,1396,1400,1403,1482],[73,74,75],"p",{},"Anything that can make an HTTPS request can send events. Use this for orders confirmed after the shopper has left, refunds issued from an admin panel, or any system with no browser in it.",[73,77,78,79],{},"Base URL: ",[80,81,82],"code",{},"https:\u002F\u002Fedge.flofy.co",[84,85,87],"h2",{"id":86},"endpoints","Endpoints",[89,90,91,112],"table",{},[92,93,94],"thead",{},[95,96,97,101,104,109],"tr",{},[98,99,100],"th",{},"Endpoint",[98,102,103],{},"Short form",[98,105,106],{},[80,107,108],{},"type",[98,110,111],{},"For",[113,114,115,136,156,176,196,216,236],"tbody",{},[95,116,117,123,128,133],{},[118,119,120],"td",{},[80,121,122],{},"\u002Fv1\u002Ftrack",[118,124,125],{},[80,126,127],{},"\u002Fv1\u002Ft",[118,129,130],{},[80,131,132],{},"track",[118,134,135],{},"Something happened",[95,137,138,143,148,153],{},[118,139,140],{},[80,141,142],{},"\u002Fv1\u002Fidentify",[118,144,145],{},[80,146,147],{},"\u002Fv1\u002Fi",[118,149,150],{},[80,151,152],{},"identify",[118,154,155],{},"Who someone is",[95,157,158,163,168,173],{},[118,159,160],{},[80,161,162],{},"\u002Fv1\u002Fpage",[118,164,165],{},[80,166,167],{},"\u002Fv1\u002Fp",[118,169,170],{},[80,171,172],{},"page",[118,174,175],{},"A page view",[95,177,178,183,188,193],{},[118,179,180],{},[80,181,182],{},"\u002Fv1\u002Fscreen",[118,184,185],{},[80,186,187],{},"\u002Fv1\u002Fs",[118,189,190],{},[80,191,192],{},"screen",[118,194,195],{},"A screen view in an app",[95,197,198,203,208,213],{},[118,199,200],{},[80,201,202],{},"\u002Fv1\u002Fgroup",[118,204,205],{},[80,206,207],{},"\u002Fv1\u002Fg",[118,209,210],{},[80,211,212],{},"group",[118,214,215],{},"Attach someone to a company",[95,217,218,223,228,233],{},[118,219,220],{},[80,221,222],{},"\u002Fv1\u002Falias",[118,224,225],{},[80,226,227],{},"\u002Fv1\u002Fa",[118,229,230],{},[80,231,232],{},"alias",[118,234,235],{},"Two IDs, one person",[95,237,238,243,248,251],{},[118,239,240],{},[80,241,242],{},"\u002Fv1\u002Fbatch",[118,244,245],{},[80,246,247],{},"\u002Fv1\u002Fb",[118,249,250],{},"—",[118,252,253],{},"Several events at once",[73,255,256,257,260,261,264],{},"All are ",[80,258,259],{},"POST"," with ",[80,262,263],{},"Content-Type: application\u002Fjson",". The short forms behave identically to the long ones.",[84,266,268],{"id":267},"authentication","Authentication",[73,270,271,272,276],{},"Your write key goes in an HTTP Basic header, as the username with an ",[273,274,275],"strong",{},"empty password",". Base64-encode the key followed by a colon:",[278,279,284],"pre",{"className":280,"code":281,"language":282,"meta":283,"style":283},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","printf 'YOUR_WRITE_KEY:' | base64\n","bash","",[80,285,286],{"__ignoreMap":283},[287,288,291,295,299,303,306,309],"span",{"class":289,"line":290},"line",1,[287,292,294],{"class":293},"s2Zo4","printf",[287,296,298],{"class":297},"sMK4o"," '",[287,300,302],{"class":301},"sfazB","YOUR_WRITE_KEY:",[287,304,305],{"class":297},"'",[287,307,308],{"class":297}," |",[287,310,312],{"class":311},"sBMFI"," base64\n",[278,314,319],{"className":315,"code":317,"language":318,"meta":283},[316],"language-text","Authorization: Basic \u003Cthat value>\n","text",[80,320,317],{"__ignoreMap":283},[73,322,323],{},"The trailing colon is required, and a non-empty password is rejected.",[73,325,326,327,330],{},"You can pass the key as a query parameter instead — ",[80,328,329],{},"?writeKey=\u003Cbase64 of the key>"," — which is what the browser SDK does, to keep requests free of a CORS preflight. When both are present, the query parameter wins.",[84,332,334],{"id":333},"a-request","A request",[278,336,338],{"className":280,"code":337,"language":282,"meta":283,"style":283},"curl -X POST https:\u002F\u002Fedge.flofy.co\u002Fv1\u002Ftrack \\\n  -H \"Authorization: Basic $(printf 'YOUR_WRITE_KEY:' | base64)\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"type\": \"track\",\n    \"event\": \"Order Completed\",\n    \"userId\": \"customer_9931\",\n    \"messageId\": \"8f14e45f-ea0a-4c1f-9f2c-3b7d1a0e5c62\",\n    \"timestamp\": \"2026-08-25T10:31:00.000Z\",\n    \"properties\": {\n      \"order_id\": \"ORD-12345\",\n      \"currency\": \"SAR\",\n      \"value\": 523.17,\n      \"products\": [\n        { \"product_id\": \"P-4471\", \"name\": \"Wireless Headphones\", \"price\": 199.99, \"quantity\": 1 }\n      ]\n    }\n  }'\n",[80,339,340,358,391,405,416,422,428,434,440,446,452,458,464,470,476,482,488,494],{"__ignoreMap":283},[287,341,342,345,348,351,354],{"class":289,"line":290},[287,343,344],{"class":311},"curl",[287,346,347],{"class":301}," -X",[287,349,350],{"class":301}," POST",[287,352,353],{"class":301}," https:\u002F\u002Fedge.flofy.co\u002Fv1\u002Ftrack",[287,355,357],{"class":356},"sTEyZ"," \\\n",[287,359,361,364,367,370,373,375,377,379,381,383,386,389],{"class":289,"line":360},2,[287,362,363],{"class":301},"  -H",[287,365,366],{"class":297}," \"",[287,368,369],{"class":301},"Authorization: Basic ",[287,371,372],{"class":297},"$(",[287,374,294],{"class":293},[287,376,298],{"class":297},[287,378,302],{"class":301},[287,380,305],{"class":297},[287,382,308],{"class":297},[287,384,385],{"class":311}," base64",[287,387,388],{"class":297},")\"",[287,390,357],{"class":356},[287,392,394,396,398,400,403],{"class":289,"line":393},3,[287,395,363],{"class":301},[287,397,366],{"class":297},[287,399,263],{"class":301},[287,401,402],{"class":297},"\"",[287,404,357],{"class":356},[287,406,408,411,413],{"class":289,"line":407},4,[287,409,410],{"class":301},"  -d",[287,412,298],{"class":297},[287,414,415],{"class":301},"{\n",[287,417,419],{"class":289,"line":418},5,[287,420,421],{"class":301},"    \"type\": \"track\",\n",[287,423,425],{"class":289,"line":424},6,[287,426,427],{"class":301},"    \"event\": \"Order Completed\",\n",[287,429,431],{"class":289,"line":430},7,[287,432,433],{"class":301},"    \"userId\": \"customer_9931\",\n",[287,435,437],{"class":289,"line":436},8,[287,438,439],{"class":301},"    \"messageId\": \"8f14e45f-ea0a-4c1f-9f2c-3b7d1a0e5c62\",\n",[287,441,443],{"class":289,"line":442},9,[287,444,445],{"class":301},"    \"timestamp\": \"2026-08-25T10:31:00.000Z\",\n",[287,447,449],{"class":289,"line":448},10,[287,450,451],{"class":301},"    \"properties\": {\n",[287,453,455],{"class":289,"line":454},11,[287,456,457],{"class":301},"      \"order_id\": \"ORD-12345\",\n",[287,459,461],{"class":289,"line":460},12,[287,462,463],{"class":301},"      \"currency\": \"SAR\",\n",[287,465,467],{"class":289,"line":466},13,[287,468,469],{"class":301},"      \"value\": 523.17,\n",[287,471,473],{"class":289,"line":472},14,[287,474,475],{"class":301},"      \"products\": [\n",[287,477,479],{"class":289,"line":478},15,[287,480,481],{"class":301},"        { \"product_id\": \"P-4471\", \"name\": \"Wireless Headphones\", \"price\": 199.99, \"quantity\": 1 }\n",[287,483,485],{"class":289,"line":484},16,[287,486,487],{"class":301},"      ]\n",[287,489,491],{"class":289,"line":490},17,[287,492,493],{"class":301},"    }\n",[287,495,497,500],{"class":289,"line":496},18,[287,498,499],{"class":301},"  }",[287,501,502],{"class":297},"'\n",[84,504,506],{"id":505},"the-envelope","The envelope",[89,508,509,522],{},[92,510,511],{},[95,512,513,516,519],{},[98,514,515],{},"Field",[98,517,518],{},"Required",[98,520,521],{},"Meaning",[113,523,524,536,551,563,575,588,600,614,628,641],{},[95,525,526,530,533],{},[118,527,528],{},[80,529,108],{},[118,531,532],{},"Yes",[118,534,535],{},"Must match the endpoint",[95,537,538,543,548],{},[118,539,540],{},[80,541,542],{},"event",[118,544,545,546],{},"On ",[80,547,132],{},[118,549,550],{},"The event name",[95,552,553,558,560],{},[118,554,555],{},[80,556,557],{},"messageId",[118,559,532],{},[118,561,562],{},"Unique per event. A UUID is fine",[95,564,565,570,572],{},[118,566,567],{},[80,568,569],{},"timestamp",[118,571,532],{},[118,573,574],{},"When it happened — ISO 8601, UTC",[95,576,577,582,585],{},[118,578,579],{},[80,580,581],{},"userId",[118,583,584],{},"One of the two",[118,586,587],{},"Your ID for a known person",[95,589,590,595,597],{},[118,591,592],{},[80,593,594],{},"anonymousId",[118,596,584],{},[118,598,599],{},"An ID for someone not signed in",[95,601,602,607,611],{},[118,603,604],{},[80,605,606],{},"properties",[118,608,545,609],{},[80,610,132],{},[118,612,613],{},"The event's properties",[95,615,616,621,625],{},[118,617,618],{},[80,619,620],{},"traits",[118,622,545,623],{},[80,624,152],{},[118,626,627],{},"What you know about the person",[95,629,630,635,638],{},[118,631,632],{},[80,633,634],{},"context",[118,636,637],{},"No",[118,639,640],{},"Page, campaign, IP, user agent",[95,642,643,648,650],{},[118,644,645],{},[80,646,647],{},"integrations",[118,649,637],{},[118,651,652],{},"Turn individual destinations on or off",[73,654,655,657],{},[80,656,557],{}," is how a retry is recognised as the same event rather than a second one. Generate it once per event and reuse it if you retry.",[73,659,660,661,663,664,666,667,669,670,672,673,663,676,679],{},"Envelope fields are camelCase — ",[80,662,581],{},", ",[80,665,557],{},". Everything inside ",[80,668,606],{}," and ",[80,671,620],{}," is snake_case — ",[80,674,675],{},"order_id",[80,677,678],{},"first_name",". The split is deliberate: the envelope describes the message, the properties describe your store.",[84,681,682],{"id":634},"Context",[73,684,685],{},"The SDK fills this in from the browser. Over HTTP you send what you have, and all of it is optional:",[278,687,691],{"className":688,"code":689,"language":690,"meta":283,"style":283},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"context\": {\n    \"ip\": \"203.0.113.9\",\n    \"userAgent\": \"Mozilla\u002F5.0 …\",\n    \"locale\": \"ar-SA\",\n    \"timezone\": \"Asia\u002FRiyadh\",\n    \"page\": {\n      \"url\": \"https:\u002F\u002Fstore.example.com\u002Fcheckout\",\n      \"path\": \"\u002Fcheckout\",\n      \"referrer\": \"https:\u002F\u002Fwww.google.com\u002F\"\n    },\n    \"campaign\": {\n      \"source\": \"facebook\",\n      \"medium\": \"cpc\",\n      \"name\": \"ramadan-2026\"\n    }\n  }\n}\n","json",[80,692,693,697,713,735,755,775,795,807,829,849,868,873,886,906,926,944,948,953],{"__ignoreMap":283},[287,694,695],{"class":289,"line":290},[287,696,415],{"class":297},[287,698,699,702,705,707,710],{"class":289,"line":360},[287,700,701],{"class":297},"  \"",[287,703,634],{"class":704},"spNyl",[287,706,402],{"class":297},[287,708,709],{"class":297},":",[287,711,712],{"class":297}," {\n",[287,714,715,718,721,723,725,727,730,732],{"class":289,"line":393},[287,716,717],{"class":297},"    \"",[287,719,720],{"class":311},"ip",[287,722,402],{"class":297},[287,724,709],{"class":297},[287,726,366],{"class":297},[287,728,729],{"class":301},"203.0.113.9",[287,731,402],{"class":297},[287,733,734],{"class":297},",\n",[287,736,737,739,742,744,746,748,751,753],{"class":289,"line":407},[287,738,717],{"class":297},[287,740,741],{"class":311},"userAgent",[287,743,402],{"class":297},[287,745,709],{"class":297},[287,747,366],{"class":297},[287,749,750],{"class":301},"Mozilla\u002F5.0 …",[287,752,402],{"class":297},[287,754,734],{"class":297},[287,756,757,759,762,764,766,768,771,773],{"class":289,"line":418},[287,758,717],{"class":297},[287,760,761],{"class":311},"locale",[287,763,402],{"class":297},[287,765,709],{"class":297},[287,767,366],{"class":297},[287,769,770],{"class":301},"ar-SA",[287,772,402],{"class":297},[287,774,734],{"class":297},[287,776,777,779,782,784,786,788,791,793],{"class":289,"line":424},[287,778,717],{"class":297},[287,780,781],{"class":311},"timezone",[287,783,402],{"class":297},[287,785,709],{"class":297},[287,787,366],{"class":297},[287,789,790],{"class":301},"Asia\u002FRiyadh",[287,792,402],{"class":297},[287,794,734],{"class":297},[287,796,797,799,801,803,805],{"class":289,"line":430},[287,798,717],{"class":297},[287,800,172],{"class":311},[287,802,402],{"class":297},[287,804,709],{"class":297},[287,806,712],{"class":297},[287,808,809,812,816,818,820,822,825,827],{"class":289,"line":436},[287,810,811],{"class":297},"      \"",[287,813,815],{"class":814},"sbssI","url",[287,817,402],{"class":297},[287,819,709],{"class":297},[287,821,366],{"class":297},[287,823,824],{"class":301},"https:\u002F\u002Fstore.example.com\u002Fcheckout",[287,826,402],{"class":297},[287,828,734],{"class":297},[287,830,831,833,836,838,840,842,845,847],{"class":289,"line":442},[287,832,811],{"class":297},[287,834,835],{"class":814},"path",[287,837,402],{"class":297},[287,839,709],{"class":297},[287,841,366],{"class":297},[287,843,844],{"class":301},"\u002Fcheckout",[287,846,402],{"class":297},[287,848,734],{"class":297},[287,850,851,853,856,858,860,862,865],{"class":289,"line":448},[287,852,811],{"class":297},[287,854,855],{"class":814},"referrer",[287,857,402],{"class":297},[287,859,709],{"class":297},[287,861,366],{"class":297},[287,863,864],{"class":301},"https:\u002F\u002Fwww.google.com\u002F",[287,866,867],{"class":297},"\"\n",[287,869,870],{"class":289,"line":454},[287,871,872],{"class":297},"    },\n",[287,874,875,877,880,882,884],{"class":289,"line":460},[287,876,717],{"class":297},[287,878,879],{"class":311},"campaign",[287,881,402],{"class":297},[287,883,709],{"class":297},[287,885,712],{"class":297},[287,887,888,890,893,895,897,899,902,904],{"class":289,"line":466},[287,889,811],{"class":297},[287,891,892],{"class":814},"source",[287,894,402],{"class":297},[287,896,709],{"class":297},[287,898,366],{"class":297},[287,900,901],{"class":301},"facebook",[287,903,402],{"class":297},[287,905,734],{"class":297},[287,907,908,910,913,915,917,919,922,924],{"class":289,"line":472},[287,909,811],{"class":297},[287,911,912],{"class":814},"medium",[287,914,402],{"class":297},[287,916,709],{"class":297},[287,918,366],{"class":297},[287,920,921],{"class":301},"cpc",[287,923,402],{"class":297},[287,925,734],{"class":297},[287,927,928,930,933,935,937,939,942],{"class":289,"line":478},[287,929,811],{"class":297},[287,931,932],{"class":814},"name",[287,934,402],{"class":297},[287,936,709],{"class":297},[287,938,366],{"class":297},[287,940,941],{"class":301},"ramadan-2026",[287,943,867],{"class":297},[287,945,946],{"class":289,"line":484},[287,947,493],{"class":297},[287,949,950],{"class":289,"line":490},[287,951,952],{"class":297},"  }\n",[287,954,955],{"class":289,"line":496},[287,956,957],{"class":297},"}\n",[73,959,960,669,962,964],{},[80,961,720],{},[80,963,741],{}," are the two worth the effort. Meta, TikTok and Snapchat use them to match a server-side conversion to an ad view, and without them a share of your orders goes unattributed. Send the shopper's address, not your server's.",[84,966,968],{"id":967},"batching","Batching",[278,970,972],{"className":688,"code":971,"language":690,"meta":283,"style":283},"{\n  \"batch\": [\n    {\n      \"type\": \"identify\",\n      \"userId\": \"customer_9931\",\n      \"messageId\": \"…\",\n      \"timestamp\": \"…\",\n      \"traits\": { \"email\": \"sara@example.com\" }\n    },\n    {\n      \"type\": \"track\",\n      \"event\": \"Order Completed\",\n      \"userId\": \"customer_9931\",\n      \"messageId\": \"…\",\n      \"timestamp\": \"…\",\n      \"properties\": { \"order_id\": \"ORD-12345\", \"currency\": \"SAR\", \"value\": 523.17 }\n    }\n  ]\n}\n",[80,973,974,978,992,997,1015,1034,1053,1071,1103,1107,1111,1129,1148,1166,1184,1202,1264,1268,1273],{"__ignoreMap":283},[287,975,976],{"class":289,"line":290},[287,977,415],{"class":297},[287,979,980,982,985,987,989],{"class":289,"line":360},[287,981,701],{"class":297},[287,983,984],{"class":704},"batch",[287,986,402],{"class":297},[287,988,709],{"class":297},[287,990,991],{"class":297}," [\n",[287,993,994],{"class":289,"line":393},[287,995,996],{"class":297},"    {\n",[287,998,999,1001,1003,1005,1007,1009,1011,1013],{"class":289,"line":407},[287,1000,811],{"class":297},[287,1002,108],{"class":311},[287,1004,402],{"class":297},[287,1006,709],{"class":297},[287,1008,366],{"class":297},[287,1010,152],{"class":301},[287,1012,402],{"class":297},[287,1014,734],{"class":297},[287,1016,1017,1019,1021,1023,1025,1027,1030,1032],{"class":289,"line":418},[287,1018,811],{"class":297},[287,1020,581],{"class":311},[287,1022,402],{"class":297},[287,1024,709],{"class":297},[287,1026,366],{"class":297},[287,1028,1029],{"class":301},"customer_9931",[287,1031,402],{"class":297},[287,1033,734],{"class":297},[287,1035,1036,1038,1040,1042,1044,1046,1049,1051],{"class":289,"line":424},[287,1037,811],{"class":297},[287,1039,557],{"class":311},[287,1041,402],{"class":297},[287,1043,709],{"class":297},[287,1045,366],{"class":297},[287,1047,1048],{"class":301},"…",[287,1050,402],{"class":297},[287,1052,734],{"class":297},[287,1054,1055,1057,1059,1061,1063,1065,1067,1069],{"class":289,"line":430},[287,1056,811],{"class":297},[287,1058,569],{"class":311},[287,1060,402],{"class":297},[287,1062,709],{"class":297},[287,1064,366],{"class":297},[287,1066,1048],{"class":301},[287,1068,402],{"class":297},[287,1070,734],{"class":297},[287,1072,1073,1075,1077,1079,1081,1084,1086,1089,1091,1093,1095,1098,1100],{"class":289,"line":436},[287,1074,811],{"class":297},[287,1076,620],{"class":311},[287,1078,402],{"class":297},[287,1080,709],{"class":297},[287,1082,1083],{"class":297}," {",[287,1085,366],{"class":297},[287,1087,1088],{"class":814},"email",[287,1090,402],{"class":297},[287,1092,709],{"class":297},[287,1094,366],{"class":297},[287,1096,1097],{"class":301},"sara@example.com",[287,1099,402],{"class":297},[287,1101,1102],{"class":297}," }\n",[287,1104,1105],{"class":289,"line":442},[287,1106,872],{"class":297},[287,1108,1109],{"class":289,"line":448},[287,1110,996],{"class":297},[287,1112,1113,1115,1117,1119,1121,1123,1125,1127],{"class":289,"line":454},[287,1114,811],{"class":297},[287,1116,108],{"class":311},[287,1118,402],{"class":297},[287,1120,709],{"class":297},[287,1122,366],{"class":297},[287,1124,132],{"class":301},[287,1126,402],{"class":297},[287,1128,734],{"class":297},[287,1130,1131,1133,1135,1137,1139,1141,1144,1146],{"class":289,"line":460},[287,1132,811],{"class":297},[287,1134,542],{"class":311},[287,1136,402],{"class":297},[287,1138,709],{"class":297},[287,1140,366],{"class":297},[287,1142,1143],{"class":301},"Order Completed",[287,1145,402],{"class":297},[287,1147,734],{"class":297},[287,1149,1150,1152,1154,1156,1158,1160,1162,1164],{"class":289,"line":466},[287,1151,811],{"class":297},[287,1153,581],{"class":311},[287,1155,402],{"class":297},[287,1157,709],{"class":297},[287,1159,366],{"class":297},[287,1161,1029],{"class":301},[287,1163,402],{"class":297},[287,1165,734],{"class":297},[287,1167,1168,1170,1172,1174,1176,1178,1180,1182],{"class":289,"line":472},[287,1169,811],{"class":297},[287,1171,557],{"class":311},[287,1173,402],{"class":297},[287,1175,709],{"class":297},[287,1177,366],{"class":297},[287,1179,1048],{"class":301},[287,1181,402],{"class":297},[287,1183,734],{"class":297},[287,1185,1186,1188,1190,1192,1194,1196,1198,1200],{"class":289,"line":478},[287,1187,811],{"class":297},[287,1189,569],{"class":311},[287,1191,402],{"class":297},[287,1193,709],{"class":297},[287,1195,366],{"class":297},[287,1197,1048],{"class":301},[287,1199,402],{"class":297},[287,1201,734],{"class":297},[287,1203,1204,1206,1208,1210,1212,1214,1216,1218,1220,1222,1224,1227,1229,1232,1234,1237,1239,1241,1243,1246,1248,1250,1252,1255,1257,1259,1262],{"class":289,"line":484},[287,1205,811],{"class":297},[287,1207,606],{"class":311},[287,1209,402],{"class":297},[287,1211,709],{"class":297},[287,1213,1083],{"class":297},[287,1215,366],{"class":297},[287,1217,675],{"class":814},[287,1219,402],{"class":297},[287,1221,709],{"class":297},[287,1223,366],{"class":297},[287,1225,1226],{"class":301},"ORD-12345",[287,1228,402],{"class":297},[287,1230,1231],{"class":297},",",[287,1233,366],{"class":297},[287,1235,1236],{"class":814},"currency",[287,1238,402],{"class":297},[287,1240,709],{"class":297},[287,1242,366],{"class":297},[287,1244,1245],{"class":301},"SAR",[287,1247,402],{"class":297},[287,1249,1231],{"class":297},[287,1251,366],{"class":297},[287,1253,1254],{"class":814},"value",[287,1256,402],{"class":297},[287,1258,709],{"class":297},[287,1260,1261],{"class":814}," 523.17",[287,1263,1102],{"class":297},[287,1265,1266],{"class":289,"line":490},[287,1267,493],{"class":297},[287,1269,1270],{"class":289,"line":496},[287,1271,1272],{"class":297},"  ]\n",[287,1274,1276],{"class":289,"line":1275},19,[287,1277,957],{"class":297},[73,1279,1280,1281,663,1283,669,1285,1287],{},"Every element is a complete event with its own ",[80,1282,108],{},[80,1284,557],{},[80,1286,569],{},". Elements are validated before any of them is accepted, so a single malformed entry rejects the whole request — which is what makes the request safe to retry as a unit.",[84,1289,1291],{"id":1290},"limits","Limits",[89,1293,1294,1302],{},[92,1295,1296],{},[95,1297,1298,1300],{},[98,1299],{},[98,1301],{},[113,1303,1304,1312,1320],{},[95,1305,1306,1309],{},[118,1307,1308],{},"Single event",[118,1310,1311],{},"256 KB",[95,1313,1314,1317],{},[118,1315,1316],{},"Batch request",[118,1318,1319],{},"5 MB",[95,1321,1322,1325],{},[118,1323,1324],{},"Events per batch",[118,1326,1327],{},"1,000",[84,1329,1331],{"id":1330},"responses","Responses",[89,1333,1334,1343],{},[92,1335,1336],{},[95,1337,1338,1341],{},[98,1339,1340],{},"Code",[98,1342,521],{},[113,1344,1345,1355,1365,1375],{},[95,1346,1347,1352],{},[118,1348,1349],{},[80,1350,1351],{},"204",[118,1353,1354],{},"Received",[95,1356,1357,1362],{},[118,1358,1359],{},[80,1360,1361],{},"400",[118,1363,1364],{},"Missing or malformed write key, invalid JSON, or a bad batch element",[95,1366,1367,1372],{},[118,1368,1369],{},[80,1370,1371],{},"413",[118,1373,1374],{},"More than 1,000 events in one batch",[95,1376,1377,1382],{},[118,1378,1379],{},[80,1380,1381],{},"503",[118,1383,1384],{},"Flowfy could not accept the event — retry with backoff",[73,1386,1387,1388,1391,1392,1395],{},"There is no response body on success. ",[273,1389,1390],{},"A 204 means the request was well-formed, not that the write key matches a source",": a valid-looking key for a source that does not exist is accepted here and dropped later. Confirm in ",[273,1393,1394],{},"Live events"," on the source's page in Flowfy.",[84,1397,1399],{"id":1398},"when-something-is-wrong","When something is wrong",[73,1401,1402],{},"Work down this list:",[1404,1405,1406,1421,1436,1447,1459,1471],"ol",{},[1407,1408,1409,1412,1413,1416,1417,1420],"li",{},[273,1410,1411],{},"Is the header right?"," ",[80,1414,1415],{},"Basic",", a space, then base64 of ",[80,1418,1419],{},"key:"," — with the colon.",[1407,1422,1423,1429,1430,1432,1433,1435],{},[273,1424,1425,1426,1428],{},"Does ",[80,1427,108],{}," match the endpoint?"," A ",[80,1431,132],{}," body posted to ",[80,1434,142],{}," will not do what you meant.",[1407,1437,1438,1412,1441,1443,1444,1446],{},[273,1439,1440],{},"Is identity in the body?",[80,1442,581],{}," or ",[80,1445,594],{}," has to be in the JSON. A header does not count.",[1407,1448,1449,1412,1455,1458],{},[273,1450,1451,1452,1454],{},"Is ",[80,1453,569],{}," ISO 8601 in UTC?",[80,1456,1457],{},"2026-08-25T10:31:00.000Z",", not a Unix epoch.",[1407,1460,1461,1412,1464,1466,1467,1470],{},[273,1462,1463],{},"Are the properties snake_case?",[80,1465,675],{},", not ",[80,1468,1469],{},"orderId",". The wrong casing is accepted and then ignored, which looks like a delivery problem but is not.",[1407,1472,1473,1476,1477,1481],{},[273,1474,1475],{},"Does the event name match the reference?"," Check the ",[1478,1479,1480],"a",{"href":58},"event reference",".",[1483,1484,1485],"style",{},"html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}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 .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":283,"searchDepth":360,"depth":360,"links":1487},[1488,1489,1490,1491,1492,1493,1494,1495,1496],{"id":86,"depth":360,"text":87},{"id":267,"depth":360,"text":268},{"id":333,"depth":360,"text":334},{"id":505,"depth":360,"text":506},{"id":634,"depth":360,"text":682},{"id":967,"depth":360,"text":968},{"id":1290,"depth":360,"text":1291},{"id":1330,"depth":360,"text":1331},{"id":1398,"depth":360,"text":1399},"Send events to Flowfy from a server, with no SDK involved.","md",{},true,{"title":61,"description":1497},"s_-3j75TX1EOiqjKx_2ASvLi_Z72XNlxG7T9Uh3n7x0",[1504,1506],{"title":57,"path":58,"stem":59,"description":1505,"children":-1},"The thirty events Flowfy understands, and the properties each one needs.",null,1787611841787]