> This page is for Plate-forme, version Hérité.
> For other versions, use one of these documentation indexes:
> - V4 (default): https://next.developer.frame.io/platform/v4/llms.txt
> - V4 expérimental: https://next.developer.frame.io/platform/v4-experimental/llms.txt
> - Hérité: https://next.developer.frame.io/platform/v2/llms.txt

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://next.developer.frame.io/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://next.developer.frame.io/_mcp/server.

# Obtenir les entrées du journal d’audit d’un utilisateur spécifié

GET https://api.frame.io/v2/users/{user_id}/events

Récupérer les journaux d’audit d’un utilisateur donné avec certaines fonctionnalités de filtrage via les paramètres de requête. Il est recommandé de considérer cela comme un journal d’activité pour l’utilisateur spécifié.

Reference: https://next.developer.frame.io/platform/v2/api-reference/audit-logs/get-user-audit-logs

## Authentication

- `Authorization` header (bearer token, required) — Bearer authentication of the form `Bearer <token>`, where token is your auth token.

## Request

### Path parameters

- `user_id` (string, required, default: erfb57e0-79f2-4bc7-9b70-99fbc175175c) — User ID

### Query parameters

- `filters[start_date]` (string, optional) — Date ISO de début
- `filters[end_date]` (string, optional) — Date ISO de fin
- `filters[resource_type]` (enum, optional) — Filtrer par type de ressource
  - Allowed values: `asset`, `review_link`, `presentation`, `collaborator`, `pending_collaborator`, `comment`, `review_link_item`, `account`, `account_member`, `pending_account_member`, `subscription`, `subscription_line_item`, `team`, `team_member`, `pending_team_member`, `user`, `action`, `oauth_app`, `user_token`, `webhook`, `file`, `folder`, `version_stack`, `like`, `read`
- `filters[event_type]` (enum, optional) — Filtrer par type d’activité
  - Allowed values: `email_address_changed`, `email_change_confirmation_requested`, `email_confirmed`, `google_auth_disabled`, `google_auth_enabled`, `login_factor_created`, `login_factor_validated`, `new_device_login`, `new_user_email_confirmation_requested`, `oauth_app_created`, `oauth_app_deleted`, `password_changed`, `password_reset_requested`, `push_tokens_added`, `push_tokens_deleted`, `role_added`, `role_removed`, `session_revoked`, `user_deactivated`, `user_login`, `user_login_attempt`, `user_mfa_enforced`, `user_reactivated`, `user_signup`, `user_token_created`, `user_token_deleted`, `user_token_disabled`, `user_token_enabled`, `user_token_updated`, `user_updated`
- `filters[team_id]` (string, optional) — Filtrer par ID d’équipe
- `filters[project_id]` (string, optional) — Filtrer par ID de projet
- `filters[resource_id]` (string, optional) — Filtrer par ID de ressource (ID d’asset, ID de projet, ID d’utilisateur)
- `filters[user_id]` (string, optional) — Filtrer par ID d’utilisateur
- `filters[ip_address]` (string, optional) — Filtrer par adresse IP
- `page` (integer, optional, default: 1) — Numéro de page
- `page_size` (integer, optional, default: 50) — Enregistrements par page

## Response

### 200

Succesful Event logs response

- `list of AuditEvent`

## Errors

### 401 Unauthorized Error

Unauthorized response

- `code` (integer, optional)
- `errors` (list of HttpErrorErrorsItems, optional)
- `message` (string, optional)

### 404 Not Found Error

Not Found response

- `code` (integer, optional)
- `errors` (list of HttpErrorErrorsItems, optional)
- `message` (string, optional)

## Types

### AuditEvent

