Only this pageAll pages
Powered by GitBook
1 of 22

API Reference

API OVERVIEW

Loading...

Loading...

Loading...

Loading...

APONO

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

API Authentication

Generate an API Token

  1. Log in to the Apono App or User Portal.

  2. Click the Profile icon in the bottom left corner.

  3. Click Settings and then Personal API Token to view your API tokens.

You can also access the API tokens page directly via the following links, depending on your platform: Admin or Portal.

  1. Click the Add API Token button to generate a new token.

  2. Give the new token a name and click Generate New Token.

Record Your API Tokens in a Safe Place. This is the only time that the unencrypted token is displayed.

Use the API Token

When using any Apono API endpoint, you will be asked to authenticate with one of your tokens. Add this to your request header:

--header 'authorization: Bearer <your-api-token>'

If you are accessing endpoints under the /user/ path, the end user must generate the authenticated token. These endpoints are designed for actions that reflect the permissions and context of the individual user making the request.

To enable API token generation for end users, please contact Apono Support at [email protected].

This capability must be explicitly enabled for your organization before end users can generate their tokens.

Getting Started with the Apono API

Overview

Welcome to the Apono Public API reference! This guide will help you start integrating Apono into your workflows. Using the API, you can easily create Access Flows, add Integrations, create and manage access requests, export activity logs, and more.

Getting Started

All API requests are made over HTTPS and must be authenticated. Responses are returned in JSON format.

Authentication

Apono’s API uses token-based authentication. To authenticate, include the following header in each request:

Authorization: Bearer <your-api-token>

If authentication is not provided or fails, a 401 "Unauthorized" response will be returned.

HTTP/1.1 401 Unauthorized

{
    "status": "401",
    "code": "Unauthorized"
}

You can create and manage your API tokens on the API Tokens page of your Apono app or user portal. Refer to API Authentication for step-by-step instructions on generating your API tokens.

Base URL

All requests should be made to the following base URL:

https://api.apono.io/api/

Headers

Include the following headers with all API calls:

Content-Type: application/json
Authorization: Bearer <your-api-token>

OpenAPI Specification

For teams that want to integrate Apono’s API into internal tools, generate client SDKs, or validate request structures, we provide a full OpenAPI (Swagger) spec.

View the OpenAPI spec

(You can import this directly into tools like Postman, Insomnia, or Swagger UI.)

Support

Need help? Reach out to us at [email protected]

Next Steps

  • Generate an API Token

  • Explore the Full API Reference

Activity Reports

Connectors

Users

Access Sessions

Available Access

Attributes

Groups

Access Bundles

Access Flows

Integrations

Activity

Bundles

Identities

Access Scopes

Access Requests

Discovering Identity Attribute Types

Identity attribute types define how Apono identifies and evaluates identities in access flows. These types represent built-in identities (like users or groups) or custom attributes integrated from context integrations.

The available types vary depending on your account configuration and connected identity sources. To view the exact list of supported types, run the discovery script below.

import os
import requests

API_URL = "https://api.apono.io/api/admin/v1/attributes"

def get_auth_headers() -> dict:
    token = os.getenv("APONO_TOKEN")
    if not token:
        raise RuntimeError("Missing APONO_TOKEN environment variable")
    return {
        "Authorization": f"Bearer {token}",
        "Accept": "*/*"
    }

def fetch_unique_attribute_types() -> set:
    headers = get_auth_headers()
    attribute_types = set()
    next_page_token = None

    while True:
        params = {}
        if next_page_token:
            params["page_token"] = next_page_token
        response = requests.get(API_URL, headers=headers, params=params)
        response.raise_for_status()
        data = response.json()

        for attribute_item in data.get("items", []):
            attr_type = attribute_item.get("type")
            if attr_type:
                attribute_types.add(attr_type)

        next_page_token = data.get("pagination", {}).get("next_page_token")
        if not next_page_token:
            break

    return attribute_types

if __name__ == "__main__":
    print(sorted(fetch_unique_attribute_types()))

Delegated Access Requests

New Endpoints

As part of the continuous development of Apono’s Public API, we are introducing new Admin and End User endpoints.

Why Should You Try It Out?

We’ve released new API endpoints designed to bring greater alignment with Apono’s platform capabilities. These improvements make it easier to automate access management and use Apono.

Key Improvements

Access Management

Access Flows

  • Support for advanced access flows with richer logic for requestors, approvers, and new settings aligned with what’s available in Apono’s UI, so you can replicate complex access governance policies entirely via API.

Access Scopes

  • Access Scopes Support: Define and use access scopes directly within bundles and access flows, allowing you to save and use dynamic, reusable groups of resources.

RBAC User Roles Representation

  • User roles in API responses now match Apono’s native role-based access control (RBAC) model, helping you to enforce role-based access and approval policies programmatically.

Apono Group Management

  • Query, create, delete, and search Apono groups, removing the need for manual group setup or user assignment in your access flows.

End-User Access Requests

  • Enable self-service access request workflows by giving admins the ability to extend access capabilities to their end users. This allows you to build internal tools or automation that enable users to independently request, manage, and track access.

Improved Usability

Flexible Name-Based Filtering

  • Use GET requests to filter objects based on names

  • Filter expressions now support: contains, starts with, and ends with for all name fields. This enables more intuitive searches, like name=*prod* to look for all prod instances.

Name-Based Object Creation

  • Apono’s objects (like Access Flows and Bundles) can now be created using object names instead of IDs, simplifying scripting and automation by eliminating the need for extra lookups.

Human-Readable API Responses

  • API responses now include both IDs and corresponding names. This makes responses easier to interpret, debug, and integrate into tools without additional lookups.

Better Documentation

  • Comprehensive documentation accompanies all new endpoints, making implementation and troubleshooting faster and easier.

How to Identify New Endpoints

You can identify new endpoints by the following characteristics:

  • Versioning: Paths include higher version numbers (e.g., /v2, /v3, /v4) reflecting new functionality.

  • Path Prefixes: Look for new path prefixes like: /admin/ and /user/

List of New Endpoints

Access Flows:

  • GET https://api.apono.io/api/admin/v2/access-flows

  • POST https://api.apono.io/api/admin/v2/access-flows

  • GET https://api.apono.io/api/admin/v2/access-flows/{id}

  • PUT https://api.apono.io/api/admin/v2/access-flows/{id}

  • DELETE https://api.apono.io/api/admin/v2/access-flows/{id}

Bundles:

  • GET https://api.apono.io/api/admin/v2/bundles

  • POST https://api.apono.io/api/admin/v2/bundles

  • GET https://api.apono.io/api/admin/v2/bundles/{id}

  • PUT https://api.apono.io/api/admin/v2/bundles/{id}

  • DELETE https://api.apono.io/api/admin/v2/bundles/{id}

Access Scopes:

  • GET https://api.apono.io/api/admin/v1/access-scopes

  • POST https://api.apono.io/api/admin/v1/access-scopes

  • GET https://api.apono.io/api/admin/v1/access-scopes/{id}

  • PUT https://api.apono.io/api/admin/v1/access-scopes/{id}

  • DELETE https://api.apono.io/api/admin/v1/access-scopes/{id}

Connectors:

  • GET https://api.apono.io/api/admin/v3/connectors

  • GET https://api.apono.io/api/admin/v3/connectors/{id}

  • PUT https://api.apono.io/api/admin/v3/connectors/{id}

  • DELETE https://api.apono.io/api/admin/v3/connectors/{id}

Integrations:

  • GET https://api.apono.io/api/admin/v4/integrations

  • POST https://api.apono.io/api/admin/v4/integrations

  • GET https://api.apono.io/api/admin/v4/integrations/{id}

  • PUT https://api.apono.io/api/admin/v4/integrations/{id}

  • DELETE https://api.apono.io/api/admin/v4/integrations/{id}

Groups:

  • GET https://api.apono.io/api/admin/v1/groups

  • POST https://api.apono.io/api/admin/v1/groups

  • GET https://api.apono.io/api/admin/v1/groups/{id}

  • DELETE https://api.apono.io/api/admin/v1/groups/{id}

  • GET https://api.apono.io/api/admin/v1/groups/{id}/members

  • PUT https://api.apono.io/api/admin/v1/groups/{id}/members

  • PUT https://api.apono.io/api/admin/v1/groups/{id}/members/{email}

  • DELETE https://api.apono.io/api/admin/v1/groups/{id}/members/{email}

  • PUT https://api.apono.io/api/admin/v1/groups/{id}/name

Users:

  • GET https://api.apono.io/api/admin/v3/users

  • GET https://api.apono.io/api/admin/v3/users/{id}

Available Access:

  • GET https://api.apono.io/api/user/v1/available-access/bundles

  • GET https://api.apono.io/api/user/v1/available-access/entitlements

Access Request:

  • GET https://api.apono.io/api/user/v4/access-requests

  • POST https://api.apono.io/api/user/v4/access-requests

  • GET https://api.apono.io/api/user/v4/access-requests/{id}

  • GET https://api.apono.io/api/user/v4/access-requests/{id}/entitlements

  • POST https://api.apono.io/api/user/v4/access-requests/{id}/request-again

  • POST https://api.apono.io/api/user/v4/access-requests/{id}/revoke

Access Session:

  • GET https://api.apono.io/api/user/v1/access-sessions

  • GET https://api.apono.io/api/user/v1/access-sessions/{id}

  • GET https://api.apono.io/api/user/v1/access-sessions/{id}/access-details

  • POST https://api.apono.io/api/user/v1/access-sessions/{id}/reset-credentials

List Activity Reports

get
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Query parameters
limitinteger · int32OptionalDefault: 100
namestring | nullableOptional

The name of the report. Supports wildcard () for partial matches - use * for contains, prefix for starts with, *suffix for ends with

page_tokenstring | nullableOptional
Responses
200

OK

application/json
get
/api/admin/v1/activity-reports
GET /api/admin/v1/activity-reports HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

OK

{
  "items": [
    {
      "id": "text",
      "name": "text",
      "fields": [
        "text"
      ],
      "filters": {
        "requestor_source_ids": [
          "text"
        ],
        "grantee_source_ids": [
          "text"
        ],
        "grantee_identity_types": [
          "text"
        ],
        "integration_ids": [
          "text"
        ],
        "permission_names": [
          "text"
        ],
        "resource_ids": [
          "text"
        ],
        "resource_types": [
          "text"
        ],
        "statuses": [
          "text"
        ],
        "trigger_types": [
          "text"
        ],
        "access_flow_ids": [
          "text"
        ]
      },
      "timeframe": {
        "absolute": {
          "start_date": "2022-03-10T16:15:50Z",
          "end_date": "2022-03-10T16:15:50Z"
        },
        "relative": {
          "last": 1,
          "unit": "text",
          "rounded": true
        }
      },
      "schedule": {
        "cron_expression": "text",
        "recipients": [
          "text"
        ]
      },
      "format": "text",
      "creation_date": "2022-03-10T16:15:50Z",
      "update_date": "2022-03-10T16:15:50Z"
    }
  ],
  "pagination": {
    "next_page_token": "text"
  }
}

Create Activity Report

post
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
namestringRequired

Display name of the report. Must be unique.

fieldsstring[] | nullableOptional

List of fields to include in the report. Possible values: request_id, request_date, request_grant_date, request_revoke_date, requestor_name, requestor_email, grantee_name, grantee_id, grantee_type, integration, resources, resource_type, permissions, approver_names, approver_emails, approver_types, justification, status, approver_reason, resources_status, trigger_type, access_flow, bundle_name.

scheduleall of | nullableOptional
formatstring | nullableOptional

Format of the report. Possible values: csv, pdf. Default is csv

Responses
200

OK

application/json
post
/api/admin/v1/activity-reports
POST /api/admin/v1/activity-reports HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 542

