Öppet bistånd – öppet API
IATI - International Aid Transparency Initiative
Svensk biståndsdata i IATI-format är tillgänglig från 2010 och uppdateras varje månad. Den innehåller förutom pågående och avslutade insatser och planerade insatser.
De IATI-formaterade filerna finns tillgängliga via det så kallade IATI Registry
API:et nås från länken http://api.openaid.se/api/v1
Varför Openaid.se API
Openaid.se handlar i första hand om transparens och öppenhet. För att i konkreta steg realisera de målsättningar som uttrycks i transparensgarantin, och skapa en möjlighet för externa aktörer att förädla och bygga vidare på det öppenhetsarbete som inletts av UD och Sida, är därför ett öppet API en central del av projektet.
Application Programming Interface (API) är en beskrivning av hur alla som är intresserade kan ta del av data och skapa nya tillämpningar och visualiseringar av de biståndsdata som presenteras på Openaid.se. Byggt med standardtekniker som REST och JSON, är det möjligt för forskare, journalister, studenter och allmänhet att efter behov presentera, visualisera och tolka de data som publiceras inom openaid-projektet .
Användningsvillkor
Informationen får användas fritt.
Openaid.se API
Openaid.se är ett öppet API som ger tillgång till information om svensk biståndsverksamhet. Alla summor baseras endast på de data som finns tillgängliga.
Data kommer från en rad olika källor, framför allt från Sida och Utrikesdepartementet.
Informationen är primärt presenterad så detaljerat som möjligt, i form av aktiviteter (komponenter) eller delar av biståndsinsatser. En insats kan bestå av en eller flera delar. Varje del kallas i API:et för “contribution”. Flera olika aktiviteter kan dock tillsammans bilda en större insats. Gemensamt är att dessa har samma id nummer (Sida: "plus_id", UD: "rk_id").
Därutöver finns information om samarbetsländer (API modell: “country”), typer av bistånd (API modell: “sector”, “subsector”) samt genomförandekanaler (API modell: “delivery_channel”).
Svar från API:et använder formatet JSON och normalt består ett svar av en lista med hashar.
OBS! data från 2007 och framåt är så gott som fullständiga och tillförlitliga att utgå ifrån. Innan 2007 avråder vi från att använda data för mer än indikativa syften. Här finns främst insatsdata från Sida. Över tid har den statistiska rapporteringen också förändrats och nyanserats vilket påverkar jämförbarheten. Det är utfallssiffror som anges från och med 1990. Innan dess anges endast avtalade medel.
Två huvudsakliga anrop
Två typer av anrop kan ges till webtjänsten: data-anrop och sök-anrop
Data-anrop till openaid API är ett standard http get-anrop på följande form:
http://api.openaid.se/api/v1/modell?attribut1=värde1[&attribut2=värde2...]
http://api.openaid.se/api/v1/model?attribute1=value1[&attribute2=value2...]
där önskad modell används (t.ex. contribution, sector, delivery_channel) i kombination med tillhörande attribut
(t.ex. year, name, title), Samtliga giltiga anrop defineras nedan under rubriken modeller och attribut
modell motsvarar här de huvudsakliga modellobjekten:
insats – ”contribution”
huvudsektor – ”sector”
sektor – ”subsector”
land – ”country”
typ av genomförare – ”delivery channel”
attribut 1=värde1 begränsar vilka attribut som skall visas. Endast vissa villkor är tillåtna i urvalet av modell och beror på vilken typ av modell som avses. Se uppställningen nedan.
Svaret på anropet år är en lista av json-objekt
Sökning görs genom sök-anrop av typen: http://api.openaid.se/api/v1/search?query=x
Exempel på API-anrop
Lista alla länder: http://api.openaid.se/api/v1/country
-
Hämta data om ett särskilt samarbetsland:
http://api.openaid.se/api/v1/country?id=120
-
Hämta data om en enskild insats eller del av insats:
http://api.openaid.se/api/v1/contribution?id=75
-
Lista alla landsobjekt med namnet Algeriet (name=Algeriet endast ett finns) http://api.openaid.se/api/v1/country?name=Algeriet
-
Lista totalt utbetalt belopp och antal insatser för länder som hade insatser eller utfall år 2009 http://api.openaid.se/api/v1/country?year=2009
-
Lista alla data som hänger ihop med en huvudsektor (sector):
http://api.openaid.se/api/v1/sector?
-
Visa data för sektorn (subsector) med id=33110
http://api.openaid.se/api/v1/subsector?id=33110
-
Visa data för typ av genomförare, t.ex. offentliga aktörer (Offentlig sektor=id 10000)
http://api.openaid.se/api/v1/delivery_channel?id=10000
Kombinationer av anrop:
-
Hämta alla insatser från ett viss land ett visst år (2008):
http://api.openaid.se/api/v1/contribution?country=120&year=2008
-
Hämta alla UD:s insatser från ett viss land ett visst år :
http://api.openaid.se/api/v1/contribution?country=120&year=2008&extending_agency=UD
Summor och aggregat
Ett särskilt anrop, “official_dac”, returnerar summor för det totala årliga bistånd som Sverige har rapporterat in historiskt. Vyn Sveriges totala bistånd bygger på dessa data.
Data har hämtats direkt från OECD:s databas DAC1 Official and Private flows (TABLE 1A och 1B). Det handlar här om den totala mängden bistånd, uppdelad i bilateralt (bilateralt och multi-bi) samt multilateralt (stöd till mltilaterala organisationers basbudget).
http://api.openaid.se/api/v1/official_dac
http://api.openaid.se/api/v1/official_dac?year=2008
Aggregat (Obs endast summa för tillgänglig insatsdata)
Huvuddelen av openaid.se bygger på data på så detaljerad nivå som möjligt. Detta betyder att huvuddelen av de summeringar som finns bygger på de data som finns tillgängliga. De kan därför avvika i vissa fall från makrosiffror i t.e.x. årsredovisningar eller dylikt.
En rad sådana summeringar, t.ex. summor för länder och sektorer, finns förberäknade och tillgängliga via API:et.
Dessa summor utgörs således av de befintliga insatsdata som har kunnat göras tillgängliga.
Statistikrapportering har även ändrats och nyanserats över tid. Därför kan den avvika från andra databaser som rapporterar fasta totalbelopp, t.ex. OECD:s.
Från 2007 räknas skuldsedlar som faktiskt utbetalats (s k dragna skuldsedlar) med i aggregaten.
Skuldsedlar som utfästs (lagts) räknas därmed inte med i aggregatbeloppen.
På insatsnivå finns dock både lagda och dragna skuldsedlar med som enskilda rader.
http://api.openaid.se/api/v1/country?year=2008
http://api.openaid.se/api/v1/sector?year=2008
http://api.openaid.se/api/v1/delivery_channel?year=2008
Begränsningen genom år (year) är speciell, och returnerar i allmänhet inte själva modellobjekten, utan istället id:n och aggregat såsom den sammanlagda summan för utbetalningar (outcome) eller sammanlagt antal aktiviteter/insatser (contributions).
Modeller och attribut
Modell-anrop till API:t har formen http://api.openaid.se/api/v1/model?attribute1=value1[&attribute2=value2...]. Vilka attribut som kan användas som avgränsningar anges i tabellen ovan.
Kolumner/fält
Varje dataobjekt i API:et har ett antal nycklar med primärinformation om t.ex. en biståndsinsats. Attribut, enligt följande tabell betraktas som centrala och utgör egna API-nycklar.
Modell |
Attribut (attribut i fetstil kan användas som begränsning i anrop) |
|
contribution |
id, year, title, description, extending_agency, years, documents, outcome, outcome_total, name, name_eng, name_swe, start_year, end_year, country, sector, subsector, delivery_channel, partner_organization, plus |
|
country |
id, name, name_eng, name_swe, region, contributions, iso, population, hdi, corruption_rank, corruption_score, country_code, outcome_total, outcome, documents, year, by_sector |
|
sector |
id, name, name_swe, name_eng, crsid, outcome, contributions, subsectors, documents, country, delivery_channel, year |
|
subsector |
id, name, name_swe, name_eng, description, sector, subsector, contributions, outcome_total, outcome, documents, year |
|
delivery_channel |
id, name, name_swe, name_eng, name_swe, outcome _row, plus, contributions, by_sector, year |
|
partner_organization |
id, name, name_swe, name_eng, contributions, documents, delivery_channel, year |
|
document |
id, title, type, url |
Fördjupad dokumentation om centrala modeller och tillhörande attribut
Attribut för insatser och dokument
Attribut för typ av genomförare
Extra data
Dessutom finns en särskild nyckel som heter “extra_data”. I denna läggs information in som inte anses vara av central betydelse i detta skede, men som kan vara av intresse för vissa eller i vidareutvecklingen av tjänsten. Dessa kommer direkt från rådata i originalkällorna. I extra_data samlas sådan information som ännu inte hanterats, men som kan vara av intresse för vissa användare:
Id:n för länder, sektorer och typ av genomförare:
Varje objekt har ett id, som identifierar objektet som unikt inom modellen. Modellen som Openaid.se bygger på idag gör dock att Id kan förändras om underliggande data förändras. Id för objekt för länder och insatser har inte konstant id över tid. Om man vill nå samma objekt över tid bör andra begränsande attribut användas som till exempel namn på landet.
Man kan också behöva anropa data i flera led.
För att få en lista över vilka ID som länder, sektorer, insatser har gör du ett enkelt modellanrop till ett modellobjekt utan attribut och hämtar ID därifrån:
- http://api.openaid.se/api/v1/country – Lista alla landsobjekt (country)
- http://api.openaid.se/api/v1/sector – Lista alla sektorsobjekt (sector)
- http://api.openaid.se/api/v1/contribution – Lista alla insatsobjekt (contribution)
Id:n för huvudsektorer
1 = Hälsa
2 = Utbildning
3 = Forskning
4 = Demokrati, Mänskliga rättigheter (MR) & jämställdhet
5 = Konflikt, fred och säkerhet
6 = Humanitärt bistånd
7 = Hållbar samhällsbyggnad
8 = Marknadsutveckling
9 = Miljö
10 = Jord- och skogsbruk
11 = Budgetstöd för fattigdomsbekämpning
Id:n för typ av genomförare (delivery_channel)
10000 = Offentlig sektor (Public Sector)
21000 = Internationell organisation (International NGO)
22000 = Svensk organisation (National NGO)
23000 = Organisation i samarbetslandet (Local/Regional NGO)
40000 = Multilaterala organisationer (Multilateral organisation)
50000 = Övrigt - privata aktörer m.fl.(Other)
Id:n för länder
Ett alternativ att komma åt Id för ett önskat land är att göra ett anrop till namnet för ett specifikt land, sektor eller genomförare:
- http://api.openaid.se/api/v1/country?name=Kenya – Listar data för landet Kenya.
Felkoder
Felkoder följer HTTP-standard. Följande status används 400, 404, 405, 416. http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
Källor
Se sidan för data och källor
Data på openaid.se delas visuellt in enligt olika färgkoder. Dessa motsvarar den information som finns tillgänglig för varje tidsperiod. Det är viktigt när man använder data att vara uppmärksam på vilka källor som finns tillgängliga.