---
updatedAt: 2026-04-23T05:40:30.000Z
---

# Retrieves all activities

# OpenAPI definition

```json
{
  "openapi": "3.0.1",
  "info": {
    "title": "API V1",
    "version": "v1"
  },
  "paths": {
    "/activities": {
      "get": {
        "summary": "Retrieves all activities",
        "tags": [
          "Activities"
        ],
        "parameters": [
          {
            "name": "_limit",
            "in": "query",
            "description": "Limits the number of items returned. Default is 20, maximum is 100.",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 20
            }
          },
          {
            "name": "_cursor",
            "in": "query",
            "description": "Keyset pagination cursor. Pass the meta.next_cursor value from the previous response to fetch the next (older) page. This is the recommended way to paginate; it stays fast at any depth. Records are returned newest first (descending id).",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "_offset",
            "in": "query",
            "description": "Legacy offset pagination. Supported for shallow offsets only (max 10000); deeper offsets return 400 because they do not scale. Use _cursor instead.",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 0
            }
          },
          {
            "name": "_since",
            "in": "query",
            "description": "UTC timestamp in seconds since the Unix epoch to filter activities created after this time.",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 0
            }
          },
          {
            "name": "_include_count",
            "in": "query",
            "description": "When true, meta.total_count is populated with the full result count. Off by default because counting an entire history is expensive. Omit it for normal paging.",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "user_id",
            "in": "query",
            "description": "User ID to filter activities for a specific user. Must be an active person visible to this API key; otherwise the request returns 422.",
            "required": false,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "successful",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Activity"
                      }
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "total_count": {
                          "type": "integer",
                          "nullable": true,
                          "description": "Only populated when _include_count=true, otherwise null."
                        },
                        "limit": {
                          "type": "integer"
                        },
                        "offset": {
                          "type": "integer"
                        },
                        "cursor": {
                          "type": "integer",
                          "nullable": true,
                          "description": "The _cursor value used for this request, if any."
                        },
                        "next_cursor": {
                          "type": "integer",
                          "nullable": true,
                          "description": "Pass this back as _cursor to fetch the next page. Null when there are no more pages."
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "user_id does not match an active person visible to this API key",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "servers": [
    {
      "url": "https://api.solidarity.tech/v1",
      "variables": {
        "defaultHost": {
          "default": "api.solidarity.tech/v1"
        }
      }
    }
  ],
  "security": [
    {
      "BearerAuth": []
    }
  ],
  "components": {
    "securitySchemes": {
      "BearerAuth": {
        "type": "http",
        "scheme": "bearer"
      }
    },
    "schemas": {
      "Activity": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "user_id": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "actionable_id": {
            "type": "integer"
          },
          "actionable_type": {
            "type": "string"
          },
          "action": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer"
              },
              "user_id": {
                "type": "integer"
              },
              "agent_user_id": {
                "type": "integer",
                "nullable": true
              },
              "field_type": {
                "type": "string",
                "nullable": true
              },
              "old_value": {
                "type": "string",
                "nullable": true
              },
              "new_value": {
                "type": "string",
                "nullable": true
              },
              "data_import_id": {
                "type": "integer",
                "nullable": true
              },
              "created_at": {
                "type": "string",
                "format": "date-time"
              },
              "updated_at": {
                "type": "string",
                "format": "date-time"
              }
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      }
    }
  }
}
```