firstly, ceilometer api argument can be different between releases, so you should read the http://api.openstack.org/api-ref-telemetry.html (http://api.openstack.org/api-ref-tele...)
if you find that doc is not useful, then you can investigate and test for your own, the trick is use --debug option for command line interface, know as python-ceilometerclient, for example (i use devstack master)
ceilometer --debug statistics -m cpu -q x=y
here i use a wrong field for --query argument, which will cause a 400 error, that is what you need to see, because it will return a valid set of query field for you:
curl -i -X GET -H 'X-Auth-Token: real-token' -H 'Content-Type: application/json' -H 'Accept: application/json' -H 'User-Agent: python-ceilometerclient' http://192.168.0.206:8777/v2/meters/cpu/statistics?q.field=x&q.op=eq&q.type=&q.value=y
ceilometerclient.exc.HTTPBadRequest: HTTPBadRequest (HTTP 400) ERROR Unknown argument: "x": unrecognized field in query: [<query u'x'="" eq="" u'y'="" none="">], valid keys: set(['end', 'start', 'metaquery', 'meter', 'project', 'source', 'user', 'start_timestamp_op', 'resource', 'end_timestamp_op', 'message_id'])
then I can format my rest request with start=2013-03-24T12:00:00 and end=2013-03-25T00:00:00 such as:
http://192.168.0.206:8777/v2/meters/cpu/statistics?q.field=start&q.op=eq&q.type=&q.value=2014-03-24T12%3A00%3A00&q.field=end&q.op=eq&q.value=2014-03-25T00%3A00%3A00
note that the ':' has been encoded to %3A
I'd suggest you to show some of the code you're thinking of using so others can give you suggestions. Don't expect here people problems instead of you.