Hur man använder Sitata API:er för att fastställa resebegränsningar för resenärer
Många av er kanske inte vet det, men de första grundstenarna i Sitata byggdes för tidig upptäckt av sjukdomar. Vår grundare har faktiskt ett TedX-föredrag från 2016 om varför vi behöver varna resenärer för att förhindra sjukdomsspridning. Det är därför ingen överraskning att vi fick kännedom om COVID-19 när ett ovanligt kluster av pneumonifall rapporterades i början av december 2019. Den 2 januari 2020 beslutade vårt hälsoteam att vi skulle utfärda vår första varning till våra resenärer och affärspartner. Detta var dagar före till och med Världshälsoorganisationen!
Under den oundvikliga eftersläpningen fick vi en uppenbarelse. Sjukdomen spred sig så snabbt att det var tydligt att det globala svaret skulle bli kaotiskt i bästa fall. Varje land skulle införa sina egna regler för att kontrollera spridningen. Detta skulle oundvikligen orska kaos för den globala resandet och bli en enorm källa till förvirring för dem som fortfarande vill resa. Vi hade rätt och vi beslutade oss för att göra något åt saken. Sitata var ett av de första företagen i världen att skapa ett dedikerat API och en övervakningstjänst för förändringar i resebegränsningar och inträdeskrav som ett resultat av COVID-19. Med ett avancerat mjukvarusystem för händelseupptäckt och ett dedikerat team av analytiker hade vi redan alla rätt verktyg och processer för att göra det.
Sedan lanseringen av denna nya tjänst har en rad olika organisationer utnyttjat datan till fördel för sina egna kunder, inklusive Eddy Travels, Flight Centre och Etihad Airways; och fler kommer att annonseras snart! För att hjälpa fler reseinriktade organisationer att dra nytta av detta erbjudande har vi nedan skrivit i detalj en rad exempel för att förklara hur man använder API:et för olika användningsfall. Jag hoppas att dessa förklaringar hjälper dig att komma igång med dina egna initiativ.
Inträdeskrav
De första frågorna en resenär ställer är utan tvekan “kan jag åka dit?” och “kommer jag att sättas i karantän?”, så det här är en bra plats att börja. Vi har skapat datamängden Inträdeskrav för att besvara de hårda “ja/nej”-frågorna om inträde i ett land eller en region.
Vid tidpunkten för skrivandet innehöll denna datamängd följande 10 distinkta kategorier:
- Kan en invånare komma in i landet?
- Kan en utlänning komma in i landet?
- Är genomresa genom landet tillåten?
- Krävs ett test vid ankomst (sjukdomsutbrott)?
- Är ett testcertifikat tillåtet (sjukdomsutbrott)?
- Krävs karantän vid ankomst (sjukdomsutbrott)? Krävs vaccin?
- Krävs försäkring?
- Krävs ett testcertifikat?
- Krävs ett registreringsformulär? (hälsa eller annat)
Varje kategori kan ha ett av följande värden:
- Ja
- Ja, med undantag
- Nej
- Nej, med undantag
Även om de allra flesta värden är “ja” och “nej”, är situationen på marken inte alltid så enkel. Ibland finns det riktigt konstiga och galna regler som olika regeringar har infört som kräver värdena “med undantag”.
Ett inträdeskrav är i grunden en post som dokumenterar en uppsättning regler som införts av en aktör mot ett eller flera länder eller regioner. Aktören kan vara ett land, en stat eller till och med en kommun i vår dataarkitektur. I allmänhet täcker Sitata data på landsnivå för närvarande. Vi har dock vissa poster på statlig/provinsiell nivå för utvalda regioner som USA och andra.
Alla poster som har ett värde under fältet **origin_country_division_id** eller **origin_country_region_id** är på statlig respektive kommunal nivå. Om du vill ha mer detaljerade data, vänligen kontakta oss så kan vi diskutera ditt användningsfall.
Ta dig tid att bekanta dig med datastrukturen för inträdeskrav genom att titta på vår API-dokumentation här.
En lite förvirrande del av datastrukturen är vår användning av termen “ursprung”. Detta är förvirrande eftersom utvecklare ofta tror att ursprung är platsen för ursprung eller avfärd. Vad vi menar med ursprung är dock faktiskt ursprunget till regeln som införts mot andra, dvs. landet eller regionen som har skapat begränsningen.
En annan viktig punkt att notera är hur vår lista över berörda länder fungerar. Om affected_countries är tom, ska det tolkas som en global regel, dvs. alla länder är berörda.
Några exempel
Som du har sett i dokumentationen finns det flera sätt att hämta data från API:et. Nedan tittar vi på några av de vanligaste användningsfallen.
Hur får jag kraven mellan två länder?
Det finns ett par sätt att göra den här typen av förfrågan. Den enklaste versionen är att använda parametrarna **destination** och **departure**. Dessa parametrar accepterar ISO 3166-1 alfa-2-koder som indata.
GET https://www.sitata.com/api/v2/entry_requirements?departure=DE&destination=IN
Svaret kommer att inkludera alla krav (på lands- och statsnivå) som är nödvändiga för att förstå för resenären som reser från avreselandet till destinationslandet.
Vad händer om jag vill ha data på statsnivå?
Sitata har data på statsnivå för vissa regioner. Du kommer att veta att en viss post är för en stat om fältet origin_country_division har ett värde. Du kan också filtrera för att endast hämta data på statsnivå med parametern **destination_country_division**. Den förväntar sig ett ISO_3166-2-värde. Till exempel US-TX för Texas, USA.
GET https://www.sitata.com/api/v2/entry_requirements?departure=DE&destination_country_division=IN-AP
Observera att det kan vara enklare att göra en fråga per land och sedan filtrera efter statliga data för att se om dessa data finns, och använda dem om de gör det.
Hur får jag kraven mellan två flygplatser?
Precis som med länder kan Sitatas API returnera resultat mellan två flygplatser. Parametrarna departure_airport och destination_airport använder ICAO- eller IATA-koder för att filtrera resultaten. Svaret kommer att inkludera alla begränsningar (på lands- och statsnivå) som är nödvändiga för att förstå för resenären som reser från motsvarande avreseland till destinationslandet.
GET https://www.sitata.com/api/v2/entry_requirements?departure_airport=MUC&destination_airport=BOM
Svaret kommer att inkludera alla begränsningar (på lands- och statsnivå) som är nödvändiga för att förstå för resenären som reser från avreselandet till destinationslandet.
Vad händer om jag bara har stadsinformation?
Sitata valde att inte tillgodose förfrågningar efter ett visst stadsnamn eftersom det kan leda till konflikter och förvirring. Istället valde vi att tillgodose förfrågningar till vårt API med latitud- och longitudkoordinater, vilket inte ger någon tvetydighet i vårt resultat. Parametrarna är departure_lat, departure_lng, destination_lat och destination_lng.
GET https://www.sitata.com/api/v2/entry_requirements?departure_lat=48.13743&departure_lng=11.57549&destination_lat=19.0760&destination_lng=72.8777
Om du löser dina städer till platser och frågar baserat på koordinater, kommer vårt API att svara med alla begränsningar (på lands- och statsnivå) som är nödvändiga för att förstå för resenären som reser från avreselandet till destinationslandet.
Ytterligare data
För vissa typer av inträdeskrav kan det finnas ytterligare data associerade i ett metadatafält av typen extras. Detta fält är en nyckel/värde-mappning av olika extra bitar av information för ett visst krav.
Hur många dagars karantän krävs?
Denna datapost är föremål för inträdeskrav typ 5. I denna post kommer **extras**-mappningen att innehålla ett fält som heter quarantine_days som kommer att innehålla ett heltal för antalet dagars karantän som påförs.
Hur många timmar före inträde krävs ett negativt covidtest?
Denna datapost är föremål för inträdeskrav typ 8. I denna post kommer **extras**-mappningen att innehålla ett fält som heter entry_hours som kommer att innehålla ett heltal för antalet timmar ett negativt covidtest är tillåtet före inträde.
Berätta för oss
Vi tror att vi har ett mycket robust API som sannolikt uppfyller alla dina behov för att hjälpa dina resenärer att förstå vad de sannolikt kommer att möta på vägen. Om du har ett specifikt användningsfall som vi inte adresserar, vänligen berätta för oss!
Vänta… det finns mer!
Detta inlägg är del ett av en tvådelad serie som förklarar hur man interagerar med Sitatas API för inträdeskrav och resebegränsningsinformation. Hittills har vi pratat om Inträdeskrav som beskriver de hårda ja/nej-typerna av krav som behövs för att komma in i ett land eller en region, men vi har inte heller pratat om vad som händer inom landet. En sak är att veta om att komma in i ett land, och en annan är att förstå om det är möjligt att röra sig runt i landet eller besöka stränderna eller om det finns en obligatorisk utegångsförbud.
Håll ögonen öppna för det andra inlägget som kommer att dyka ner i vår datamängd för Resebegränsningar. Ledtråd - det är nästan identiskt, så du kan alltid titta på vår API-dokumentation under tiden.