- `account_id` (string, optional, nullable)
- `anonymous_user_id` (string, optional, nullable)
- `client` (string, optional, nullable) — Client API à l’origine du déclenchement de l’événement d’audit. Ce champ n’est pas toujours renseigné. Lorsqu’un appel API ayant produit un événement a été effectué via une application OAuth, il se présente ainsi : `oauth_app/:uuid`, et s’il a été effectué via un jeton de développeur, il se présente ainsi : `user_token/:uuid`, l’UUID correspondant à l’ID d’utilisateur auquel le jeton appartient. Voici quelques exemples : - `user_token/57823879-e541-49b0-b902-c43794c4400c` - `oauth_app/80ccf0bb-ae91-49c4-8aec-8f6238c14947` - `web/2024-06-10-18-15` - `pipeline-media-warden/cbd0061f6f190489e8af3137b8707b33f498f53f` - `null`
- `event_type` (enum, optional)
  - Allowed values: `account_locked`, `account_member_created`, `account_member_deleted`, `account_member_updated`, `account_mfa_enforced`, `account_fio_version_migrated`, `account_fio_version_migrated`, `account_ownership_transferred`, `account_restored`, `account_updated`, `label_updated`, `collaborator_added`, `comment_created`, `email_address_changed`, `email_confirmed`, `google_auth_disabled`, `join_presentation_request_approved`, `join_project_request_approved`, `join_review_link_request_approved`, `join_team_request_approved`, `login_factor_created`, `login_factor_validated`, `account_permissions_granted_to_user`, `comment_liked`, `email_change_confirmation_requested`, `file_uploaded`, `google_auth_enabled`, `new_user_email_confirmation_requested`, `project_permissions_granted_to_account_user_group`, `project_permissions_granted_to_user`, `resource_invite_sent`, `share_viewed`, `transfer_batch_completed`, `user_mfa_enforced`, `workspace_permissions_granted_to_account_user_group`, `workspace_permissions_granted_to_user`, `new_device_login`, `password_changed`, `password_reset_requested`, `pending_account_member_created`, `pending_account_member_deleted`, `pending_team_member_created`, `pending_team_member_deleted`, `project_unarchived`, `push_tokens_added`, `push_tokens_deleted`, `role_added`, `role_removed`, `session_revoked`, `team_created`, `team_creator_updated`, `team_deleted`, `team_lifecycle_policy_updated`, `team_member_created`, `team_member_deleted`, `team_member_reset`, `team_member_updated`, `team_updated`, `user_deactivated`, `user_login`, `user_login_attempt`, `user_reactivated`, `user_updated`, `anonymous_user_created`, `comment_completed`, `comment_deleted`, `comment_uncompleted`, `comment_updated`, `join_request_accepted`, `join_request_created`, `join_request_declined`, `join_request_deleted`, `join_request_reset`, `pending_reviewer_created`, `pending_reviewer_deleted`, `presentation_created`, `presentation_deleted`, `presentation_updated`, `project_archived`, `project_created`, `project_deleted`, `project_invite_link_created`, `project_invite_link_revoked`, `project_moved`, `project_restored`, `project_updated`, `reviewer_created`, `reviewer_deleted`, `review_link_assets_added`, `review_link_assets_deleted`, `review_link_created`, `review_link_deleted`, `review_link_emailed`, `review_link_updated`, `subscription_cancelled`, `subscription_card_updated`, `subscription_created`, `subscription_line_item_created`, `subscription_line_item_deleted`, `subscription_restored`, `subscription_updated`, `user_signup`, `action_created`, `action_deleted`, `action_updated`, `oauth_app_created`, `oauth_app_deleted`, `oauth_app_updated`, `oauth_app_enabled`, `oauth_app_disabled`, `user_token_created`, `user_token_deleted`, `user_token_disabled`, `user_token_enabled`, `user_token_updated`, `webhook_created`, `webhook_deleted`, `webhook_updated`, `asset_copied`, `asset_created`, `asset_deleted`, `asset_moved`, `asset_restored`, `assets_unversioned`, `asset_updated`, `asset_versioned`, `high_risk_sign_up`, `sbwm_template_created`, `sbwm_template_deleted`, `sbwm_template_updated`, `allowed_domain_created`, `allowed_domain_deleted`, `collaborator_deleted`, `media_deleted`, `asset_metadata_created`, `media_created`, `pending_collaborator_created`, `pending_collaborator_deleted`, `plan_created`, `plan_deleted`, `plan_updated`, `preference_updated`, `asset_archived`, `asset_unarchived`, `project_archive_completed`, `project_unarchive_completed`, `reply_created`