{
  "name": "text",
  "fields": [
    "text"
  ],
  "filters": {
    "requestor_source_ids": [
      "text"
    ],
    "grantee_source_ids": [
      "text"
    ],
    "grantee_identity_types": [
      "text"
    ],
    "integration_ids": [
      "text"
    ],
    "permission_names": [
      "text"
    ],
    "resource_ids": [
      "text"
    ],
    "resource_types": [
      "text"
    ],
    "statuses": [
      "text"
    ],
    "trigger_types": [
      "text"
    ],
    "access_flow_ids": [
      "text"
    ]
  },
  "timeframe": {
    "absolute": {
      "start_date": "2022-03-10T16:15:50Z",
      "end_date": "2022-03-10T16:15:50Z"
    },
    "relative": {
      "last": 1,
      "unit": "text",
      "rounded": true
    }
  },
  "schedule": {
    "cron_expression": "text",
    "recipients": [
      "text"
    ]
  },
  "format": "text"
}
200

OK

{
  "id": "text",
  "name": "text",
  "fields": [
    "text"
  ],
  "filters": {
    "requestor_source_ids": [
      "text"
    ],
    "grantee_source_ids": [
      "text"
    ],
    "grantee_identity_types": [
      "text"
    ],
    "integration_ids": [
      "text"
    ],
    "permission_names": [
      "text"
    ],
    "resource_ids": [
      "text"
    ],
    "resource_types": [
      "text"
    ],
    "statuses": [
      "text"
    ],
    "trigger_types": [
      "text"
    ],
    "access_flow_ids": [
      "text"
    ]
  },
  "timeframe": {
    "absolute": {
      "start_date": "2022-03-10T16:15:50Z",
      "end_date": "2022-03-10T16:15:50Z"
    },
    "relative": {
      "last": 1,
      "unit": "text",
      "rounded": true
    }
  },
  "schedule": {
    "cron_expression": "text",
    "recipients": [
      "text"
    ]
  },
  "format": "text",
  "creation_date": "2022-03-10T16:15:50Z",
  "update_date": "2022-03-10T16:15:50Z"
}

Get Activity Report

get
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
idstringRequired
Responses
200

OK

application/json
get
/api/admin/v1/activity-reports/{id}
GET /api/admin/v1/activity-reports/{id} HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

OK

{
  "id": "text",
  "name": "text",
  "fields": [
    "text"
  ],
  "filters": {
    "requestor_source_ids": [
      "text"
    ],
    "grantee_source_ids": [
      "text"
    ],
    "grantee_identity_types": [
      "text"
    ],
    "integration_ids": [
      "text"
    ],
    "permission_names": [
      "text"
    ],
    "resource_ids": [
      "text"
    ],
    "resource_types": [
      "text"
    ],
    "statuses": [
      "text"
    ],
    "trigger_types": [
      "text"
    ],
    "access_flow_ids": [
      "text"
    ]
  },
  "timeframe": {
    "absolute": {
      "start_date": "2022-03-10T16:15:50Z",
      "end_date": "2022-03-10T16:15:50Z"
    },
    "relative": {
      "last": 1,
      "unit": "text",
      "rounded": true
    }
  },
  "schedule": {
    "cron_expression": "text",
    "recipients": [
      "text"
    ]
  },
  "format": "text",
  "creation_date": "2022-03-10T16:15:50Z",
  "update_date": "2022-03-10T16:15:50Z"
}

Update Access Flow

put
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
idstringRequired
Body
namestringRequired

Display name of the report. Must be unique.

fieldsstring[] | nullableOptional

List of fields to include in the report. Possible values: request_id, request_date, request_grant_date, request_revoke_date, requestor_name, requestor_email, grantee_name, grantee_id, grantee_type, integration, resources, resource_type, permissions, approver_names, approver_emails, approver_types, justification, status, approver_reason, resources_status, trigger_type, access_flow, bundle_name.

scheduleall of | nullableOptional
formatstring | nullableOptional

Format of the report. Possible values: csv, pdf. Default is csv

Responses
200

OK

application/json
put
/api/admin/v1/activity-reports/{id}
PUT /api/admin/v1/activity-reports/{id} HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 542

{
  "name": "text",
  "fields": [
    "text"
  ],
  "filters": {
    "requestor_source_ids": [
      "text"
    ],
    "grantee_source_ids": [
      "text"
    ],
    "grantee_identity_types": [
      "text"
    ],
    "integration_ids": [
      "text"
    ],
    "permission_names": [
      "text"
    ],
    "resource_ids": [
      "text"
    ],
    "resource_types": [
      "text"
    ],
    "statuses": [
      "text"
    ],
    "trigger_types": [
      "text"
    ],
    "access_flow_ids": [
      "text"
    ]
  },
  "timeframe": {
    "absolute": {
      "start_date": "2022-03-10T16:15:50Z",
      "end_date": "2022-03-10T16:15:50Z"
    },
    "relative": {
      "last": 1,
      "unit": "text",
      "rounded": true
    }
  },
  "schedule": {
    "cron_expression": "text",
    "recipients": [
      "text"
    ]
  },
  "format": "text"
}
200

OK

{
  "id": "text",
  "name": "text",
  "fields": [
    "text"
  ],
  "filters": {
    "requestor_source_ids": [
      "text"
    ],
    "grantee_source_ids": [
      "text"
    ],
    "grantee_identity_types": [
      "text"
    ],
    "integration_ids": [
      "text"
    ],
    "permission_names": [
      "text"
    ],
    "resource_ids": [
      "text"
    ],
    "resource_types": [
      "text"
    ],
    "statuses": [
      "text"
    ],
    "trigger_types": [
      "text"
    ],
    "access_flow_ids": [
      "text"
    ]
  },
  "timeframe": {
    "absolute": {
      "start_date": "2022-03-10T16:15:50Z",
      "end_date": "2022-03-10T16:15:50Z"
    },
    "relative": {
      "last": 1,
      "unit": "text",
      "rounded": true
    }
  },
  "schedule": {
    "cron_expression": "text",
    "recipients": [
      "text"
    ]
  },
  "format": "text",
  "creation_date": "2022-03-10T16:15:50Z",
  "update_date": "2022-03-10T16:15:50Z"
}

Delete Activity Report

delete
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
idstringRequired
Responses
200

OK

application/json
delete
/api/admin/v1/activity-reports/{id}
DELETE /api/admin/v1/activity-reports/{id} HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

OK

{
  "message": "text"
}

List Connectors

get
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Query parameters
limitinteger · int32OptionalDefault: 100
page_tokenstring | nullableOptional
statusstring[] | nullableOptional
Responses
200

OK

application/json
get
/api/admin/v3/connectors
GET /api/admin/v3/connectors HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

OK

{
  "items": [
    {
      "id": "text",
      "name": "text",
      "status": "text",
      "version": "text",
      "last_connected": "text",
      "is_latest_version": true,
      "cloud_provider_type": "text",
      "sessions": [
        {
          "id": "text",
          "metadata": {
            "cloud_provider_metadata": {
              "kubernetes_type": "text",
              "kubernetes_version": "text",
              "is_kubernetes_admin": true,
              "local_deploy": true,
              "aws_account_id": "text",
              "region": "text",
              "availability_zone": "text",
              "project_id": "text",
              "organization_id": "text",
              "zone": "text",
              "subscription_id": "text",
              "resource_group": "text",
              "is_azure_admin": true
            },
            "connector_version": "text"
          },
          "last_connected_time": "text"
        }
      ]
    }
  ],
  "pagination": {
    "next_page_token": "text"
  }
}

Get Connector

get
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
idstringRequired
Responses
200

OK

application/json
get
/api/admin/v3/connectors/{id}
GET /api/admin/v3/connectors/{id} HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

OK

{
  "id": "text",
  "name": "text",
  "status": "text",
  "version": "text",
  "last_connected": "text",
  "is_latest_version": true,
  "cloud_provider_type": "text",
  "sessions": [
    {
      "id": "text",
      "metadata": {
        "cloud_provider_metadata": {
          "kubernetes_type": "text",
          "kubernetes_version": "text",
          "is_kubernetes_admin": true,
          "local_deploy": true,
          "aws_account_id": "text",
          "region": "text",
          "availability_zone": "text",
          "project_id": "text",
          "organization_id": "text",
          "zone": "text",
          "subscription_id": "text",
          "resource_group": "text",
          "is_azure_admin": true
        },
        "connector_version": "text"
      },
      "last_connected_time": "text"
    }
  ]
}

Update Connector

put
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
idstringRequired
Body
namestringRequired

Unique, alphanumeric, user-friendly name used to identify the connector

Responses
200

OK

application/json
put
/api/admin/v3/connectors/{id}
PUT /api/admin/v3/connectors/{id} HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 15

{
  "name": "text"
}
200

OK

{
  "id": "text",
  "name": "text",
  "status": "text",
  "version": "text",
  "last_connected": "text",
  "is_latest_version": true,
  "cloud_provider_type": "text",
  "sessions": [
    {
      "id": "text",
      "metadata": {
        "cloud_provider_metadata": {
          "kubernetes_type": "text",
          "kubernetes_version": "text",
          "is_kubernetes_admin": true,
          "local_deploy": true,
          "aws_account_id": "text",
          "region": "text",
          "availability_zone": "text",
          "project_id": "text",
          "organization_id": "text",
          "zone": "text",
          "subscription_id": "text",
          "resource_group": "text",
          "is_azure_admin": true
        },
        "connector_version": "text"
      },
      "last_connected_time": "text"
    }
  ]
}

Delete Connector

delete
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
idstringRequired
Responses
204

No Content

delete
/api/admin/v3/connectors/{id}
DELETE /api/admin/v3/connectors/{id} HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
204

No Content

No content

list connectors

get
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Responses
200

OK

application/json
get
/api/v2/connectors
GET /api/v2/connectors HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

OK

[
  {
    "connector_id": "text",
    "last_connected": 1,
    "status": "text"
  }
]

List Users

get
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Query parameters
first_namestring | nullableOptional

Filter users by first name. Supports wildcard () for partial matches - use * for contains, prefix for starts with, *suffix for ends with

last_namestring | nullableOptional

Filter users by last name. Supports wildcard () for partial matches - use * for contains, prefix for starts with, *suffix for ends with

limitinteger · int32OptionalDefault: 100
page_tokenstring | nullableOptional
rolestring[] | nullableOptional
source_integration_idstring | nullableOptional
source_integration_namestring | nullableOptional
Responses
200

OK

application/json
get
/api/admin/v3/users
GET /api/admin/v3/users HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

OK

{
  "items": [
    {
      "id": "text",
      "email": "text",
      "email_aliases": [
        "text"
      ],
      "first_name": "text",
      "last_name": "text",
      "active": true,
      "roles": [
        "text"
      ],
      "source_integration_id": "text",
      "source_integration_name": "text",
      "attributes": {
        "ANY_ADDITIONAL_PROPERTY": "text"
      }
    }
  ],
  "pagination": {
    "next_page_token": "text"
  }
}

Get User

get
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
idstringRequired
Responses
200

OK

application/json
get
/api/admin/v3/users/{id}
GET /api/admin/v3/users/{id} HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

OK

{
  "id": "text",
  "email": "text",
  "email_aliases": [
    "text"
  ],
  "first_name": "text",
  "last_name": "text",
  "active": true,
  "roles": [
    "text"
  ],
  "source_integration_id": "text",
  "source_integration_name": "text",
  "attributes": {
    "ANY_ADDITIONAL_PROPERTY": "text"
  }
}

list users

get
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Responses
200

OK

application/json
get
/api/v2/users
GET /api/v2/users HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

OK

{
  "data": [
    {
      "id": "text",
      "email": "text",
      "first_name": "text",
      "last_name": "text",
      "active": true
    }
  ],
  "pagination": {
    "total": 1,
    "limit": 1,
    "offset": 1
  }
}

get user by Id or Email

get
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
idstringRequired
Responses
200

OK

application/json
get
/api/v2/users/{id}
GET /api/v2/users/{id} HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

OK

