Changes feed
Changes feed is the best option for synchronization with the SAS monitoring database.
Let’s use feed=changes
to get monitors sorted by changes ascending:
GET /api/2.5/monitorings?feed=changes&limit=3&opt_fields=reasons HTTP/1.0
Authorization: Basic YnJva2VyOmJyb2tlcg==
Host: audit-api-sandbox.prozorro.gov.ua
Response: 200 OK
Content-Type: application/json
Set-Cookie: SESSION=eyJvcGVyYXRpb25fdGltZSI6IHsiJHRpbWVzdGFtcCI6IHsidCI6IDE3MDg1Mjc4ODIsICJpIjogMjF9fSwgImNsdXN0ZXJfdGltZSI6IHsiY2x1c3RlclRpbWUiOiB7IiR0aW1lc3RhbXAiOiB7InQiOiAxNzA4NTI3ODgyLCAiaSI6IDIxfX0sICJzaWduYXR1cmUiOiB7Imhhc2giOiB7IiRiaW5hcnkiOiB7ImJhc2U2NCI6ICJZK20wMm1PWjQ4S00vcXNsUlFXdzlza1Z4dzQ9IiwgInN1YlR5cGUiOiAiMDAifX0sICJrZXlJZCI6IDczMzMxNzk4MzkyNDA3MzI2Nzd9fX0=; Path=/
{
"data": [
{
"reasons": [
"indicator"
],
"dateModified": "2018-01-01T02:00:01+02:00",
"id": "98e6dfb91a774304a13f1318cc3aa7f5"
},
{
"reasons": [
"indicator"
],
"dateModified": "2018-01-01T02:00:02+02:00",
"id": "25ddf7194b7f490b8e0b36aa995869be"
},
{
"reasons": [
"indicator"
],
"dateModified": "2018-01-01T02:00:03+02:00",
"id": "c21408cf32824b098f59c9681d33f68a"
}
],
"next_page": {
"offset": 1708527882.051,
"path": "/api/2.5/monitorings?limit=3&opt_fields=reasons&offset=1708527882.051",
"uri": "http://audit-api-sandbox.prozorro.gov.ua/api/2.5/monitorings?limit=3&opt_fields=reasons&offset=1708527882.051"
}
}
The response contains next_page
. Every time we use it, we get monitors with changes that haven’t been synced yet.
GET /api/2.5/monitorings?limit=3&opt_fields=reasons&offset=1708527882.051 HTTP/1.0
Authorization: Basic YnJva2VyOmJyb2tlcg==
Host: audit-api-sandbox.prozorro.gov.ua
Response: 200 OK
Content-Type: application/json
Set-Cookie: SESSION=eyJvcGVyYXRpb25fdGltZSI6IHsiJHRpbWVzdGFtcCI6IHsidCI6IDE3MDg1Mjc4ODIsICJpIjogMjF9fSwgImNsdXN0ZXJfdGltZSI6IHsiY2x1c3RlclRpbWUiOiB7IiR0aW1lc3RhbXAiOiB7InQiOiAxNzA4NTI3ODgyLCAiaSI6IDIxfX0sICJzaWduYXR1cmUiOiB7Imhhc2giOiB7IiRiaW5hcnkiOiB7ImJhc2U2NCI6ICJZK20wMm1PWjQ4S00vcXNsUlFXdzlza1Z4dzQ9IiwgInN1YlR5cGUiOiAiMDAifX0sICJrZXlJZCI6IDczMzMxNzk4MzkyNDA3MzI2Nzd9fX0=; Path=/
{
"data": [
{
"reasons": [
"indicator"
],
"dateModified": "2018-01-01T02:00:04+02:00",
"id": "63d2d46084ef4f4a9462aec3305e6cb6"
},
{
"reasons": [
"indicator"
],
"dateModified": "2018-01-01T02:00:05+02:00",
"id": "a79d875188b34061bd1d88e3ecf1383e"
}
],
"next_page": {
"offset": 1708527882.162,
"path": "/api/2.5/monitorings?offset=1708527882.162&limit=3&opt_fields=reasons",
"uri": "http://audit-api-sandbox.prozorro.gov.ua/api/2.5/monitorings?offset=1708527882.162&limit=3&opt_fields=reasons"
},
"prev_page": {
"offset": 1708527882.107,
"path": "/api/2.5/monitorings?offset=1708527882.107&limit=3&opt_fields=reasons&descending=1",
"uri": "http://audit-api-sandbox.prozorro.gov.ua/api/2.5/monitorings?offset=1708527882.107&limit=3&opt_fields=reasons&descending=1"
}
}
Let’s proceed to the last page:
GET /api/2.5/monitorings?offset=1708527882.162&limit=3&opt_fields=reasons HTTP/1.0
Authorization: Basic YnJva2VyOmJyb2tlcg==
Host: audit-api-sandbox.prozorro.gov.ua
Response: 200 OK
Content-Type: application/json
Set-Cookie: SESSION=eyJvcGVyYXRpb25fdGltZSI6IHsiJHRpbWVzdGFtcCI6IHsidCI6IDE3MDg1Mjc4ODIsICJpIjogMjF9fSwgImNsdXN0ZXJfdGltZSI6IHsiY2x1c3RlclRpbWUiOiB7IiR0aW1lc3RhbXAiOiB7InQiOiAxNzA4NTI3ODgyLCAiaSI6IDIxfX0sICJzaWduYXR1cmUiOiB7Imhhc2giOiB7IiRiaW5hcnkiOiB7ImJhc2U2NCI6ICJZK20wMm1PWjQ4S00vcXNsUlFXdzlza1Z4dzQ9IiwgInN1YlR5cGUiOiAiMDAifX0sICJrZXlJZCI6IDczMzMxNzk4MzkyNDA3MzI2Nzd9fX0=; Path=/
{
"data": [],
"next_page": {
"offset": 1708527882.162,
"path": "/api/2.5/monitorings?offset=1708527882.162&limit=3&opt_fields=reasons",
"uri": "http://audit-api-sandbox.prozorro.gov.ua/api/2.5/monitorings?offset=1708527882.162&limit=3&opt_fields=reasons"
},
"prev_page": {
"offset": 1708527882.162,
"path": "/api/2.5/monitorings?offset=1708527882.162&limit=3&opt_fields=reasons&descending=1",
"uri": "http://audit-api-sandbox.prozorro.gov.ua/api/2.5/monitorings?offset=1708527882.162&limit=3&opt_fields=reasons&descending=1"
}
}
Since there are no results, let’s wait before we try it again:
GET /api/2.5/monitorings?offset=1708527882.162&limit=3&opt_fields=reasons HTTP/1.0
Authorization: Basic YnJva2VyOmJyb2tlcg==
Host: audit-api-sandbox.prozorro.gov.ua
Response: 200 OK
Content-Type: application/json
Set-Cookie: SESSION=eyJvcGVyYXRpb25fdGltZSI6IHsiJHRpbWVzdGFtcCI6IHsidCI6IDE3MDg1Mjc4ODIsICJpIjogMjh9fSwgImNsdXN0ZXJfdGltZSI6IHsiY2x1c3RlclRpbWUiOiB7IiR0aW1lc3RhbXAiOiB7InQiOiAxNzA4NTI3ODgyLCAiaSI6IDI4fX0sICJzaWduYXR1cmUiOiB7Imhhc2giOiB7IiRiaW5hcnkiOiB7ImJhc2U2NCI6ICJZK20wMm1PWjQ4S00vcXNsUlFXdzlza1Z4dzQ9IiwgInN1YlR5cGUiOiAiMDAifX0sICJrZXlJZCI6IDczMzMxNzk4MzkyNDA3MzI2Nzd9fX0=; Path=/
{
"data": [
{
"reasons": [
"indicator"
],
"dateModified": "2018-01-01T02:00:06+02:00",
"id": "943956c91fdf410e988ce95cc3c3a0f9"
}
],
"next_page": {
"offset": 1708527882.252,
"path": "/api/2.5/monitorings?offset=1708527882.252&limit=3&opt_fields=reasons",
"uri": "http://audit-api-sandbox.prozorro.gov.ua/api/2.5/monitorings?offset=1708527882.252&limit=3&opt_fields=reasons"
},
"prev_page": {
"offset": 1708527882.252,
"path": "/api/2.5/monitorings?offset=1708527882.252&limit=3&opt_fields=reasons&descending=1",
"uri": "http://audit-api-sandbox.prozorro.gov.ua/api/2.5/monitorings?offset=1708527882.252&limit=3&opt_fields=reasons&descending=1"
}
}
And the next page can either be empty again
GET /api/2.5/monitorings?offset=1708527882.252&limit=3&opt_fields=reasons HTTP/1.0
Authorization: Basic YnJva2VyOmJyb2tlcg==
Host: audit-api-sandbox.prozorro.gov.ua
Response: 200 OK
Content-Type: application/json
Set-Cookie: SESSION=eyJvcGVyYXRpb25fdGltZSI6IHsiJHRpbWVzdGFtcCI6IHsidCI6IDE3MDg1Mjc4ODIsICJpIjogMjh9fSwgImNsdXN0ZXJfdGltZSI6IHsiY2x1c3RlclRpbWUiOiB7IiR0aW1lc3RhbXAiOiB7InQiOiAxNzA4NTI3ODgyLCAiaSI6IDI4fX0sICJzaWduYXR1cmUiOiB7Imhhc2giOiB7IiRiaW5hcnkiOiB7ImJhc2U2NCI6ICJZK20wMm1PWjQ4S00vcXNsUlFXdzlza1Z4dzQ9IiwgInN1YlR5cGUiOiAiMDAifX0sICJrZXlJZCI6IDczMzMxNzk4MzkyNDA3MzI2Nzd9fX0=; Path=/
{
"data": [],
"next_page": {
"offset": 1708527882.252,
"path": "/api/2.5/monitorings?offset=1708527882.252&limit=3&opt_fields=reasons",
"uri": "http://audit-api-sandbox.prozorro.gov.ua/api/2.5/monitorings?offset=1708527882.252&limit=3&opt_fields=reasons"
},
"prev_page": {
"offset": 1708527882.252,
"path": "/api/2.5/monitorings?offset=1708527882.252&limit=3&opt_fields=reasons&descending=1",
"uri": "http://audit-api-sandbox.prozorro.gov.ua/api/2.5/monitorings?offset=1708527882.252&limit=3&opt_fields=reasons&descending=1"
}
}
or contain a monitor with new changes
GET /api/2.5/monitorings?offset=1708527882.252&limit=3&opt_fields=reasons HTTP/1.0
Authorization: Basic YnJva2VyOmJyb2tlcg==
Host: audit-api-sandbox.prozorro.gov.ua
Response: 200 OK
Content-Type: application/json
Set-Cookie: SESSION=eyJvcGVyYXRpb25fdGltZSI6IHsiJHRpbWVzdGFtcCI6IHsidCI6IDE3MDg1Mjc4ODIsICJpIjogMzV9fSwgImNsdXN0ZXJfdGltZSI6IHsiY2x1c3RlclRpbWUiOiB7IiR0aW1lc3RhbXAiOiB7InQiOiAxNzA4NTI3ODgyLCAiaSI6IDM1fX0sICJzaWduYXR1cmUiOiB7Imhhc2giOiB7IiRiaW5hcnkiOiB7ImJhc2U2NCI6ICJZK20wMm1PWjQ4S00vcXNsUlFXdzlza1Z4dzQ9IiwgInN1YlR5cGUiOiAiMDAifX0sICJrZXlJZCI6IDczMzMxNzk4MzkyNDA3MzI2Nzd9fX0=; Path=/
{
"data": [
{
"reasons": [
"indicator"
],
"dateModified": "2018-01-01T02:00:07+02:00",
"id": "2fdf48b54cea4839b5e89ec1dd8dca63"
}
],
"next_page": {
"offset": 1708527882.328,
"path": "/api/2.5/monitorings?offset=1708527882.328&limit=3&opt_fields=reasons",
"uri": "http://audit-api-sandbox.prozorro.gov.ua/api/2.5/monitorings?offset=1708527882.328&limit=3&opt_fields=reasons"
},
"prev_page": {
"offset": 1708527882.328,
"path": "/api/2.5/monitorings?offset=1708527882.328&limit=3&opt_fields=reasons&descending=1",
"uri": "http://audit-api-sandbox.prozorro.gov.ua/api/2.5/monitorings?offset=1708527882.328&limit=3&opt_fields=reasons&descending=1"
}
}