- `event_details` (AuditEventEventDetails, optional) — Détails de l’événement. Cela varie considérablement d’un type d’événement à l’autre, mais vous trouverez des exemples dans les exemples de réponses.
- `id` (double, optional) — Identifiant unique
- `inserted_at` (string, optional)
- `ip_address` (string, optional, nullable) — Adresse IP associée à cet événement
- `project_id` (string, optional, nullable) — Identifiant du projet dans lequel cette action s’est produite
- `resource_id` (string, optional) — ID de la ressource référencée
- `resource_type` (enum, optional) — Type de la ressource référencée
  - Allowed values: `account`, `account_member`, `action`, `anonymous_user`, `asset`, `comment_impression`, `comment`, `folder`, `join_request`, `login_factor`, `oauth_app`, `pending_account_member`, `pending_reviewer`, `pending_team_member`, `presentation`, `project`, `project_invite_link`, `reviewer`, `review_link`, `reset_token`, `share`, `subscription`, `subscription_line_item`, `team`, `team_member`, `user`, `user_token`, `transfer_batch`, `version_stack`, `webhook`
- `team_id` (string, optional, nullable) — ID de l’équipe
- `source` (enum, optional) — Source de l’action à l’origine d’une entrée donnée dans le journal d’audit
  - Allowed values: `device`, `internal`, `external`, `unknown`
- `user_id` (string, optional, nullable) — ID d’utilisateur
- `updated_at` (string, optional)

### HttpErrorErrorsItems

- `code` (integer, optional)
- `detail` (string, optional)
- `status` (integer, optional)
- `title` (string, optional)

### AuditEventEventDetails

Détails de l’événement. Cela varie considérablement d’un type d’événement à l’autre, mais vous trouverez des exemples dans les exemples de réponses.

## Examples

### Asset Created

**Response**

```json
[
  {
    "anonymous_user_id": null,
    "client": null,
    "event_type": "asset_created",
    "event_details": {
      "account_id": "6bdcb4d9-9a2e-4548-a765-ae6b27a6c024",
      "ext": ".png",
      "filesize": 170144,
      "filetype": "image/png",
      "index": -17,
      "name": "Sample asset.png",
      "parent_id": "ba6cd478-5ca3-4c1a-2186-82cdaecb3e6c",
      "private": false,
      "project_id": "e9794c94-16a4-4e33-b4e6-cdd9757d0e24",
      "sm_refresh_at": "2024-06-28T21:42:54Z",
      "uploaded_at": "2024-06-28T21:42:54.437202Z"
    },
    "id": 1944044771,
    "inserted_at": "2024-06-28T21:42:54.516273Z",
    "ip_address": "255.255.255.255",
    "project_id": "j2794c94-16a4-4e33-b4e6-cdd9757d0e24",
    "resource_id": "92je2963-24ae-4cd1-be13-19a93c92eb6e",
    "resource_type": "asset",
    "team_id": "5j4d6420-fa8d-4e85-af05-0f26785c54f5",
    "source": "unknown",
    "user_id": "b72b57e0-79f2-4bc7-9b70-99fbc175175c",
    "updated_at": "2024-06-28T21:42:54.516273Z"
  }
]
```

**SDK Code**

```python Asset Created
import requests

url = "https://api.frame.io/v2/users/erfb57e0-79f2-4bc7-9b70-99fbc175175c/events"

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers)

print(response.json())
```

