Fund That Flip Activity Log API
The Activity Log API from Fund That Flip — 2 operation(s) for activity log.
The Activity Log API from Fund That Flip — 2 operation(s) for activity log.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/fund-that-flip:fund-that-flip-activity-log-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: FlipperForce Public Activity Log API
version: 0.0.10
description: '# FlipperForce Public API • Version 1
## How do I request an API key?'
servers:
- url: https://tools.flipperforce.com/api/v1
security:
- PublicApiBearerAuth: []
tags:
- name: Activity Log
paths:
/workspace/{workspace}/activity-log/list:
get:
operationId: v1.workspace.activity-log.list
description: 'Activity Log is a record of what actions have been performed within a Workspace by its Users. This is the best way to discover recent activity that has occurred in a Workspace.
While not every action in the software is logged here, it includes important activity across most software tools.
Results use cursor-based pagination and are ordered by `performed_at` with the most recent displaying first. Use `links.next` to fetch the next page of results.
The total number of records matching the search filter parameters is returned in `meta.total_count` and is useful for reporting purposes.
## Search Filters
Use the Activity Log filters endpoint to discover Projects, Users and Activity Types usable as filter values.
Submit filters as query string parameters:
* performed_at
* project_uuids
* user_uuids
* activity_types
Filters are additive and are applied using AND semantics:
```text
(filter1 AND filter2 AND ...)
```
Filter values `project_uuids`, `user_uuids`, and `activity_types` use OR semantics:
```text
(
project_uuids IN (...)
AND user_uuids IN (...)
AND activity_types IN (...)
)
```
## Search Filters - performed_at for querying by time
`performed_at` format follows RFC 3339 using second precision and a timezone. For example, for example `2026-06-01T00:00:00Z`.
Times in UTC timezone end in `Z`. Specify timezones by using UTC offsets such as `2026-05-31T19:00:00-04:00` for Eastern Daylight Time.
Each timestamp requires a timezone.
Search values are normalized to UTC and results are returned as UTC.
## Example: Filter by multiple Projects and Activity Types
`project_uuids[]` and `activity_types[]` filters support finding multiple values. Like `(project1 OR project2) AND (type1 OR type2)`.
You can find logs associated with multiple Project when the Activity Type is either `project.created` or `project.stage.updated`.
```text
GET /api/v1/workspace/{workspace}/activity-log/list?project_uuids[]=9d0e1f23-4567-489a-bcde-f0123456789a&project_uuids[]=dff54a48-2113-44c5-be0c-a3a9f84c25e7&activity_types[]=project.created&activity_types[]=project.stage.updated
```
## Example: Find activity performed at or after July 1, 2026 at 12:00 a.m. EDT
Set an inclusive lower bound using `performed_at[gte]` (greater-than or equal to). `-04:00` is the timezone offset for Eastern Daylight Time:
```text
GET /api/v1/workspace/{workspace}/activity-log/list?performed_at[gte]=2026-07-01T00:00:00-04:00
```
## Example: Find activity performed before July 1, 2026 at 12:00 a.m. EDT
Set an exclusive upper bound using `performed_at[lt]` (less-than). `-04:00` is the timezone offset for Eastern Daylight Time:
```text
GET /api/v1/workspace/{workspace}/activity-log/list?performed_at[lt]=2026-07-01T00:00:00-04:00
```
## Example: Find activity performed in July 2026 (EDT)
Set a lower bound (`performed_at[gte]`) and upper bound (`performed_at[lt]`) to find activity within a single month. Notice the upper bound (exclusive) is next month August 1 at 12:00am:
```text
GET /api/v1/workspace/{workspace}/activity-log/list?performed_at[gte]=2026-07-01T00:00:00-04:00&performed_at[lt]=2026-08-01T00:00:00-04:00
```'
summary: List
tags:
- Activity Log
parameters:
- name: per_page
in: query
description: Number of records to return at a time.
schema:
type: integer
default: 20
minimum: 1
maximum: 100
- name: performed_at[gte]
in: query
description: Return Activity Log entries performed at or after this second (inclusive). Use an RFC 3339 timestamp with a timezone, such as `2026-06-01T00:00:00Z`. Explicit offsets such as `2026-05-31T19:00:00-04:00` (for EDT) are accepted and normalized to UTC.
schema:
type: string
- name: performed_at[lt]
in: query
description: Return Activity Log entries performed before this second (exclusive). Use an RFC 3339 timestamp with a timezone, such as `2026-07-01T00:00:00Z`. Explicit offsets such as `2026-05-31T19:00:00-04:00` (for EDT) are accepted and normalized to UTC.
schema:
type: string
- name: project_uuids[]
in: query
description: Include one or more times to find Activity for a Workspace Project. Pass repeated values like `project_uuids[]=2f7c5034-25f8-45f3-a1fc-2df5c9af1fd2&project_uuids[]=02e7f93a-33da-4dba-82a6-a0a56aadb7e4`.
schema:
type: array
items:
type: string
- name: user_uuids[]
in: query
description: Include one or more times to find Activity for a Workspace User. Pass repeated values like `user_uuids[]=uuid-a&user_uuids[]=uuid-b`.
schema:
type: array
items:
type: string
- name: activity_types[]
in: query
description: Include one or more times to find specific types of Activity.
schema:
type: array
items:
type: string
- name: cursor
in: query
schema:
type: string
- name: workspace
in: path
required: true
description: Workspace UUID
schema:
type: string
format: uuid
responses:
'200':
description: Paginated set of `Activity Log`
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/Activity_Log_List'
links:
type: object
properties:
first:
type:
- string
- 'null'
last:
type:
- string
- 'null'
prev:
type:
- string
- 'null'
next:
type:
- string
- 'null'
required:
- first
- last
- prev
- next
meta:
type: object
properties:
path:
type:
- string
- 'null'
description: Base path for paginator generated URLs.
per_page:
type: integer
description: Number of items shown per page.
minimum: 0
next_cursor:
type:
- string
- 'null'
description: The "cursor" that points to the next set of items.
prev_cursor:
type:
- string
- 'null'
description: The "cursor" that points to the previous set of items.
total_count:
type: integer
description: Number of records matching the request filters before pagination.
required:
- path
- per_page
- next_cursor
- prev_cursor
- total_count
required:
- data
- links
- meta
'401':
$ref: '#/components/responses/AuthenticationException'
'422':
$ref: '#/components/responses/ValidationException'
'403':
description: When the authenticated User Account is forbidden from accessing the content or software features
content:
application/json:
schema:
type: object
properties:
message:
type: string
description: Human-readable description of why access was not allowed
reason:
type:
- string
- 'null'
description: 'Machine-readable code for why access was not allowed. Possible values:
* `UNKNOWN` - Access Forbidden
* `UNSUPPORTED_CLIENT` - Unsupported client.
* `SUBSCRIPTION_MISSING` - A Subscription is required. Visit the application website to manage the Subscription.
* `SUBSCRIPTION_PAYMENT_DUE` - A paid Subscription is required. Visit the application website to manage the Subscription.
* `SUBSCRIPTION_PLAN_UNSUPPORTED_FEATURE` - The Subscription Plan does not support using this Software Feature.
* `FEATURE_ACCESS_DENIED` - Your account within this Workspace is not allowed to use this Software Feature. Contact the Workspace Owner to request access.
* `PROJECT_ACCESS_DENIED` - Your account is not allowed to access this Project. Contact the Workspace Owner to request access.
* `PROJECT_ARCHIVED` - This Project is Archived and cannot be accessed. You must restore this Project to Active Status to use it.
* `WORKSPACE_ACCESS_DENIED` - You do not have an account within this Workspace.
* `WORKSPACE_SELECTION_MISSING` - You must select a Workspace before making this request.
'
enum:
- UNKNOWN
- UNSUPPORTED_CLIENT
- SUBSCRIPTION_MISSING
- SUBSCRIPTION_PAYMENT_DUE
- SUBSCRIPTION_PLAN_UNSUPPORTED_FEATURE
- FEATURE_ACCESS_DENIED
- PROJECT_ACCESS_DENIED
- PROJECT_ARCHIVED
- WORKSPACE_ACCESS_DENIED
- WORKSPACE_SELECTION_MISSING
- null
/workspace/{workspace}/activity-log/filters:
get:
operationId: v1.workspace.activity-log.filters
description: 'List the Project, User, and Activity Type values accepted by the Activity Log: List endpoint.
Projects returned are those with at least 1 record in the Activity Log.
Users returned include past and current Workspace Users, even those with no activity in the Activity Log.
Activity Types returned are those with at least 1 record in the Activity Log.'
summary: Filters
tags:
- Activity Log
parameters:
- name: workspace
in: path
required: true
description: Workspace UUID
schema:
type: string
format: uuid
responses:
'200':
description: '`Activity Log Filters`'
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/Activity_Log_Filters'
required:
- data
'401':
$ref: '#/components/responses/AuthenticationException'
'403':
description: When the authenticated User Account is forbidden from accessing the content or software features
content:
application/json:
schema:
type: object
properties:
message:
type: string
description: Human-readable description of why access was not allowed
reason:
type:
- string
- 'null'
description: 'Machine-readable code for why access was not allowed. Possible values:
* `UNKNOWN` - Access Forbidden
* `UNSUPPORTED_CLIENT` - Unsupported client.
* `SUBSCRIPTION_MISSING` - A Subscription is required. Visit the application website to manage the Subscription.
* `SUBSCRIPTION_PAYMENT_DUE` - A paid Subscription is required. Visit the application website to manage the Subscription.
* `SUBSCRIPTION_PLAN_UNSUPPORTED_FEATURE` - The Subscription Plan does not support using this Software Feature.
* `FEATURE_ACCESS_DENIED` - Your account within this Workspace is not allowed to use this Software Feature. Contact the Workspace Owner to request access.
* `PROJECT_ACCESS_DENIED` - Your account is not allowed to access this Project. Contact the Workspace Owner to request access.
* `PROJECT_ARCHIVED` - This Project is Archived and cannot be accessed. You must restore this Project to Active Status to use it.
* `WORKSPACE_ACCESS_DENIED` - You do not have an account within this Workspace.
* `WORKSPACE_SELECTION_MISSING` - You must select a Workspace before making this request.
'
enum:
- UNKNOWN
- UNSUPPORTED_CLIENT
- SUBSCRIPTION_MISSING
- SUBSCRIPTION_PAYMENT_DUE
- SUBSCRIPTION_PLAN_UNSUPPORTED_FEATURE
- FEATURE_ACCESS_DENIED
- PROJECT_ACCESS_DENIED
- PROJECT_ARCHIVED
- WORKSPACE_ACCESS_DENIED
- WORKSPACE_SELECTION_MISSING
- null
components:
schemas:
Activity_Log_Target:
type: object
properties:
type:
type: string
description: Stable machine-readable resource type, such as `project` or `project_status`.
uuid:
type:
- string
- 'null'
description: Public resource identifier, or null when the target does not support locating by UUID in the API.
name:
type:
- string
- 'null'
description: Display name captured for the activity.
links:
description: URLs for Public API resources related to this target.
$ref: '#/components/schemas/Activity_Log_Target_Links'
required:
- type
- uuid
- name
- links
title: Activity Log Target
Activity_Log_Filters:
type: object
properties:
projects:
type: array
description: Projects referenced by visible Activity Log history and available to the account.
items:
$ref: '#/components/schemas/Activity_Log_Project_Filter'
users:
type: array
description: Current Workspace Users and historical actors, including current Users without Activity Log history.
items:
$ref: '#/components/schemas/Activity_Log_User_Filter'
activity_types:
type: array
description: Activity Type values present in visible Workspace history and accepted by `activity_types[]`.
items:
type: string
required:
- projects
- users
- activity_types
title: Activity Log Filters
Activity_Log_Actor:
type: object
properties:
uuid:
type: string
description: Public User identifier.
name:
type: string
description: User display name.
required:
- uuid
- name
title: Activity Log Actor
Activity_Log_Target_Links:
type: object
properties:
self:
type:
- string
- 'null'
description: GET URL for the target, or null when no GET-by-UUID endpoint is available.
required:
- self
title: Activity Log Target Links
Activity_Log_User_Filter:
type: object
properties:
uuid:
type: string
description: Public User identifier accepted by `user_uuids[]`.
label:
type: string
description: User's full name.
required:
- uuid
- label
title: Activity Log User Filter
Activity_Log:
type: object
properties:
uuid:
type: string
description: Public identifier.
activity_type:
type: string
description: Machine-readable Activity Type value.
performed_at:
type: string
description: 'Timestamp when the activity happened in ISO 8601 Zulu format.
Example: `2026-06-07T16:20:00Z`'
performed_by:
anyOf:
- description: User who performed the activity. `uuid` is the User's public identifier.
$ref: '#/components/schemas/Activity_Log_Actor'
- type: 'null'
project:
anyOf:
- description: Project associated with the activity, when the activity belongs to one.
$ref: '#/components/schemas/Activity_Log_Project_Context'
- type: 'null'
message:
type: string
description: Short summary of the activity that occurred. Exact wording may change and should not be parsed as structured data.
targets:
type: array
description: Resources directly affected by the activity. A null UUID means the target does not support locating by UUID in the API.
items:
$ref: '#/components/schemas/Activity_Log_Target'
details:
type: object
description: Additional fields useful without making another API request. Exact properties are intentionally undocumented and may change. Fields may differ even for activity of the same type. Treat fields and values as optional.
required:
- uuid
- activity_type
- performed_at
- performed_by
- project
- message
- targets
- details
title: Activity Log
Activity_Log_Project_Context:
type: object
properties:
uuid:
type: string
description: Public Project identifier.
name:
type: string
description: Project display name.
required:
- uuid
- name
title: Activity Log Project Context
Activity_Log_List:
type: array
items:
$ref: '#/components/schemas/Activity_Log'
title: Activity Log List
Activity_Log_Project_Filter:
type: object
properties:
uuid:
type: string
description: Public Project identifier accepted by `project_uuids[]`.
label:
type: string
description: Project name.
required:
- uuid
- label
title: Activity Log Project Filter
responses:
AuthenticationException:
description: Unauthenticated
content:
application/json:
schema:
type: object
properties:
message:
type: string
description: Error overview.
required:
- message
ValidationException:
description: Validation error
content:
application/json:
schema:
type: object
properties:
message:
type: string
description: Errors overview.
errors:
type: object
description: A detailed description of each field that failed validation.
additionalProperties:
type: array
items:
type: string
required:
- message
- errors
securitySchemes:
PublicApiBearerAuth:
type: http
description: 'Use the Public API key provided by FlipperForce as a Bearer token. Send the key exactly as provided in the Authorization header: `Authorization: Bearer <api-key>`.'
scheme: bearer
bearerFormat: FlipperForce Public API key