Overview
========
The Open Procurement API is the only interface to Open Procurement database
that is core unit of `Open Procurement `_
infrastructure.
The Open Procurement API is a `REST
`_-ful
interface that provides programmatic access to Tender database of Open
Procurement system. It provides predictable URLs for accessing resources,
and uses built-in HTTP features to receive commands and return responses.
This makes it easy to communicate with.
The API accepts `JSON `_ or form-encoded content in
requests. It returns JSON content in all of its responses, including
errors. Only the UTF-8 character encoding is supported for both requests
and responses.
Conventions
-----------
All API POST and PUT requests expect a top-level object with a single
element in it named `data`. Successful responses will mirror this format.
The data element should itself be an object, containing the parameters for
the request. In the case of creating a new tender, these are the fields we
want to set on the tender itself.
If the request was successful, we will get a response code of `201`
indicating the object was created. That response will have a data field at
its top level, which will contain complete information on the new tender,
including its ID.
If something went wrong during the request, we'll get a different status
code and the JSON returned will have an `errors` field at the top level
containing a list of problems. We look at the first one and print out its
message.
Main responsibilities
---------------------
Business logic
--------------
Project status
--------------
The source repository for this project is on GitHub: https://github.com/ProzorroUKR/openprocurement.api
You can leave feedback by raising a new issue on the `issue tracker
`_ (GitHub
registration necessary).
Next steps
----------
You might find it helpful to look at the :ref:`tutorial`, or the
:ref:`reference`.