```javascript Asset Created
const url = 'https://api.frame.io/v2/users/erfb57e0-79f2-4bc7-9b70-99fbc175175c/events';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Asset Created
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api.frame.io/v2/users/erfb57e0-79f2-4bc7-9b70-99fbc175175c/events"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("Authorization", "Bearer <token>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Asset Created
require 'uri'
require 'net/http'

url = URI("https://api.frame.io/v2/users/erfb57e0-79f2-4bc7-9b70-99fbc175175c/events")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
```

```java Asset Created
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://api.frame.io/v2/users/erfb57e0-79f2-4bc7-9b70-99fbc175175c/events")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php Asset Created
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://api.frame.io/v2/users/erfb57e0-79f2-4bc7-9b70-99fbc175175c/events', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
  ],
]);

echo $response->getBody();
```

```csharp Asset Created
using RestSharp;

var client = new RestClient("https://api.frame.io/v2/users/erfb57e0-79f2-4bc7-9b70-99fbc175175c/events");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift Asset Created
import Foundation

let headers = ["Authorization": "Bearer <token>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://api.frame.io/v2/users/erfb57e0-79f2-4bc7-9b70-99fbc175175c/events")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

### Asset Moved

**Response**

```json
[
  {
    "anonymous_user_id": null,
    "client": null,
    "event_type": "asset_moved",
    "event_details": {
      "new_parent_id": "66c38214-390f-4609-9522-fd858dac8569",
      "old_parent_id": "aasfd478-5ca3-4c1a-a186-82cdaecb3e6c"
    },
    "id": 1943856518,
    "inserted_at": "2024-06-28T21:44:54.091046Z",
    "ip_address": null,
    "project_id": "e97s7c94-16a4-4e33-b4e6-cdd9757d0e24",
    "resource_id": "c99e2963-24ae-4cd1-be13-19a93c92eb6e",
    "resource_type": "asset",
    "team_id": "b44d1220-fa8d-4e85-af05-0f26785c54f5",
    "source": "unknown",
    "user_id": "eefbf97e0-79f2-4bc7-9b70-99fbc175175c",
    "updated_at": "2024-06-28T21:44:54.091046Z"
  }
]
```

**SDK Code**

```python Asset Moved
import requests

url = "https://api.frame.io/v2/users/erfb57e0-79f2-4bc7-9b70-99fbc175175c/events"

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers)

print(response.json())
```

```javascript Asset Moved
const url = 'https://api.frame.io/v2/users/erfb57e0-79f2-4bc7-9b70-99fbc175175c/events';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Asset Moved
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api.frame.io/v2/users/erfb57e0-79f2-4bc7-9b70-99fbc175175c/events"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("Authorization", "Bearer <token>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Asset Moved
require 'uri'
require 'net/http'

url = URI("https://api.frame.io/v2/users/erfb57e0-79f2-4bc7-9b70-99fbc175175c/events")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
```

```java Asset Moved
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://api.frame.io/v2/users/erfb57e0-79f2-4bc7-9b70-99fbc175175c/events")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php Asset Moved
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://api.frame.io/v2/users/erfb57e0-79f2-4bc7-9b70-99fbc175175c/events', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
  ],
]);

echo $response->getBody();
```

```csharp Asset Moved
using RestSharp;

var client = new RestClient("https://api.frame.io/v2/users/erfb57e0-79f2-4bc7-9b70-99fbc175175c/events");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift Asset Moved
import Foundation

let headers = ["Authorization": "Bearer <token>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://api.frame.io/v2/users/erfb57e0-79f2-4bc7-9b70-99fbc175175c/events")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

### Review Link Updated

**Response**

```json
[
  {
    "anonymous_user_id": null,
    "client": "web/2024-06-24-18-11",
    "event_type": "review_link_updated",
    "event_details": {
      "password": "pas"
    },
    "id": 1929542681,
    "inserted_at": "2024-06-27T09:43:37.358532Z",
    "ip_address": "97.120.111.2",
    "project_id": "e9791f94-16a4-4e33-b4e6-cdd9757d0e24",
    "resource_id": "a57eb65f-ff57-4099-ac61-b2f0a13365c0",
    "resource_type": "review_link",
    "team_id": "b4td6420-fa8d-4e85-af05-0f26785c54f5",
    "source": "internal",
    "user_id": "ezrb57e0-79f2-4bc7-9b70-99fbc125175c",
    "updated_at": "2024-06-27T09:43:37.358532Z"
  }
]
```