{
  "id": "text",
  "email": "text",
  "first_name": "text",
  "last_name": "text",
  "active": true
}

List Access Sessions

get
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Query parameters
integration_idstring[] | nullableOptional
limitinteger · int32OptionalDefault: 100
page_tokenstring | nullableOptional
request_idsstring[] | nullableOptional
Responses
200

OK

application/json
get
/api/user/v1/access-sessions
GET /api/user/v1/access-sessions HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

OK

{
  "items": [
    {
      "id": "text",
      "name": "text",
      "request_ids": [
        "text"
      ],
      "integration": {
        "id": "text",
        "name": "text"
      },
      "credentials_status": "text",
      "can_reset_credentials": true
    }
  ],
  "pagination": {
    "next_page_token": "text"
  }
}

Get Access Session

get
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
idstringRequired
Responses
200

OK

application/json
get
/api/user/v1/access-sessions/{id}
GET /api/user/v1/access-sessions/{id} HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

OK

{
  "id": "text",
  "name": "text",
  "request_ids": [
    "text"
  ],
  "integration": {
    "id": "text",
    "name": "text"
  },
  "credentials_status": "text",
  "can_reset_credentials": true
}

Get Session Access Details

get
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
idstringRequired
Responses
200

OK

application/json
get
/api/user/v1/access-sessions/{id}/access-details
GET /api/user/v1/access-sessions/{id}/access-details HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

OK

{
  "instructions": "text",
  "custom_admin_message": "text",
  "parameters": {
    "ANY_ADDITIONAL_PROPERTY": "text"
  },
  "cli": "text",
  "link": {
    "url": "text",
    "title": "text"
  }
}

Reset Session Credentials

post
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
idstringRequired
Responses
200

OK

application/json
post
/api/user/v1/access-sessions/{id}/reset-credentials
POST /api/user/v1/access-sessions/{id}/reset-credentials HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

OK

{
  "message": "text"
}

List Available Bundles

get
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Query parameters
granteestring | nullableOptional

Filters available bundles by the specified user, accepts ID or email. Defaults to the authenticated user

limitinteger · int32OptionalDefault: 100
namestring[] | nullableOptional

Filter available bundles by name. Supports wildcard () for partial matches - use * for contains, prefix for starts with, *suffix for ends with

page_tokenstring | nullableOptional
Responses
200

OK

application/json
get
/api/user/v1/available-access/bundles
GET /api/user/v1/available-access/bundles HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

OK

{
  "items": [
    {
      "id": "text",
      "name": "text"
    }
  ],
  "pagination": {
    "next_page_token": "text"
  }
}

List Available Entitlements

get
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Query parameters
granteestring | nullableOptional

Filters available access options by the specified user, accepts ID or email. Defaults to the authenticated user

integration_idstring | nullableOptional
integration_namestring | nullableOptional
limitinteger · int32OptionalDefault: 100
page_tokenstring | nullableOptional
permission_namestring[] | nullableOptional
resource_namestring | nullableOptional
resource_type_idstring[] | nullableOptional
Responses
200

OK

application/json
get
/api/user/v1/available-access/entitlements
GET /api/user/v1/available-access/entitlements HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

OK

{
  "items": [
    {
      "integration": {
        "id": "text",
        "name": "text"
      },
      "resource": {
        "id": "text",
        "source_id": "text",
        "type": {
          "id": "text",
          "label": "text"
        },
        "name": "text"
      },
      "permission": {
        "id": "text",
        "source_id": "text",
        "name": "text"
      }
    }
  ],
  "pagination": {
    "next_page_token": "text"
  }
}

List Attributes

get
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Query parameters
limitinteger · int32OptionalDefault: 100
page_tokenstring | nullableOptional
searchstring | nullableOptional

Free text to search values of attributes. Supports wildcard () for partial matches - use * for contains, prefix for starts with, *suffix for ends with

source_integration_referencestring | nullableOptional
typestring | nullableOptional
Responses
200

OK

application/json
get
/api/admin/v1/attributes
GET /api/admin/v1/attributes HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

OK

{
  "items": [
    {
      "type": "text",
      "value": "text",
      "source_id": "text",
      "source_integration_id": "text",
      "source_integration_name": "text"
    }
  ],
  "pagination": {
    "next_page_token": "text"
  }
}

List Groups

get
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Query parameters
limitinteger · int32OptionalDefault: 100
namestring | nullableOptional

Filter groups by name. Supports wildcard () for partial matches - use * for contains, prefix for starts with, *suffix for ends with

page_tokenstring | nullableOptional
Responses
200

OK

application/json
get
/api/admin/v1/groups
GET /api/admin/v1/groups HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

OK

{
  "items": [
    {
      "id": "text",
      "name": "text",
      "source_id": "text",
      "source_integration_id": "text",
      "source_integration_name": "text"
    }
  ],
  "pagination": {
    "next_page_token": "text"
  }
}

Create Group

post
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
namestringRequired

Display name of the group

members_emailsstring[]Required

Email addresses to assign as members of the group

Responses
200

OK

application/json
post
/api/admin/v1/groups
POST /api/admin/v1/groups HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 41

{
  "name": "text",
  "members_emails": [
    "text"
  ]
}
200

OK

{
  "id": "text",
  "name": "text",
  "source_id": "text",
  "source_integration_id": "text",
  "source_integration_name": "text"
}

Get Group

get
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
idstringRequired
Responses
200

OK

application/json
get
/api/admin/v1/groups/{id}
GET /api/admin/v1/groups/{id} HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

OK

{
  "id": "text",
  "name": "text",
  "source_id": "text",
  "source_integration_id": "text",
  "source_integration_name": "text"
}

Delete Group

delete
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
idstringRequired
Responses
204

No Content

delete
/api/admin/v1/groups/{id}
DELETE /api/admin/v1/groups/{id} HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
204

No Content

No content

Get Group Members

get
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
idstringRequired
Query parameters
limitinteger · int32OptionalDefault: 100
page_tokenstring | nullableOptional
Responses
200

OK

application/json
get
/api/admin/v1/groups/{id}/members
GET /api/admin/v1/groups/{id}/members HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

OK

{
  "items": [
    {
      "email": "text"
    }
  ],
  "pagination": {
    "next_page_token": "text"
  }
}

Update Group Members

put
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
idstringRequired
Body
members_emailsstring[]Required

Email addresses to assign as members of the group

Responses
204

No Content

put
/api/admin/v1/groups/{id}/members
PUT /api/admin/v1/groups/{id}/members HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 27

{
  "members_emails": [
    "text"
  ]
}
204

No Content

No content

Add Group Member

put
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
emailstringRequired
idstringRequired
Responses
204

No Content

put
/api/admin/v1/groups/{id}/members/{email}
PUT /api/admin/v1/groups/{id}/members/{email} HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
204

No Content

No content

Remove Group Member

delete
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
emailstringRequired
idstringRequired
Responses
204

No Content

delete
/api/admin/v1/groups/{id}/members/{email}
DELETE /api/admin/v1/groups/{id}/members/{email} HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
204

No Content

No content

Update Group

put
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
idstringRequired
Body
namestringRequired

Display name of the group

Responses
200

OK

application/json
put
/api/admin/v1/groups/{id}/name
PUT /api/admin/v1/groups/{id}/name HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 15

{
  "name": "text"
}
200

OK

{
  "id": "text",
  "name": "text",
  "source_id": "text",
  "source_integration_id": "text",
  "source_integration_name": "text"
}

List Access Bundles

get
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Responses
200

OK

application/json
get
/api/v1/access-bundles
GET /api/v1/access-bundles HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

OK

{
  "data": [
    {
      "id": "text",
      "name": "text",
      "integration_targets": [
        {
          "integration_id": "text",
          "resource_type": "text",
          "resource_tag_includes": [
            {
              "name": "text",
              "value": "text"
            }
          ],
          "resource_tag_excludes": [
            {
              "name": "text",
              "value": "text"
            }
          ],
          "permissions": [
            "text"
          ]
        }
      ]
    }
  ],
  "pagination": {
    "total": 1,
    "limit": 1,
    "offset": 1
  }
}

Create Access Bundle

post
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
namestringRequired
Responses
200

OK

application/json
post
/api/v1/access-bundles
POST /api/v1/access-bundles HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 225

{
  "name": "text",
  "integration_targets": [
    {
      "integration_id": "text",
      "resource_type": "text",
      "resource_tag_includes": [
        {
          "name": "text",
          "value": "text"
        }
      ],
      "resource_tag_excludes": [
        {
          "name": "text",
          "value": "text"
        }
      ],
      "permissions": [
        "text"
      ]
    }
  ]
}
200

OK

{
  "id": "text",
  "name": "text",
  "integration_targets": [
    {
      "integration_id": "text",
      "resource_type": "text",
      "resource_tag_includes": [
        {
          "name": "text",
          "value": "text"
        }
      ],
      "resource_tag_excludes": [
        {
          "name": "text",
          "value": "text"
        }
      ],
      "permissions": [
        "text"
      ]
    }
  ]
}

Get Access Bundle

get
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
idstringRequired
Responses
200

OK

application/json
get
/api/v1/access-bundles/{id}
GET /api/v1/access-bundles/{id} HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

OK

{
  "id": "text",
  "name": "text",
  "integration_targets": [
    {
      "integration_id": "text",
      "resource_type": "text",
      "resource_tag_includes": [
        {
          "name": "text",
          "value": "text"
        }
      ],
      "resource_tag_excludes": [
        {
          "name": "text",
          "value": "text"
        }
      ],
      "permissions": [
        "text"
      ]
    }
  ]
}

Delete Access Bundle

delete
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
idstringRequired
Responses
200

OK

application/json
delete
/api/v1/access-bundles/{id}
DELETE /api/v1/access-bundles/{id} HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

OK

{
  "message": "text"
}

Update Access Bundle

patch
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
idstringRequired
Body
namestring | nullableOptional
Responses
200

OK

application/json
patch
/api/v1/access-bundles/{id}
PATCH /api/v1/access-bundles/{id} HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 225

{
  "name": "text",
  "integration_targets": [
    {
      "integration_id": "text",
      "resource_type": "text",
      "resource_tag_includes": [
        {
          "name": "text",
          "value": "text"
        }
      ],
      "resource_tag_excludes": [
        {
          "name": "text",
          "value": "text"
        }
      ],
      "permissions": [
        "text"
      ]
    }
  ]
}
200

OK

{
  "id": "text",
  "name": "text",
  "integration_targets": [
    {
      "integration_id": "text",
      "resource_type": "text",
      "resource_tag_includes": [
        {
          "name": "text",
          "value": "text"
        }
      ],
      "resource_tag_excludes": [
        {
          "name": "text",
          "value": "text"
        }
      ],
      "permissions": [
        "text"
      ]
    }
  ]
}

List Access Flows

get
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Query parameters
limitinteger · int32OptionalDefault: 100
page_tokenstring | nullableOptional
Responses
200

OK

application/json
get
/api/admin/v2/access-flows
GET /api/admin/v2/access-flows HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

OK

