The Maximo JSON REST API is how you should go about doing this. Documentation can be found here: https://developer.ibm.com/static/site-id/155/maximodev/restguide/Maximo_Nextgen_REST_API.html
One of the things I would recommend when creating the object structure is to use the newer "Exclude Attributes Mode". This is a checkbox on the object in the object structures application which makes it so only attributes that are explicitly included are available. Maximo has always had a way to exclude attributes, but as new attributes were added (during an upgrade or as part of a customization) someone needed to remember to go and exclude it on all the object structures that referenced that object. This helps avoid that problem entirely.
You can also use (and should use) the oslc.select in the REST API to restrict the attributes to what you want. That way you ensure you only pull attributes needed for your use case.
To handle the row filter, you would either build a filter using oslc.where or referencing a saved query if you want to manage it inside of Maximo. That link above covers how to reference it and setup queries to be usable via the object structure. Note certain filters (such as site access restrictions) will be applied automatically since this is going through the MBO framework.
------------------------------
Steven Shull
Director of Development
Projetech Inc
Cincinnati OH
------------------------------