**SDK Code**

```python Review Link Updated
import requests

url = "https://api.frame.io/v2/users/erfb57e0-79f2-4bc7-9b70-99fbc175175c/events"

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers)

print(response.json())
```

```javascript Review Link Updated
const url = 'https://api.frame.io/v2/users/erfb57e0-79f2-4bc7-9b70-99fbc175175c/events';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Review Link Updated
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api.frame.io/v2/users/erfb57e0-79f2-4bc7-9b70-99fbc175175c/events"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("Authorization", "Bearer <token>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Review Link Updated
require 'uri'
require 'net/http'

url = URI("https://api.frame.io/v2/users/erfb57e0-79f2-4bc7-9b70-99fbc175175c/events")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
```

```java Review Link Updated
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://api.frame.io/v2/users/erfb57e0-79f2-4bc7-9b70-99fbc175175c/events")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php Review Link Updated
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://api.frame.io/v2/users/erfb57e0-79f2-4bc7-9b70-99fbc175175c/events', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
  ],
]);

echo $response->getBody();
```

```csharp Review Link Updated
using RestSharp;

var client = new RestClient("https://api.frame.io/v2/users/erfb57e0-79f2-4bc7-9b70-99fbc175175c/events");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift Review Link Updated
import Foundation

let headers = ["Authorization": "Bearer <token>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://api.frame.io/v2/users/erfb57e0-79f2-4bc7-9b70-99fbc175175c/events")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

### User Login Attempt

**Response**

```json
[
  {
    "anonymous_user_id": null,
    "client": "auth",
    "event_type": "user_login_attempt",
    "event_details": {
      "strikes": 1
    },
    "id": 1740327297,
    "inserted_at": "2024-06-04T21:29:37.320025Z",
    "ip_address": "172.250.231.232",
    "project_id": null,
    "resource_id": "zrfb57e0-9b70-79f2-4bc7-99fbc175175c",
    "resource_type": "user",
    "team_id": null,
    "source": "unknown",
    "user_id": "zrfb57e0-9b70-79f2-4bc7-99fbc175175c",
    "updated_at": "2024-06-04T21:29:37.320025Z"
  }
]
```

**SDK Code**

```python User Login Attempt
import requests

url = "https://api.frame.io/v2/users/erfb57e0-79f2-4bc7-9b70-99fbc175175c/events"

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers)

print(response.json())
```

```javascript User Login Attempt
const url = 'https://api.frame.io/v2/users/erfb57e0-79f2-4bc7-9b70-99fbc175175c/events';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go User Login Attempt
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api.frame.io/v2/users/erfb57e0-79f2-4bc7-9b70-99fbc175175c/events"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("Authorization", "Bearer <token>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby User Login Attempt
require 'uri'
require 'net/http'

url = URI("https://api.frame.io/v2/users/erfb57e0-79f2-4bc7-9b70-99fbc175175c/events")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
```

```java User Login Attempt
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://api.frame.io/v2/users/erfb57e0-79f2-4bc7-9b70-99fbc175175c/events")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php User Login Attempt
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://api.frame.io/v2/users/erfb57e0-79f2-4bc7-9b70-99fbc175175c/events', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
  ],
]);

echo $response->getBody();
```

```csharp User Login Attempt
using RestSharp;

var client = new RestClient("https://api.frame.io/v2/users/erfb57e0-79f2-4bc7-9b70-99fbc175175c/events");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift User Login Attempt
import Foundation

let headers = ["Authorization": "Bearer <token>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://api.frame.io/v2/users/erfb57e0-79f2-4bc7-9b70-99fbc175175c/events")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```