{
  "items": [
    {
      "id": "text",
      "name": "text",
      "active": true,
      "trigger": "text",
      "requestors": {
        "logical_operator": "text",
        "conditions": [
          {
            "source_integration_id": "text",
            "source_integration_name": "text",
            "type": "text",
            "match_operator": "text",
            "values": [
              "text"
            ]
          }
        ]
      },
      "request_for": {
        "request_scopes": [
          "text"
        ],
        "grantees": {
          "logical_operator": "text",
          "conditions": [
            {
              "source_integration_id": "text",
              "source_integration_name": "text",
              "type": "text",
              "match_operator": "text",
              "values": [
                "text"
              ]
            }
          ]
        }
      },
      "access_targets": [
        {
          "integration": {
            "integration_id": "text",
            "integration_name": "text",
            "resource_type": "text",
            "permissions": [
              "text"
            ],
            "resources_scopes": [
              {
                "scope_mode": "text",
                "type": "text",
                "key": "text",
                "values": [
                  "text"
                ]
              }
            ]
          },
          "bundle": {
            "bundle_id": "text",
            "bundle_name": "text"
          },
          "access_scope": {
            "access_scope_id": "text",
            "access_scope_name": "text"
          }
        }
      ],
      "approver_policy": {
        "approval_mode": "text",
        "approver_groups": [
          {
            "logical_operator": "text",
            "approvers": [
              {
                "source_integration_id": "text",
                "source_integration_name": "text",
                "type": "text",
                "match_operator": "text",
                "values": [
                  "text"
                ]
              }
            ]
          }
        ]
      },
      "grant_duration_in_min": 1,
      "timeframe": {
        "start_time": "text",
        "end_time": "text",
        "days_of_week": [
          "MONDAY"
        ],
        "time_zone": "text"
      },
      "settings": {
        "justification_required": true,
        "require_approver_reason": true,
        "requestor_cannot_approve_himself": true,
        "require_mfa": true,
        "labels": [
          "text"
        ]
      },
      "creation_date": {
        "0": "2",
        "1": "0",
        "2": "2",
        "3": "5",
        "4": "-",
        "5": "1",
        "6": "2",
        "7": "-",
        "8": "0",
        "9": "8",
        "10": "T",
        "11": "0",
        "12": "1",
        "13": ":",
        "14": "2",
        "15": "2",
        "16": ":",
        "17": "0",
        "18": "2",
        "19": ".",
        "20": "8",
        "21": "8",
        "22": "7",
        "23": "Z"
      },
      "update_date": "text"
    }
  ],
  "pagination": {
    "next_page_token": "text"
  }
}

Create Access Flow

post

Note: Some fields are only applicable in self-serve access flows and are ignored or not required in automatic access flows. Refer to each field’s description to understand when it applies.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
namestringRequired

Display name of the access flow

activebooleanRequired

Activity state of the access flow (active or inactive)

triggerstringRequired

Event or action that triggers the access flow

request_forall of | nullableOptional
approver_policyall of | nullableOptional
grant_duration_in_mininteger · int32 | nullableOptional

Duration of access granted to the user, in minutes

timeframeall of | nullableOptional
request_for_othersbooleanRequired
Responses
200

OK

application/json
post
/api/admin/v2/access-flows
POST /api/admin/v2/access-flows HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 1179

{
  "name": "text",
  "active": true,
  "trigger": "text",
  "requestors": {
    "logical_operator": "text",
    "conditions": [
      {
        "source_integration_reference": "text",
        "type": "text",
        "match_operator": "text",
        "values": [
          "text"
        ]
      }
    ]
  },
  "request_for": {
    "request_scopes": [
      "text"
    ],
    "grantees": {
      "logical_operator": "text",
      "conditions": [
        {
          "source_integration_reference": "text",
          "type": "text",
          "match_operator": "text",
          "values": [
            "text"
          ]
        }
      ]
    }
  },
  "access_targets": [
    {
      "integration": {
        "integration_reference": "text",
        "resource_type": "text",
        "permissions": [
          "text"
        ],
        "resources_scopes": [
          {
            "scope_mode": "text",
            "type": "text",
            "key": "text",
            "values": [
              "text"
            ]
          }
        ]
      },
      "bundle": {
        "bundle_reference": "text"
      },
      "access_scope": {
        "access_scope_reference": "text"
      }
    }
  ],
  "approver_policy": {
    "approval_mode": "text",
    "approver_groups": [
      {
        "logical_operator": "text",
        "approvers": [
          {
            "source_integration_reference": "text",
            "type": "text",
            "match_operator": "text",
            "values": [
              "text"
            ]
          }
        ]
      }
    ]
  },
  "grant_duration_in_min": 1,
  "timeframe": {
    "start_time": "text",
    "end_time": "text",
    "days_of_week": [
      "MONDAY"
    ],
    "time_zone": "text"
  },
  "settings": {
    "justification_required": true,
    "require_approver_reason": true,
    "requestor_cannot_approve_himself": true,
    "require_mfa": true,
    "labels": [
      "text"
    ]
  },
  "request_for_others": true
}
200

OK

{
  "id": "text",
  "name": "text",
  "active": true,
  "trigger": "text",
  "requestors": {
    "logical_operator": "text",
    "conditions": [
      {
        "source_integration_id": "text",
        "source_integration_name": "text",
        "type": "text",
        "match_operator": "text",
        "values": [
          "text"
        ]
      }
    ]
  },
  "request_for": {
    "request_scopes": [
      "text"
    ],
    "grantees": {
      "logical_operator": "text",
      "conditions": [
        {
          "source_integration_id": "text",
          "source_integration_name": "text",
          "type": "text",
          "match_operator": "text",
          "values": [
            "text"
          ]
        }
      ]
    }
  },
  "access_targets": [
    {
      "integration": {
        "integration_id": "text",
        "integration_name": "text",
        "resource_type": "text",
        "permissions": [
          "text"
        ],
        "resources_scopes": [
          {
            "scope_mode": "text",
            "type": "text",
            "key": "text",
            "values": [
              "text"
            ]
          }
        ]
      },
      "bundle": {
        "bundle_id": "text",
        "bundle_name": "text"
      },
      "access_scope": {
        "access_scope_id": "text",
        "access_scope_name": "text"
      }
    }
  ],
  "approver_policy": {
    "approval_mode": "text",
    "approver_groups": [
      {
        "logical_operator": "text",
        "approvers": [
          {
            "source_integration_id": "text",
            "source_integration_name": "text",
            "type": "text",
            "match_operator": "text",
            "values": [
              "text"
            ]
          }
        ]
      }
    ]
  },
  "grant_duration_in_min": 1,
  "timeframe": {
    "start_time": "text",
    "end_time": "text",
    "days_of_week": [
      "MONDAY"
    ],
    "time_zone": "text"
  },
  "settings": {
    "justification_required": true,
    "require_approver_reason": true,
    "requestor_cannot_approve_himself": true,
    "require_mfa": true,
    "labels": [
      "text"
    ]
  },
  "creation_date": {
    "0": "2",
    "1": "0",
    "2": "2",
    "3": "5",
    "4": "-",
    "5": "1",
    "6": "2",
    "7": "-",
    "8": "0",
    "9": "8",
    "10": "T",
    "11": "0",
    "12": "1",
    "13": ":",
    "14": "2",
    "15": "2",
    "16": ":",
    "17": "0",
    "18": "2",
    "19": ".",
    "20": "8",
    "21": "8",
    "22": "7",
    "23": "Z"
  },
  "update_date": "text"
}

Get Access Flow

get
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
idstringRequired
Responses
200

OK

application/json
get
/api/admin/v2/access-flows/{id}
GET /api/admin/v2/access-flows/{id} HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

OK

{
  "id": "text",
  "name": "text",
  "active": true,
  "trigger": "text",
  "requestors": {
    "logical_operator": "text",
    "conditions": [
      {
        "source_integration_id": "text",
        "source_integration_name": "text",
        "type": "text",
        "match_operator": "text",
        "values": [
          "text"
        ]
      }
    ]
  },
  "request_for": {
    "request_scopes": [
      "text"
    ],
    "grantees": {
      "logical_operator": "text",
      "conditions": [
        {
          "source_integration_id": "text",
          "source_integration_name": "text",
          "type": "text",
          "match_operator": "text",
          "values": [
            "text"
          ]
        }
      ]
    }
  },
  "access_targets": [
    {
      "integration": {
        "integration_id": "text",
        "integration_name": "text",
        "resource_type": "text",
        "permissions": [
          "text"
        ],
        "resources_scopes": [
          {
            "scope_mode": "text",
            "type": "text",
            "key": "text",
            "values": [
              "text"
            ]
          }
        ]
      },
      "bundle": {
        "bundle_id": "text",
        "bundle_name": "text"
      },
      "access_scope": {
        "access_scope_id": "text",
        "access_scope_name": "text"
      }
    }
  ],
  "approver_policy": {
    "approval_mode": "text",
    "approver_groups": [
      {
        "logical_operator": "text",
        "approvers": [
          {
            "source_integration_id": "text",
            "source_integration_name": "text",
            "type": "text",
            "match_operator": "text",
            "values": [
              "text"
            ]
          }
        ]
      }
    ]
  },
  "grant_duration_in_min": 1,
  "timeframe": {
    "start_time": "text",
    "end_time": "text",
    "days_of_week": [
      "MONDAY"
    ],
    "time_zone": "text"
  },
  "settings": {
    "justification_required": true,
    "require_approver_reason": true,
    "requestor_cannot_approve_himself": true,
    "require_mfa": true,
    "labels": [
      "text"
    ]
  },
  "creation_date": {
    "0": "2",
    "1": "0",
    "2": "2",
    "3": "5",
    "4": "-",
    "5": "1",
    "6": "2",
    "7": "-",
    "8": "0",
    "9": "8",
    "10": "T",
    "11": "0",
    "12": "1",
    "13": ":",
    "14": "2",
    "15": "2",
    "16": ":",
    "17": "0",
    "18": "2",
    "19": ".",
    "20": "8",
    "21": "8",
    "22": "7",
    "23": "Z"
  },
  "update_date": "text"
}

Update Access Flow

put
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
idstringRequired
Body
namestringRequired

Display name of the access flow

activebooleanRequired

Activity state of the access flow (active or inactive)

triggerstringRequired

Event or action that triggers the access flow

request_forall of | nullableOptional
approver_policyall of | nullableOptional
grant_duration_in_mininteger · int32 | nullableOptional

Duration of access granted to the user, in minutes

timeframeall of | nullableOptional
request_for_othersbooleanRequired
Responses
200

OK

application/json
put
/api/admin/v2/access-flows/{id}
PUT /api/admin/v2/access-flows/{id} HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 1179

{
  "name": "text",
  "active": true,
  "trigger": "text",
  "requestors": {
    "logical_operator": "text",
    "conditions": [
      {
        "source_integration_reference": "text",
        "type": "text",
        "match_operator": "text",
        "values": [
          "text"
        ]
      }
    ]
  },
  "request_for": {
    "request_scopes": [
      "text"
    ],
    "grantees": {
      "logical_operator": "text",
      "conditions": [
        {
          "source_integration_reference": "text",
          "type": "text",
          "match_operator": "text",
          "values": [
            "text"
          ]
        }
      ]
    }
  },
  "access_targets": [
    {
      "integration": {
        "integration_reference": "text",
        "resource_type": "text",
        "permissions": [
          "text"
        ],
        "resources_scopes": [
          {
            "scope_mode": "text",
            "type": "text",
            "key": "text",
            "values": [
              "text"
            ]
          }
        ]
      },
      "bundle": {
        "bundle_reference": "text"
      },
      "access_scope": {
        "access_scope_reference": "text"
      }
    }
  ],
  "approver_policy": {
    "approval_mode": "text",
    "approver_groups": [
      {
        "logical_operator": "text",
        "approvers": [
          {
            "source_integration_reference": "text",
            "type": "text",
            "match_operator": "text",
            "values": [
              "text"
            ]
          }
        ]
      }
    ]
  },
  "grant_duration_in_min": 1,
  "timeframe": {
    "start_time": "text",
    "end_time": "text",
    "days_of_week": [
      "MONDAY"
    ],
    "time_zone": "text"
  },
  "settings": {
    "justification_required": true,
    "require_approver_reason": true,
    "requestor_cannot_approve_himself": true,
    "require_mfa": true,
    "labels": [
      "text"
    ]
  },
  "request_for_others": true
}
200

OK

