---
updatedAt: 2025-07-30T12:13:54.000Z
agentTools:
  projectIndex: https://developers.happeo.com/llms.txt
---

# Index Groups

Returns new data since the last update if there is any.

# OpenAPI definition

```json
{
  "openapi": "3.0.1",
  "info": {
    "version": "1.0.0",
    "title": "Search Data Service",
    "description": "Exposes Happeo searchable content for Posts, Comments, Channels, Pages, Page groups, Users and Groups and principal data for Users and Groups."
  },
  "components": {
    "parameters": {
      "pageSize": {
        "in": "query",
        "name": "pageSize",
        "required": false,
        "schema": {
          "type": "integer",
          "description": "defines the maximum number of items to be returned if not greater than internal limitation."
        }
      },
      "byteSize": {
        "in": "query",
        "name": "byteSize",
        "required": false,
        "schema": {
          "type": "integer",
          "description": "defines the maximum number of bytes to be returned if not greater than internal limitation."
        }
      }
    },
    "securitySchemes": {
      "ApiKeyAuth": {
        "type": "apiKey",
        "in": "header",
        "name": "x-happeo-apikey"
      }
    },
    "schemas": {
      "PaginationLinks": {
        "type": "object",
        "properties": {
          "_links": {
            "type": "object",
            "properties": {
              "first": {
                "type": "string",
                "format": "uri-template",
                "description": "fetch a batch from the beginning."
              },
              "next": {
                "type": "string",
                "format": "uri-template",
                "description": "empty if no new data found."
              }
            }
          }
        }
      },
      "PermissionsItem": {
        "type": "object",
        "description": "Channel or Page or Page Group members or all in organisation domain.",
        "properties": {
          "members": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "Represents a reference to the User, Group object. For now it is referenced through the User/Group.internalId property, but in the near future it will be replaced by User/Group.id (GUID). Be prepared to support both when the change will be released.",
              "format": "urn"
            }
          },
          "allInDomain": {
            "type": "boolean",
            "description": "Everyone in the organisation domain."
          }
        }
      },
      "PageGroupTranslationItem": {
        "type": "object",
        "description": "Page group translated item details.",
        "properties": {
          "internalId": {
            "type": "string",
            "description": "Represents the global unique identifier of the entity. Format {pageGroupURN}?locale={lang}.",
            "format": "urn"
          },
          "language": {
            "type": "string",
            "description": "Language of the content."
          },
          "name": {
            "type": "string",
            "description": "Page group name in this language."
          },
          "description": {
            "type": "string",
            "description": "Page group description in this language."
          }
        }
      },
      "Identity": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Represents the global unique identifier of the entity. This GUID is temporary unavabile because we are in a period of transition from unique identifiers to GUID.",
            "format": "urn"
          },
          "internalId": {
            "type": "string",
            "deprecated": true,
            "description": "Represents the internal unique identifier of the entity. It is deprecated because in the near future it will be replaced by id which will be a GUID. Format {urn:happeo:post:{identifier}}.",
            "format": "urn"
          },
          "visible": {
            "type": "boolean",
            "description": "false when entity was deleted."
          }
        }
      },
      "Entity": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Identity"
          },
          {
            "type": "object",
            "properties": {
              "updatedMillis": {
                "type": "number",
                "description": "Timestamp in milliseconds since the Unix epoch representing when the post was updated."
              },
              "createdMillis": {
                "type": "number",
                "description": "Timestamp in milliseconds since the Unix epoch representing when the post was published."
              },
              "additionalProperties": {
                "type": "object",
                "additionalProperties": true,
                "description": "This will be used for future properties."
              }
            }
          }
        ]
      },
      "PageGroup": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Entity"
          },
          {
            "type": "object",
            "properties": {
              "ownerId": {
                "type": "string",
                "description": "Represents a reference to the User object. For now it is referenced through the User.internalId property, but in the near future it will be replaced by User.id (GUID). Be prepared to support both when the change will be released.",
                "format": "urn"
              },
              "description": {
                "type": "string",
                "description": "The description of the page group in its default language.",
                "deprecated": true
              },
              "primaryContent": {
                "$ref": "#/components/schemas/PageGroupTranslationItem"
              },
              "translatedContents": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PageGroupTranslationItem"
                },
                "description": "Translated content can be removed at any time completely."
              },
              "permissions": {
                "$ref": "#/components/schemas/PermissionsItem"
              }
            }
          }
        ]
      },
      "PageGroupsResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PaginationLinks"
          },
          {
            "type": "object",
            "properties": {
              "items": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PageGroup"
                }
              }
            }
          }
        ]
      }
    }
  },
  "security": [
    {
      "ApiKeyAuth": []
    }
  ],
  "paths": {
    "/search-data/content/page-groups": {
      "description": "Get page group data for search.",
      "parameters": [
        {
          "$ref": "#/components/parameters/byteSize"
        },
        {
          "$ref": "#/components/parameters/pageSize"
        },
        {
          "name": "Accept",
          "in": "header",
          "required": true,
          "schema": {
            "type": "string",
            "enum": [
              "application/vnd.happeo.search-data.content.page-group-list+json"
            ]
          }
        }
      ],
      "get": {
        "summary": "Index Groups",
        "description": "Returns new data since the last update if there is any.",
        "responses": {
          "200": {
            "description": "The list of updated data since the last call.",
            "content": {
              "application/vnd.happeo.search-data.content.page-group-list+json": {
                "schema": {
                  "$ref": "#/components/schemas/PageGroupsResponse"
                }
              }
            }
          }
        }
      }
    }
  },
  "servers": [
    {
      "url": "https://api.happeo.com"
    }
  ]
}
```