ESG
Entities

Entities ESG Events Statistics

Get number of active events by period for one entity.

GET
https://api.textreveal.com/v3/entities/{entity_id}/esg/events/stats

If an event lasts for several days, it will be counted separately for each day.
This explains the differences in count between month and day aggregations.
A single event that lasts from the first day of the month to the last will be counted as 1 for that month, but will return ~30 results in a aggregation by day.

Request

Parameters

  • entity_id*uuid

    Permanent ID of the entity

    Example: "753c48d6-23c8-5fb0-9230-b099898452b5"
  • sizeinteger

    Number of records per page

    Default: 10Range: [1, 1000]
  • search_afterstring

    search_after field value from the previous page

  • datedate (operator)

    Filters events whose last_activity is after the minimum bound and whose start_date is before the maximum bound.

    Example: "between:2022-01-01;2022-01-02"
  • periodstring (enum)

    Group results by period.

    Example: with period=week, the result will contain a value per week. If no event occurred during the week, the value will be 0.

    Default: "all"Values: "all", "day", "week", "month", "quarter", "year"
  • return_emptyboolean

    If true, the result will contain a period entry even if no event occurred during the period (with score=0).

  • category(string (enum))[]

    Filter by category.

    Values: "E", "S", "G"
  • sub_category(string (enum))[]

    Filter by a sub category.

    Values: "Animal Welfare", "Atmospheric Pollution", "Biodiversity And Ecosystems", "Climate Change", "Energy & Natural Resources Management", "Environmental Misreporting", "Food Waste", "Industrial Accidents & Physical Risk", "Land And Soil ... 
  • contentstring[]

    Search for keywords inside the title and summary.

    Note: symbols are ignored in the query, if you use hello@world, the query will be hello world, accentuated letters are preserved.

    Example: word will match WORD, words and any conjugated forms such as wording.

    However, it will not match keyword. To match both terms, you must add each one separately.

    Example: hard drive will return result mentioning hard drives but also hard disk drives, but will not mention document that match drive only. To match those you'll have to search them separately.

Response

Response - 200

Number of active events by period.

  • data*object[]

    Number of active events by period in the given range.

  • size*integer

    Number of records per page requested.

    Example: 1
  • has_next*boolean

    True if there are more records available.

    Example: true
  • count*integer

    Number of records returned in the current page.

    Example: 1
  • search_after*string | null

    Cursor for next page.

Response
{
  "data": [
    {
      "period_start_date": "2025-05-06",
      "period_end_date": "2025-05-13",
      "count": 27,
      "score": {
        "1": 10,
        "2": 4,
        "3": 7,
        "4": 0,
        "5": 6
      }
    }
  ],
  "size": 1,
  "has_next": true,
  "count": 1,
  "search_after": "string"
}

Error

Error - 400

Bad request

  • message*string

    Error message.

    Example: "The server returned an unexpected response"
  • code*integer

    Error code.

    Example: 400
  • reason*string (enum)

    Error reason.

    Values: "invalid", "timeout", "offline", "unknown", "not_found", "unauthorized", "forbidden", "internal", "too_many_requests"
  • errorsobject[]

    Possible error causes, like query params, headers or body.

Response
{
  "message": "The server returned an unexpected response",
  "code": 400,
  "reason": "invalid",
  "errors": [
    {
      "message": "Expected number, received string",
      "field": "size",
      "reason": "invalid_type"
    }
  ]
}

Error - 403

Not authorized

  • message*string
    Example: "Not authorized to access this resource"
  • code*number

    Error code.

  • reason*string
Response
{
  "message": "Not authorized to access this resource",
  "code": 0,
  "reason": "string"
}

Error - 404

No entity found

  • message*string
    Example: "[record] not found."
  • code*number

    Error code.

  • reason*string
Response
{
  "message": "[record] not found.",
  "code": 0,
  "reason": "string"
}