{
  "id": "text",
  "name": "text",
  "active": true,
  "trigger": "text",
  "requestors": {
    "logical_operator": "text",
    "conditions": [
      {
        "source_integration_id": "text",
        "source_integration_name": "text",
        "type": "text",
        "match_operator": "text",
        "values": [
          "text"
        ]
      }
    ]
  },
  "request_for": {
    "request_scopes": [
      "text"
    ],
    "grantees": {
      "logical_operator": "text",
      "conditions": [
        {
          "source_integration_id": "text",
          "source_integration_name": "text",
          "type": "text",
          "match_operator": "text",
          "values": [
            "text"
          ]
        }
      ]
    }
  },
  "access_targets": [
    {
      "integration": {
        "integration_id": "text",
        "integration_name": "text",
        "resource_type": "text",
        "permissions": [
          "text"
        ],
        "resources_scopes": [
          {
            "scope_mode": "text",
            "type": "text",
            "key": "text",
            "values": [
              "text"
            ]
          }
        ]
      },
      "bundle": {
        "bundle_id": "text",
        "bundle_name": "text"
      },
      "access_scope": {
        "access_scope_id": "text",
        "access_scope_name": "text"
      }
    }
  ],
  "approver_policy": {
    "approval_mode": "text",
    "approver_groups": [
      {
        "logical_operator": "text",
        "approvers": [
          {
            "source_integration_id": "text",
            "source_integration_name": "text",
            "type": "text",
            "match_operator": "text",
            "values": [
              "text"
            ]
          }
        ]
      }
    ]
  },
  "grant_duration_in_min": 1,
  "timeframe": {
    "start_time": "text",
    "end_time": "text",
    "days_of_week": [
      "MONDAY"
    ],
    "time_zone": "text"
  },
  "settings": {
    "justification_required": true,
    "require_approver_reason": true,
    "requestor_cannot_approve_himself": true,
    "require_mfa": true,
    "labels": [
      "text"
    ]
  },
  "creation_date": {
    "0": "2",
    "1": "0",
    "2": "2",
    "3": "5",
    "4": "-",
    "5": "1",
    "6": "2",
    "7": "-",
    "8": "0",
    "9": "8",
    "10": "T",
    "11": "0",
    "12": "1",
    "13": ":",
    "14": "2",
    "15": "2",
    "16": ":",
    "17": "0",
    "18": "2",
    "19": ".",
    "20": "8",
    "21": "8",
    "22": "7",
    "23": "Z"
  },
  "update_date": "text"
}

Delete Access Flow

delete
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
idstringRequired
Responses
204

No Content

delete
/api/admin/v2/access-flows/{id}
DELETE /api/admin/v2/access-flows/{id} HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
204

No Content

No content

List Access Flows

get
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Responses
200

OK

application/json
get
/api/v1/access-flows
GET /api/v1/access-flows HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

OK

{
  "data": [
    {
      "id": "text",
      "name": "text",
      "active": true,
      "trigger": {
        "type": "text",
        "timeframe": {
          "start_of_day_time_in_seconds": 1,
          "end_of_day_time_in_seconds": 1,
          "days_in_week": [
            "MONDAY"
          ],
          "time_zone": "text"
        }
      },
      "grantees": [
        {
          "id": "text",
          "type": "text"
        }
      ],
      "integration_targets": [
        {
          "integration_id": "text",
          "resource_type": "text",
          "resource_tag_includes": [
            {
              "name": "text",
              "value": "text"
            }
          ],
          "resource_tag_excludes": [
            {
              "name": "text",
              "value": "text"
            }
          ],
          "permissions": [
            "text"
          ]
        }
      ],
      "bundle_targets": [
        {
          "bundle_id": "text"
        }
      ],
      "approvers": [
        {
          "id": "text",
          "type": "text"
        }
      ],
      "revoke_after_in_sec": 1,
      "settings": {
        "require_justification_on_request_again": true,
        "require_all_approvers": true,
        "require_approver_justification": true,
        "approver_cannot_approve_himself": true
      },
      "created_date": "{seconds}.{nanos}"
    }
  ],
  "pagination": {
    "total": 1,
    "limit": 1,
    "offset": 1
  }
}

Create Access Flow

post
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
namestringRequired
activebooleanRequired
revoke_after_in_secinteger · int32Required
settingsall of | nullableOptional
Responses
200

OK

application/json
post
/api/v1/access-flows
POST /api/v1/access-flows HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 700

{
  "name": "text",
  "active": true,
  "trigger": {
    "type": "text",
    "timeframe": {
      "start_of_day_time_in_seconds": 1,
      "end_of_day_time_in_seconds": 1,
      "days_in_week": [
        "MONDAY"
      ],
      "time_zone": "text"
    }
  },
  "grantees": [
    {
      "id": "text",
      "type": "text"
    }
  ],
  "integration_targets": [
    {
      "integration_id": "text",
      "resource_type": "text",
      "resource_tag_includes": [
        {
          "name": "text",
          "value": "text"
        }
      ],
      "resource_tag_excludes": [
        {
          "name": "text",
          "value": "text"
        }
      ],
      "permissions": [
        "text"
      ]
    }
  ],
  "bundle_targets": [
    {
      "bundle_id": "text"
    }
  ],
  "approvers": [
    {
      "id": "text",
      "type": "text"
    }
  ],
  "revoke_after_in_sec": 1,
  "settings": {
    "require_justification_on_request_again": true,
    "require_all_approvers": true,
    "require_approver_justification": true,
    "approver_cannot_approve_himself": true
  }
}
200

OK

{
  "id": "text",
  "name": "text",
  "active": true,
  "trigger": {
    "type": "text",
    "timeframe": {
      "start_of_day_time_in_seconds": 1,
      "end_of_day_time_in_seconds": 1,
      "days_in_week": [
        "MONDAY"
      ],
      "time_zone": "text"
    }
  },
  "grantees": [
    {
      "id": "text",
      "type": "text"
    }
  ],
  "integration_targets": [
    {
      "integration_id": "text",
      "resource_type": "text",
      "resource_tag_includes": [
        {
          "name": "text",
          "value": "text"
        }
      ],
      "resource_tag_excludes": [
        {
          "name": "text",
          "value": "text"
        }
      ],
      "permissions": [
        "text"
      ]
    }
  ],
  "bundle_targets": [
    {
      "bundle_id": "text"
    }
  ],
  "approvers": [
    {
      "id": "text",
      "type": "text"
    }
  ],
  "revoke_after_in_sec": 1,
  "settings": {
    "require_justification_on_request_again": true,
    "require_all_approvers": true,
    "require_approver_justification": true,
    "approver_cannot_approve_himself": true
  },
  "created_date": "{seconds}.{nanos}"
}

Get Access Flow

get
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
idstringRequired
Responses
200

OK

application/json
get
/api/v1/access-flows/{id}
GET /api/v1/access-flows/{id} HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

OK

{
  "id": "text",
  "name": "text",
  "active": true,
  "trigger": {
    "type": "text",
    "timeframe": {
      "start_of_day_time_in_seconds": 1,
      "end_of_day_time_in_seconds": 1,
      "days_in_week": [
        "MONDAY"
      ],
      "time_zone": "text"
    }
  },
  "grantees": [
    {
      "id": "text",
      "type": "text"
    }
  ],
  "integration_targets": [
    {
      "integration_id": "text",
      "resource_type": "text",
      "resource_tag_includes": [
        {
          "name": "text",
          "value": "text"
        }
      ],
      "resource_tag_excludes": [
        {
          "name": "text",
          "value": "text"
        }
      ],
      "permissions": [
        "text"
      ]
    }
  ],
  "bundle_targets": [
    {
      "bundle_id": "text"
    }
  ],
  "approvers": [
    {
      "id": "text",
      "type": "text"
    }
  ],
  "revoke_after_in_sec": 1,
  "settings": {
    "require_justification_on_request_again": true,
    "require_all_approvers": true,
    "require_approver_justification": true,
    "approver_cannot_approve_himself": true
  },
  "created_date": "{seconds}.{nanos}"
}

Delete Access Flow

delete
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
idstringRequired
Responses
200

OK

application/json
delete
/api/v1/access-flows/{id}
DELETE /api/v1/access-flows/{id} HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

OK

{
  "message": "text"
}

Update Access Flow

patch
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
idstringRequired
Body
namestring | nullableOptional
activeboolean | nullableOptional
triggerall of | nullableOptional
revoke_after_in_secinteger · int32 | nullableOptional
settingsall of | nullableOptional
Responses
200

OK

application/json
patch
/api/v1/access-flows/{id}
PATCH /api/v1/access-flows/{id} HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 700

{
  "name": "text",
  "active": true,
  "trigger": {
    "type": "text",
    "timeframe": {
      "start_of_day_time_in_seconds": 1,
      "end_of_day_time_in_seconds": 1,
      "days_in_week": [
        "MONDAY"
      ],
      "time_zone": "text"
    }
  },
  "grantees": [
    {
      "id": "text",
      "type": "text"
    }
  ],
  "integration_targets": [
    {
      "integration_id": "text",
      "resource_type": "text",
      "resource_tag_includes": [
        {
          "name": "text",
          "value": "text"
        }
      ],
      "resource_tag_excludes": [
        {
          "name": "text",
          "value": "text"
        }
      ],
      "permissions": [
        "text"
      ]
    }
  ],
  "bundle_targets": [
    {
      "bundle_id": "text"
    }
  ],
  "approvers": [
    {
      "id": "text",
      "type": "text"
    }
  ],
  "revoke_after_in_sec": 1,
  "settings": {
    "require_justification_on_request_again": true,
    "require_all_approvers": true,
    "require_approver_justification": true,
    "approver_cannot_approve_himself": true
  }
}
200

OK

{
  "id": "text",
  "name": "text",
  "active": true,
  "trigger": {
    "type": "text",
    "timeframe": {
      "start_of_day_time_in_seconds": 1,
      "end_of_day_time_in_seconds": 1,
      "days_in_week": [
        "MONDAY"
      ],
      "time_zone": "text"
    }
  },
  "grantees": [
    {
      "id": "text",
      "type": "text"
    }
  ],
  "integration_targets": [
    {
      "integration_id": "text",
      "resource_type": "text",
      "resource_tag_includes": [
        {
          "name": "text",
          "value": "text"
        }
      ],
      "resource_tag_excludes": [
        {
          "name": "text",
          "value": "text"
        }
      ],
      "permissions": [
        "text"
      ]
    }
  ],
  "bundle_targets": [
    {
      "bundle_id": "text"
    }
  ],
  "approvers": [
    {
      "id": "text",
      "type": "text"
    }
  ],
  "revoke_after_in_sec": 1,
  "settings": {
    "require_justification_on_request_again": true,
    "require_all_approvers": true,
    "require_approver_justification": true,
    "approver_cannot_approve_himself": true
  },
  "created_date": "{seconds}.{nanos}"
}

list Integrations

get
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Query parameters
categorystring[] | nullableOptional
connector_idstring[] | nullableOptional
limitinteger · int32OptionalDefault: 100
namestring | nullableOptional

Filter integrations by name. Supports wildcard () for partial matches - use * for contains, prefix for starts with, *suffix for ends with

page_tokenstring | nullableOptional
statusstring[] | nullableOptional
typestring[] | nullableOptional

Filter integrations by type. Supports wildcard () for partial matches - use * for contains, prefix for starts with, *suffix for ends with

Responses
200

OK

application/json
get
/api/admin/v4/integrations
GET /api/admin/v4/integrations HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

OK

{
  "items": [
    {
      "id": "text",
      "name": "text",
      "type": "text",
      "category": "text",
      "connector_id": "text",
      "status": "text",
      "last_sync_time": "text",
      "integration_config": {
        "ANY_ADDITIONAL_PROPERTY": "anything"
      },
      "secret_store_config": {
        "aws": {
          "region": "text",
          "secret_id": "text"
        },
        "gcp": {
          "project": "text",
          "secret_id": "text"
        },
        "kubernetes": {
          "namespace": "text",
          "name": "text"
        },
        "azure": {
          "vault_url": "text",
          "name": "text"
        },
        "hashicorp_vault": {
          "secret_engine": "text",
          "path": "text"
        },
        "apono": {
          "parameters": {
            "ANY_ADDITIONAL_PROPERTY": "text"
          }
        }
      },
      "connected_resource_types": [
        "text"
      ],
      "custom_access_details": "text",
      "owner": {
        "attribute_type": "text",
        "attribute_value": [
          "text"
        ],
        "source_integration_id": "text",
        "source_integration_name": "text"
      },
      "owners_mapping": {
        "key_name": "text",
        "attribute_type": "text",
        "source_integration_id": "text",
        "source_integration_name": "text"
      }
    }
  ],
  "pagination": {
    "next_page_token": "text"
  }
}

