Skip to content

Report status

GET /api/report/appraisal/<report_uuid>/status

Tells whether the generation of a report is complete. Use it to know when the data blocks and the PDF of an asynchronously created report can be requested.

Example Request

curl --location 'https://insights.immobiliare.it/api/report/appraisal/95318f91-dbc4-4a20-ae71-e511ef6282cf/status' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <token>'

Request Fields

Field Required Default Description Type Example Notes
report_uuid yes UUID of the report, returned by the creation string 95318f91-dbc4-4a20-ae71-e511ef6282cf Path parameter

JSON keys in the response:

  • status: true when the report is ready, false while it is still being generated.

Not ready is reported as 400

The endpoint does not answer 200 for both outcomes. While the report is still being generated it replies with HTTP 400 and _metadata.status set to 400, carrying {"status": false} and a null message; only once the report is ready does it reply 200 with {"status": true}.

A pending report is therefore indistinguishable from a genuine error by status code alone. Do not treat the 400 as a failure and do not abort the polling on it: read data.status to decide, and use the presence of _metadata.error_code to tell a real error apart, since the pending response does not carry one.

Polling the generation

The report is normally ready within a minute of the creation, but the time depends on the property and on the load of the service.

  1. Create the report, see Create report, and keep the returned uuid.
  2. Poll this endpoint until data.status is true.
  3. Request the data blocks, or the PDF.

Requesting a data block before the report is ready answers 400 with error_code DATA_NOT_EXIST:

{
  "_metadata": {
    "error_code": "DATA_NOT_EXIST",
    "message": "There has been a problem",
    "query": {},
    "status": 400
  },
  "data": {}
}

Prefer the callback when you can

Polling is the fallback. If your integration can expose an HTTP endpoint, declare a callback.url on the creation instead and let the service notify you once the generation is complete.

Example Response

HTTP 200

{
  "_metadata": {
    "message": "",
    "query": {},
    "status": 200
  },
  "data": {
    "status": true
  }
}

HTTP 400

{
  "_metadata": {
    "message": null,
    "query": {},
    "status": 400
  },
  "data": {
    "status": false
  }
}