I'm a project manager. I'm interested in IATIStandard.org an International Aid Transparency Initiative that makes it possible for humanitarian organizations to share information on aid activities formatted into XML files posted online. Organizations use an XML standard to format their data, then register metadata on the files with IATI and IATI makes the files searchable. IATI also has an API folks can use to query all the files/data. Can someone please explain to me how IATI is doing this in simple technical terms?


1 Answer 1


Well, if you take a look at this link, you can get a good idea of what's going on. Basically, the IATI hold data which references data which is hosted elsewhere. They act a lot like the index in a library - the index doesn't contain the actual text in the book, but it contains metadata which describes the book, and tells you where to find it. Similarly, the IATI don't actually host the data, they just give you a reference to it:

The IATI Registry holds meta-data on files published in the IATI XML format. The files themselves are stored in different places across the web, and you will need to fetch and process the original files yourself. If you are looking for an API directly onto IATI data, you can use the IATI DataStore or consult the tools section of the IATI Wiki to learn about other third-party platforms. In doubt, ask on the iati-technical mailing list.

Developers who want to query the data use standard HTTP protocols to find out where the data is located. This page is important, because it gives us an FAQ:

The publisher record contains a lot of fields. Do I need to fill them all out?

Yes, this is very important as it provides you with an opportunity to explain to the users of the data how to interpret your particular business circumstances and methods of operations and accounting. It also provides a statement of your progress towards full-compliance of the IATI standard that you have agreed to reach.

Without actually trying it out myself, this is a good indication that the IATI asks publishers to provide a description of the data set they are registering. This suggests that the data sources themselves are not necessarily standardised (i.e. parsing the data may depend on the publisher supplying a sufficient data description to the application consuming the API).


In response to the comment, you could take a look at their API documentation to get an idea of how their system works. They use CKAN, which:

...is built with Python on the backend and Javascript on the frontend, and uses the Pylons web framework and SQLAlchemy as its ORM. Its database engine is PostgreSQL and its search is powered by SOLR. It has a modular architecture that allows extensions to be developed to provide additional features such as harvesting or data upload.

ckan is open source, so you should able to look a the source code. In fact, it looks like you can get the IATI source code too. From what I can see, it's much as you would expect - a web server wrapped around a database. How you choose to interface with the data IATI provides depends on the application you want to make, but it sounds like you are describing a pretty standard web stack which hosts whatever user interfaces to the data you want to provide (including an editor, if you want). For more info, I would definitely recommend visiting the IATI technical mailing list. As an organisation which seems committed to open data, one of the best things to do is to contact them directly. If they like what you're attempting, they may be able to help you out in all sorts of ways.

  • Thanks. We're building a system mirroring IATI that aid organizations can use to draft and update their IATI files before formally publishing them. We want to build a similar referencing mechanism coupled with an editor, understanding how the sub-components interact will help us task our developers.
    – Brent
    Jul 1, 2015 at 0:27
  • I've added a response.
    – Orphid
    Jul 1, 2015 at 7:56

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.