Create Integration

post
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
namestringRequired

Unique, alphanumeric, user-friendly name used to identify the integration

typestringRequired

Apono-defined identifier for the specific integration type

connector_idstring | nullableOptional

Unique identifier of the Apono connector

integration_configall ofRequired

Set of integration-specific connection and management parameters. Refer to the Integration Configuration documentation for specific configuration values.

secret_store_configall of | nullableOptional
connected_resource_typesstring[] | nullableOptional

List of discoverable resource types within the integration

custom_access_detailsstring | nullableOptional

Admin custom instructions (max 400 characters) for accessing the integration’s resources, shown to end users

ownerall of | nullableOptional
owners_mappingall of | nullableOptional
Responses
200

OK

application/json
post
/api/admin/v4/integrations
POST /api/admin/v4/integrations HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 635

{
  "name": "text",
  "type": "text",
  "connector_id": "text",
  "integration_config": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "secret_store_config": {
    "aws": {
      "region": "text",
      "secret_id": "text"
    },
    "gcp": {
      "project": "text",
      "secret_id": "text"
    },
    "kubernetes": {
      "namespace": "text",
      "name": "text"
    },
    "azure": {
      "vault_url": "text",
      "name": "text"
    },
    "hashicorp_vault": {
      "secret_engine": "text",
      "path": "text"
    }
  },
  "connected_resource_types": [
    "text"
  ],
  "custom_access_details": "text",
  "owner": {
    "attribute_type": "text",
    "attribute_value": [
      "text"
    ],
    "source_integration_reference": "text"
  },
  "owners_mapping": {
    "key_name": "text",
    "attribute_type": "text",
    "source_integration_reference": "text"
  }
}
200

OK

{
  "id": "text",
  "name": "text",
  "type": "text",
  "category": "text",
  "connector_id": "text",
  "status": "text",
  "last_sync_time": "text",
  "integration_config": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "secret_store_config": {
    "aws": {
      "region": "text",
      "secret_id": "text"
    },
    "gcp": {
      "project": "text",
      "secret_id": "text"
    },
    "kubernetes": {
      "namespace": "text",
      "name": "text"
    },
    "azure": {
      "vault_url": "text",
      "name": "text"
    },
    "hashicorp_vault": {
      "secret_engine": "text",
      "path": "text"
    },
    "apono": {
      "parameters": {
        "ANY_ADDITIONAL_PROPERTY": "text"
      }
    }
  },
  "connected_resource_types": [
    "text"
  ],
  "custom_access_details": "text",
  "owner": {
    "attribute_type": "text",
    "attribute_value": [
      "text"
    ],
    "source_integration_id": "text",
    "source_integration_name": "text"
  },
  "owners_mapping": {
    "key_name": "text",
    "attribute_type": "text",
    "source_integration_id": "text",
    "source_integration_name": "text"
  }
}

Get Integration By Id

get
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
idstringRequired
Responses
200

OK

application/json
get
/api/admin/v4/integrations/{id}
GET /api/admin/v4/integrations/{id} HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

OK

{
  "id": "text",
  "name": "text",
  "type": "text",
  "category": "text",
  "connector_id": "text",
  "status": "text",
  "last_sync_time": "text",
  "integration_config": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "secret_store_config": {
    "aws": {
      "region": "text",
      "secret_id": "text"
    },
    "gcp": {
      "project": "text",
      "secret_id": "text"
    },
    "kubernetes": {
      "namespace": "text",
      "name": "text"
    },
    "azure": {
      "vault_url": "text",
      "name": "text"
    },
    "hashicorp_vault": {
      "secret_engine": "text",
      "path": "text"
    },
    "apono": {
      "parameters": {
        "ANY_ADDITIONAL_PROPERTY": "text"
      }
    }
  },
  "connected_resource_types": [
    "text"
  ],
  "custom_access_details": "text",
  "owner": {
    "attribute_type": "text",
    "attribute_value": [
      "text"
    ],
    "source_integration_id": "text",
    "source_integration_name": "text"
  },
  "owners_mapping": {
    "key_name": "text",
    "attribute_type": "text",
    "source_integration_id": "text",
    "source_integration_name": "text"
  }
}

Update Integration

put
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
idstringRequired
Body
namestringRequired

Unique, alphanumeric, user-friendly name used to identify the integration

connector_idstring | nullableOptional

Unique identifier of the Apono connector

integration_configall ofRequired

Set of integration-specific connection and management parameters

secret_store_configall of | nullableOptional
connected_resource_typesstring[] | nullableOptional

List of discoverable resource types within the integration

custom_access_detailsstring | nullableOptional

Admin custom instructions (max 400 characters) for accessing the integration’s resources, shown to end users

ownerall of | nullableOptional
owners_mappingall of | nullableOptional
Responses
200

OK

application/json
put
/api/admin/v4/integrations/{id}
PUT /api/admin/v4/integrations/{id} HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 621

{
  "name": "text",
  "connector_id": "text",
  "integration_config": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "secret_store_config": {
    "aws": {
      "region": "text",
      "secret_id": "text"
    },
    "gcp": {
      "project": "text",
      "secret_id": "text"
    },
    "kubernetes": {
      "namespace": "text",
      "name": "text"
    },
    "azure": {
      "vault_url": "text",
      "name": "text"
    },
    "hashicorp_vault": {
      "secret_engine": "text",
      "path": "text"
    }
  },
  "connected_resource_types": [
    "text"
  ],
  "custom_access_details": "text",
  "owner": {
    "attribute_type": "text",
    "attribute_value": [
      "text"
    ],
    "source_integration_reference": "text"
  },
  "owners_mapping": {
    "key_name": "text",
    "attribute_type": "text",
    "source_integration_reference": "text"
  }
}
200

OK

{
  "id": "text",
  "name": "text",
  "type": "text",
  "category": "text",
  "connector_id": "text",
  "status": "text",
  "last_sync_time": "text",
  "integration_config": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "secret_store_config": {
    "aws": {
      "region": "text",
      "secret_id": "text"
    },
    "gcp": {
      "project": "text",
      "secret_id": "text"
    },
    "kubernetes": {
      "namespace": "text",
      "name": "text"
    },
    "azure": {
      "vault_url": "text",
      "name": "text"
    },
    "hashicorp_vault": {
      "secret_engine": "text",
      "path": "text"
    },
    "apono": {
      "parameters": {
        "ANY_ADDITIONAL_PROPERTY": "text"
      }
    }
  },
  "connected_resource_types": [
    "text"
  ],
  "custom_access_details": "text",
  "owner": {
    "attribute_type": "text",
    "attribute_value": [
      "text"
    ],
    "source_integration_id": "text",
    "source_integration_name": "text"
  },
  "owners_mapping": {
    "key_name": "text",
    "attribute_type": "text",
    "source_integration_id": "text",
    "source_integration_name": "text"
  }
}

Delete Integration

delete
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
idstringRequired
Responses
204

No Content

delete
/api/admin/v4/integrations/{id}
DELETE /api/admin/v4/integrations/{id} HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
204

No Content

No content

list integrations

get
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Responses
200

OK

application/json
get
/api/v2/integrations
GET /api/v2/integrations HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

OK

{
  "data": [
    {
      "id": "text",
      "name": "text",
      "type": "text",
      "status": "Initializing",
      "details": "text",
      "provisioner_id": "text",
      "connection": {},
      "last_sync_time": 1,
      "metadata": {},
      "secret_config": {},
      "connected_resource_types": [
        "text"
      ],
      "custom_access_details": "text"
    }
  ],
  "pagination": {
    "total": 1,
    "limit": 1,
    "offset": 1
  }
}

create integration

post
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
namestringRequired
typestringRequired
provisioner_idstring | nullableOptional
metadataobjectRequired
secret_configall of | nullableOptional
objectOptional
connected_resource_typesstring[] | nullableOptional
custom_access_detailsstring | nullableOptional
Responses
200

OK

application/json
post
/api/v2/integrations
POST /api/v2/integrations HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 153

{
  "name": "text",
  "type": "text",
  "provisioner_id": "text",
  "metadata": {},
  "secret_config": {},
  "connected_resource_types": [
    "text"
  ],
  "custom_access_details": "text"
}
200

OK

{
  "id": "text",
  "name": "text",
  "type": "text",
  "status": "Initializing",
  "details": "text",
  "provisioner_id": "text",
  "connection": {},
  "last_sync_time": 1,
  "metadata": {},
  "secret_config": {},
  "connected_resource_types": [
    "text"
  ],
  "custom_access_details": "text"
}

list integration configs

get
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Responses
200

OK

application/json
get
/api/v2/integrations-catalog
GET /api/v2/integrations-catalog HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

OK

{
  "data": [
    {
      "name": "text",
      "type": "text",
      "description": "text",
      "params": [
        {
          "id": "text",
          "label": "text",
          "values": [
            "text"
          ],
          "default": "text",
          "optional": true
        }
      ],
      "requires_secret": true,
      "supported_secret_types": [
        "text"
      ]
    }
  ],
  "pagination": {
    "total": 1,
    "limit": 1,
    "offset": 1
  }
}

get integration config

get
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
typestringRequired
Responses
200

OK

application/json
get
/api/v2/integrations-catalog/{type}
GET /api/v2/integrations-catalog/{type} HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

OK

{
  "name": "text",
  "type": "text",
  "description": "text",
  "params": [
    {
      "id": "text",
      "label": "text",
      "values": [
        "text"
      ],
      "default": "text",
      "optional": true
    }
  ],
  "requires_secret": true,
  "supported_secret_types": [
    "text"
  ]
}

get integration

get
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
idstringRequired
Responses
200

OK

application/json
get
/api/v2/integrations/{id}
GET /api/v2/integrations/{id} HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

OK

{
  "id": "text",
  "name": "text",
  "type": "text",
  "status": "Initializing",
  "details": "text",
  "provisioner_id": "text",
  "connection": {},
  "last_sync_time": 1,
  "metadata": {},
  "secret_config": {},
  "connected_resource_types": [
    "text"
  ],
  "custom_access_details": "text"
}

update integration

put
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
idstringRequired
Body
namestringRequired
provisioner_idstring | nullableOptional
metadataobjectRequired
secret_configall of | nullableOptional
objectOptional
connected_resource_typesstring[] | nullableOptional
custom_access_detailsstring | nullableOptional
Responses
200

OK

application/json
put
/api/v2/integrations/{id}
PUT /api/v2/integrations/{id} HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 139

{
  "name": "text",
  "provisioner_id": "text",
  "metadata": {},
  "secret_config": {},
  "connected_resource_types": [
    "text"
  ],
  "custom_access_details": "text"
}
200

OK

{
  "id": "text",
  "name": "text",
  "type": "text",
  "status": "Initializing",
  "details": "text",
  "provisioner_id": "text",
  "connection": {},
  "last_sync_time": 1,
  "metadata": {},
  "secret_config": {},
  "connected_resource_types": [
    "text"
  ],
  "custom_access_details": "text"
}

delete integration

delete
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
idstringRequired
Responses
200

OK

application/json
delete
/api/v2/integrations/{id}
DELETE /api/v2/integrations/{id} HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

OK

{
  "message": "text"
}

refresh integration

post
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
idstringRequired
Responses
200

OK

application/json
post
/api/v2/integrations/{id}/refresh
POST /api/v2/integrations/{id}/refresh HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

OK

{
  "message": "text"
}

get user tags of a resource

get
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
resource_idstringRequired
Responses
200

OK

application/json
get
/api/v3/integrations/resources/{resource_id}/user-tags
GET /api/v3/integrations/resources/{resource_id}/user-tags HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

OK

{
  "resource_id": "text",
  "tags": {
    "ANY_ADDITIONAL_PROPERTY": "text"
  }
}

update user tags of a resource

put
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
resource_idstringRequired
Body
Responses
200

OK

application/json
put
/api/v3/integrations/resources/{resource_id}/user-tags
PUT /api/v3/integrations/resources/{resource_id}/user-tags HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 43

{
  "tags": {
    "ANY_ADDITIONAL_PROPERTY": "text"
  }
}
200

OK

{
  "message": "text"
}

get integration permissions for the entire tenant

get
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
idstringRequired
Query parameters
resource-typestring | nullableOptional
Responses
200

OK

application/json
get
/api/v3/integrations/{id}/permissions
GET /api/v3/integrations/{id}/permissions HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

OK

{
  "data": [
    {
      "name": "text",
      "id": "text",
      "resource_type": "text"
    }
  ],
  "pagination": {
    "total": 1,
    "limit": 1,
    "offset": 1
  }
}

get integration resources for the entire tenant

get
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
idstringRequired
Query parameters
resource-typestring | nullableOptional
Responses
200

OK

application/json
get
/api/v3/integrations/{id}/resources
GET /api/v3/integrations/{id}/resources HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

OK

{
  "data": [
    {
      "id": "text",
      "name": "text",
      "type": "text",
      "status": {
        "status": "Active",
        "message": "text"
      }
    }
  ],
  "pagination": {
    "total": 1,
    "limit": 1,
    "offset": 1
  }
}

List Activity

get
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Query parameters
end_dateinteger · int64 | nullableOptional
filter[access_flow_id]string[] | nullableOptional
filter[access_request_id]string[] | nullableOptional
filter[integration_id]string[] | nullableOptional
filter[permission]string[] | nullableOptional
filter[requestor_id]string[] | nullableOptional
filter[resource]string[] | nullableOptional
filter[resource_type]string[] | nullableOptional
filter[status]string[] | nullableOptional
filter[trigger_type]string[] | nullableOptional
start_dateinteger · int64 | nullableOptional
Responses
200

OK

application/json
get
/api/v3/activity
GET /api/v3/activity HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

OK

{
  "data": [
    {
      "request_id": "text",
      "request_date": "text",
      "requestor_name": "text",
      "requestor_email": "text",
      "integration": "text",
      "resource_type": "text",
      "resources": [
        "text"
      ],
      "permissions": [
        "text"
      ],
      "justification": "text",
      "status": "text",
      "trigger_type": "text",
      "access_flow": "text"
    }
  ],
  "pagination": {
    "total": 1,
    "limit": 1,
    "offset": 1
  }
}

List Bundles

get
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Query parameters
limitinteger · int32OptionalDefault: 100
namestring | nullableOptional

Filter bundles by name. Supports wildcard () for partial matches - use * for contains, prefix for starts with, *suffix for ends with

page_tokenstring | nullableOptional
Responses
200

OK

application/json
get
/api/admin/v2/bundles
GET /api/admin/v2/bundles HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

OK

{
  "items": [
    {
      "id": "text",
      "name": "text",
      "access_targets": [
        {
          "integration": {
            "integration_id": "text",
            "integration_name": "text",
            "resource_type": "text",
            "permissions": [
              "text"
            ],
            "resources_scopes": [
              {
                "scope_mode": "text",
                "type": "text",
                "key": "text",
                "values": [
                  "text"
                ]
              }
            ]
          },
          "access_scope": {
            "access_scope_id": "text",
            "access_scope_name": "text"
          }
        }
      ],
      "creation_date": "text",
      "update_date": "text"
    }
  ],
  "pagination": {
    "next_page_token": "text"
  }
}

Create Bundle

post
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
namestringRequired

Display name of the bundle

Responses
200

OK

application/json
post
/api/admin/v2/bundles
POST /api/admin/v2/bundles HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 266

{
  "name": "text",
  "access_targets": [
    {
      "integration": {
        "integration_reference": "text",
        "resource_type": "text",
        "permissions": [
          "text"
        ],
        "resources_scopes": [
          {
            "scope_mode": "text",
            "type": "text",
            "key": "text",
            "values": [
              "text"
            ]
          }
        ]
      },
      "access_scope": {
        "access_scope_reference": "text"
      }
    }
  ]
}
200

OK

{
  "id": "text",
  "name": "text",
  "access_targets": [
    {
      "integration": {
        "integration_id": "text",
        "integration_name": "text",
        "resource_type": "text",
        "permissions": [
          "text"
        ],
        "resources_scopes": [
          {
            "scope_mode": "text",
            "type": "text",
            "key": "text",
            "values": [
              "text"
            ]
          }
        ]
      },
      "access_scope": {
        "access_scope_id": "text",
        "access_scope_name": "text"
      }
    }
  ],
  "creation_date": "text",
  "update_date": "text"
}

Get Bundle

get
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
idstringRequired
Responses
200

OK

application/json
get
/api/admin/v2/bundles/{id}
GET /api/admin/v2/bundles/{id} HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

OK

{
  "id": "text",
  "name": "text",
  "access_targets": [
    {
      "integration": {
        "integration_id": "text",
        "integration_name": "text",
        "resource_type": "text",
        "permissions": [
          "text"
        ],
        "resources_scopes": [
          {
            "scope_mode": "text",
            "type": "text",
            "key": "text",
            "values": [
              "text"
            ]
          }
        ]
      },
      "access_scope": {
        "access_scope_id": "text",
        "access_scope_name": "text"
      }
    }
  ],
  "creation_date": "text",
  "update_date": "text"
}

Update Bundle

put
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
idstringRequired
Body
namestringRequired

Display name of the bundle

Responses
200

OK

application/json
put
/api/admin/v2/bundles/{id}
PUT /api/admin/v2/bundles/{id} HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 266

{
  "name": "text",
  "access_targets": [
    {
      "integration": {
        "integration_reference": "text",
        "resource_type": "text",
        "permissions": [
          "text"
        ],
        "resources_scopes": [
          {
            "scope_mode": "text",
            "type": "text",
            "key": "text",
            "values": [
              "text"
            ]
          }
        ]
      },
      "access_scope": {
        "access_scope_reference": "text"
      }
    }
  ]
}
200

OK

{
  "id": "text",
  "name": "text",
  "access_targets": [
    {
      "integration": {
        "integration_id": "text",
        "integration_name": "text",
        "resource_type": "text",
        "permissions": [
          "text"
        ],
        "resources_scopes": [
          {
            "scope_mode": "text",
            "type": "text",
            "key": "text",
            "values": [
              "text"
            ]
          }
        ]
      },
      "access_scope": {
        "access_scope_id": "text",
        "access_scope_name": "text"
      }
    }
  ],
  "creation_date": "text",
  "update_date": "text"
}

Delete Bundle

delete
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
idstringRequired
Responses
204

No Content

delete
/api/admin/v2/bundles/{id}
DELETE /api/admin/v2/bundles/{id} HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
204

No Content

No content

List attributes for multiple identities

get
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Query parameters
emailsstring[] | nullableOptional
limitinteger · int32OptionalDefault: 100
skipinteger · int32OptionalDefault: 0
Responses
200

OK

application/json
get
/api/v2/bulk/identities/attributes
GET /api/v2/bulk/identities/attributes HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

OK

{
  "data": [
    {
      "email": "text",
      "attributes": {
        "ANY_ADDITIONAL_PROPERTY": "text"
      }
    }
  ],
  "pagination": {
    "total": 1,
    "limit": 1,
    "offset": 1
  }
}

Adds or Updates attributes to multiple identities

put
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Bodyobject[]
emailstringRequired
Responses
200

OK

application/json
put
/api/v2/bulk/identities/attributes
PUT /api/v2/bulk/identities/attributes HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 66

[
  {
    "email": "text",
    "attributes": {
      "ANY_ADDITIONAL_PROPERTY": "text"
    }
  }
]
200

OK

{
  "summary": {
    "total": 1,
    "succeeded": 1,
    "failed": 1
  },
  "results": [
    {
      "email": "text",
      "success": true,
      "errors": [
        {
          "error_code": "text",
          "error_details": "text"
        }
      ]
    }
  ]
}

Delete attributes from multiple identities

delete
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Bodyobject[]
emailstringRequired
attribute_typesstring[]Required
Responses
200

OK

application/json
delete
/api/v2/bulk/identities/attributes
DELETE /api/v2/bulk/identities/attributes HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 45

[
  {
    "email": "text",
    "attribute_types": [
      "text"
    ]
  }
]
200

OK

{
  "summary": {
    "total": 1,
    "succeeded": 1,
    "failed": 1
  },
  "results": [
    {
      "email": "text",
      "success": true,
      "errors": [
        {
          "error_code": "text",
          "error_details": "text"
        }
      ]
    }
  ]
}

list identities, grantees and approvers

get
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Responses
200

OK

application/json
get
/api/v2/identities
GET /api/v2/identities HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

OK

{
  "data": [
    {
      "type": "text",
      "name": "text",
      "id": "text"
    }
  ],
  "pagination": {
    "total": 1,
    "limit": 1,
    "offset": 1
  }
}

List Access Scopes

get
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Query parameters
limitinteger · int32OptionalDefault: 100
namestring | nullableOptional

Filter access scopes by name. Supports wildcard () for partial matches - use * for contains, prefix for starts with, *suffix for ends with

page_tokenstring | nullableOptional
Responses
200

OK

application/json
get
/api/admin/v1/access-scopes
GET /api/admin/v1/access-scopes HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

OK

{
  "items": [
    {
      "id": "text",
      "name": "text",
      "query": "text",
      "creation_date": "text",
      "update_date": "text"
    }
  ],
  "pagination": {
    "next_page_token": "text"
  }
}

Create Access Scope

post
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
namestringRequired

Display name of the access scope

querystringRequired

Apono Query Language (AQL) expression that defines filters for cloud resources, integrations, and permissions

Responses
200

OK

application/json
post
/api/admin/v1/access-scopes
POST /api/admin/v1/access-scopes HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 30

{
  "name": "text",
  "query": "text"
}
200

OK

{
  "id": "text",
  "name": "text",
  "query": "text",
  "creation_date": "text",
  "update_date": "text"
}

Get Access Scope

get
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
idstringRequired
Responses
200

OK

application/json
get
/api/admin/v1/access-scopes/{id}
GET /api/admin/v1/access-scopes/{id} HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

OK

{
  "id": "text",
  "name": "text",
  "query": "text",
  "creation_date": "text",
  "update_date": "text"
}

Update Access Scope

put
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
idstringRequired
Body
namestringRequired

Display name of the access scope

querystringRequired

Apono Query Language (AQL) expression that defines filters for cloud resources, integrations, and permissions

Responses
200

OK

application/json
put
/api/admin/v1/access-scopes/{id}
PUT /api/admin/v1/access-scopes/{id} HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 30

{
  "name": "text",
  "query": "text"
}
200

OK

{
  "id": "text",
  "name": "text",
  "query": "text",
  "creation_date": "text",
  "update_date": "text"
}

Delete Access Scope

delete
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
idstringRequired
Responses
204

No Content

delete
/api/admin/v1/access-scopes/{id}
DELETE /api/admin/v1/access-scopes/{id} HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
204

No Content

No content

List My Access Requests

get
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Query parameters
limitinteger · int32OptionalDefault: 100
page_tokenstring | nullableOptional
requestorstring | nullableOptional

Filters access requests by the initiating user. Accepts a user ID or email address. If not provided, returns requests submitted by the authenticated user.

statusesstring[] | nullableOptional
Responses
200

OK

application/json
get
/api/user/v4/access-requests
GET /api/user/v4/access-requests HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

OK

{
  "items": [
    {
      "id": "text",
      "status": "text",
      "duration_in_sec": 1,
      "justification": "text",
      "creation_date": "text",
      "revocation_date": "text",
      "custom_fields": {
        "ANY_ADDITIONAL_PROPERTY": "text"
      },
      "access_groups": [
        {
          "integration": {
            "id": "text",
            "name": "text"
          },
          "resource_types": [
            {
              "id": "text",
              "label": "text"
            }
          ]
        }
      ],
      "requestor": {
        "id": "text",
        "source_id": "text"
      },
      "grantee": {
        "id": "text",
        "source_id": "text"
      },
      "bundle": {
        "id": "text",
        "name": "text"
      }
    }
  ],
  "pagination": {
    "next_page_token": "text"
  }
}

Create Access Request

post
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
bundle_referencestring | nullableOptional

Unique identifier or display name of the bundle. Either bundle_reference or entitlements is required

justificationstring | nullableOptional

An explanation or reason for the access request

duration_in_secinteger · int32 | nullableOptional

Duration in seconds for which access is requested

granteestring | nullableOptional

The user the access is being requested for. Accepts a user ID or email address. If not provided, access is requested for the authenticated user. Requires the caller to be authorized in the access flow to request access on behalf of the specified user

Responses
200

OK

application/json
post
/api/user/v4/access-requests
POST /api/user/v4/access-requests HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 201

{
  "bundle_reference": "text",
  "entitlements": [
    {
      "resource_id": "text",
      "permission_id": "text"
    }
  ],
  "justification": "text",
  "duration_in_sec": 1,
  "custom_fields": {
    "ANY_ADDITIONAL_PROPERTY": "text"
  },
  "grantee": "text"
}
200

OK

[
  {
    "id": "text",
    "status": "text",
    "duration_in_sec": 1,
    "justification": "text",
    "creation_date": "text",
    "revocation_date": "text",
    "custom_fields": {
      "ANY_ADDITIONAL_PROPERTY": "text"
    },
    "access_groups": [
      {
        "integration": {
          "id": "text",
          "name": "text"
        },
        "resource_types": [
          {
            "id": "text",
            "label": "text"
          }
        ]
      }
    ],
    "requestor": {
      "id": "text",
      "source_id": "text"
    },
    "grantee": {
      "id": "text",
      "source_id": "text"
    },
    "bundle": {
      "id": "text",
      "name": "text"
    }
  }
]

Get My Access Request

get
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
idstringRequired
Responses
200

OK

application/json
get
/api/user/v4/access-requests/{id}
GET /api/user/v4/access-requests/{id} HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

OK

{
  "id": "text",
  "status": "text",
  "duration_in_sec": 1,
  "justification": "text",
  "creation_date": "text",
  "revocation_date": "text",
  "custom_fields": {
    "ANY_ADDITIONAL_PROPERTY": "text"
  },
  "access_groups": [
    {
      "integration": {
        "id": "text",
        "name": "text"
      },
      "resource_types": [
        {
          "id": "text",
          "label": "text"
        }
      ]
    }
  ],
  "requestor": {
    "id": "text",
    "source_id": "text"
  },
  "grantee": {
    "id": "text",
    "source_id": "text"
  },
  "bundle": {
    "id": "text",
    "name": "text"
  }
}

Get Access Request Entitlements

get
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
idstringRequired
Query parameters
integration_idsstring[] | nullableOptional
limitinteger · int32OptionalDefault: 100
page_tokenstring | nullableOptional
resource_typesstring[] | nullableOptional
statusesstring[] | nullableOptional
Responses
200

OK

application/json
get
/api/user/v4/access-requests/{id}/entitlements
GET /api/user/v4/access-requests/{id}/entitlements HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

OK

{
  "items": [
    {
      "integration": {
        "id": "text",
        "name": "text"
      },
      "resource": {
        "id": "text",
        "source_id": "text",
        "type": {
          "id": "text",
          "label": "text"
        },
        "name": "text"
      },
      "permission": {
        "name": "text"
      },
      "status": "text"
    }
  ],
  "pagination": {
    "next_page_token": "text"
  }
}

Request Access Again

post
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
idstringRequired
Body
justificationstring | nullableOptional

An explanation or reason for the access request

Responses
200

OK

application/json
post
/api/user/v4/access-requests/{id}/request-again
POST /api/user/v4/access-requests/{id}/request-again HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 75

{
  "justification": "text",
  "custom_fields": {
    "ANY_ADDITIONAL_PROPERTY": "text"
  }
}
200

OK

[
  {
    "id": "text",
    "status": "text",
    "duration_in_sec": 1,
    "justification": "text",
    "creation_date": "text",
    "revocation_date": "text",
    "custom_fields": {
      "ANY_ADDITIONAL_PROPERTY": "text"
    },
    "access_groups": [
      {
        "integration": {
          "id": "text",
          "name": "text"
        },
        "resource_types": [
          {
            "id": "text",
            "label": "text"
          }
        ]
      }
    ],
    "requestor": {
      "id": "text",
      "source_id": "text"
    },
    "grantee": {
      "id": "text",
      "source_id": "text"
    },
    "bundle": {
      "id": "text",
      "name": "text"
    }
  }
]

Revoke Access Request

post
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
idstringRequired
Responses
200

OK

application/json
post
/api/user/v4/access-requests/{id}/revoke
POST /api/user/v4/access-requests/{id}/revoke HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

OK

{
  "message": "text"
}

list access requests

get
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Query parameters
days_offsetinteger · int64 | nullableOptional
user_idstring | nullableOptional
Responses
200

OK

application/json
get
/api/v3/access-requests
GET /api/v3/access-requests HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

OK

{
  "data": [
    {
      "request_id": "text",
      "friendly_request_id": "text",
      "user_id": "text",
      "status": "PENDING",
      "integration_id": "text",
      "resource_ids": [
        "text"
      ],
      "permissions": [
        "text"
      ],
      "justification": "text"
    }
  ],
  "pagination": {
    "total": 1,
    "limit": 1,
    "offset": 1
  }
}

create access request

post
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
user_idstringRequired
integration_idstringRequired
resource_idsstring[]Required
permissionsstring[]Required
justificationstringRequired
duration_in_secinteger · int32 | nullableOptional
Responses
200

OK

application/json
post
/api/v3/access-requests
POST /api/v3/access-requests HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 132

{
  "user_id": "text",
  "integration_id": "text",
  "resource_ids": [
    "text"
  ],
  "permissions": [
    "text"
  ],
  "justification": "text",
  "duration_in_sec": 1
}
200

OK

{
  "request_id": "text",
  "friendly_request_id": "text",
  "user_id": "text",
  "status": "PENDING",
  "integration_id": "text",
  "resource_ids": [
    "text"
  ],
  "permissions": [
    "text"
  ],
  "justification": "text"
}

Revoke multiple access requests

post
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
request_idsstring[]Required
Responses
200

OK

application/json
post
/api/v3/access-requests-bulk/revoke
POST /api/v3/access-requests-bulk/revoke HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 24

{
  "request_ids": [
    "text"
  ]
}
200

OK

{
  "message": "text"
}

get access request

get
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
idstringRequired
Responses
200

OK

application/json
get
/api/v3/access-requests/{id}
GET /api/v3/access-requests/{id} HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

OK

{
  "request_id": "text",
  "friendly_request_id": "text",
  "user_id": "text",
  "status": "PENDING",
  "integration_id": "text",
  "resource_ids": [
    "text"
  ],
  "permissions": [
    "text"
  ],
  "justification": "text"
}

get access request access details

get
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
idstringRequired
Responses
200

OK

application/json
get
/api/v3/access-requests/{id}/access-details
GET /api/v3/access-requests/{id}/access-details HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

OK

{
  "details": "text"
}

reset access request credentials

post
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
idstringRequired
Responses
200

OK

application/json
post
/api/v3/access-requests/{id}/reset
POST /api/v3/access-requests/{id}/reset HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

OK

{
  "message": "text"
}

get selectable integrations

get
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Query parameters
user_idstring | nullableOptional
Responses
200

OK

application/json
get
/api/v3/selectable-integrations
GET /api/v3/selectable-integrations HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

OK

{
  "data": [
    {
      "id": "text"
    }
  ],
  "pagination": {
    "total": 1,
    "limit": 1,
    "offset": 1
  }
}

get selectable resource types

get
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
integration_idstring | nullableRequired
Query parameters
user_idstring | nullableOptional
Responses
200

OK

application/json
get
/api/v3/selectable-integrations/{integration_id}/resource-types
GET /api/v3/selectable-integrations/{integration_id}/resource-types HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

OK

{
  "data": [
    {
      "id": "text",
      "name": "text"
    }
  ],
  "pagination": {
    "total": 1,
    "limit": 1,
    "offset": 1
  }
}

get selectable permissions

get
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
integration_idstring | nullableRequired
resource_typestringRequired
Query parameters
user_idstring | nullableOptional
Responses
200

OK

application/json
get
/api/v3/selectable-integrations/{integration_id}/{resource_type}/permissions
GET /api/v3/selectable-integrations/{integration_id}/{resource_type}/permissions HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

OK

{
  "data": [
    "text"
  ],
  "pagination": {
    "total": 1,
    "limit": 1,
    "offset": 1
  },
  "allow_multiple": true
}

get selectable resources

get
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
integration_idstring | nullableRequired
resource_typestringRequired
Query parameters
user_idstring | nullableOptional
Responses
200

OK

application/json
get
/api/v3/selectable-integrations/{integration_id}/{resource_type}/resources
GET /api/v3/selectable-integrations/{integration_id}/{resource_type}/resources HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

OK

{
  "data": [
    {
      "id": "text",
      "type": "text",
      "name": "text"
    }
  ],
  "pagination": {
    "total": 1,
    "limit": 1,
    "offset": 1
  }
}

List Delegated Access Requests

get
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Query parameters
granteestring | nullableOptional

Filters results to requests made for the specified user. Accepts a user ID or email address

limitinteger · int32OptionalDefault: 100
page_tokenstring | nullableOptional
statusesstring[] | nullableOptional

Filters results by request status. Supports multiple statuses.

Responses
200

OK

application/json
get
/api/user/v1/delegated-access-requests
GET /api/user/v1/delegated-access-requests HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

OK

{
  "items": [
    {
      "id": "text",
      "status": "text",
      "duration_in_sec": 1,
      "justification": "text",
      "creation_date": "text",
      "revocation_date": "text",
      "custom_fields": {
        "ANY_ADDITIONAL_PROPERTY": "text"
      },
      "access_groups": [
        {
          "integration": {
            "id": "text",
            "name": "text"
          },
          "resource_types": [
            {
              "id": "text",
              "label": "text"
            }
          ]
        }
      ],
      "requestor": {
        "id": "text",
        "source_id": "text"
      },
      "grantee": {
        "id": "text",
        "source_id": "text"
      },
      "bundle": {
        "id": "text",
        "name": "text"
      }
    }
  ],
  "pagination": {
    "next_page_token": "text"
  }
}

Get Delegated Access Request

get
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
idstringRequired
Responses
200

OK

application/json
get
/api/user/v1/delegated-access-requests/{id}
GET /api/user/v1/delegated-access-requests/{id} HTTP/1.1
Host: api.apono.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

OK

{
  "id": "text",
  "status": "text",
  "duration_in_sec": 1,
  "justification": "text",
  "creation_date": "text",
  "revocation_date": "text",
  "custom_fields": {
    "ANY_ADDITIONAL_PROPERTY": "text"
  },
  "access_groups": [
    {
      "integration": {
        "id": "text",
        "name": "text"
      },
      "resource_types": [
        {
          "id": "text",
          "label": "text"
        }
      ]
    }
  ],
  "requestor": {
    "id": "text",
    "source_id": "text"
  },
  "grantee": {
    "id": "text",
    "source_id": "text"
  },
  "bundle": {
    "id": "text",
    "name": "text"
  }
}
Reference Integration-Specific Configuration Metadata