curl --request GET \
--url https://api.arcuserp.com/v1/activity \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.arcuserp.com/v1/activity"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.arcuserp.com/v1/activity', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.arcuserp.com/v1/activity",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.arcuserp.com/v1/activity"
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(string(body))
}HttpResponse<String> response = Unirest.get("https://api.arcuserp.com/v1/activity")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.arcuserp.com/v1/activity")
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{
"object": "list",
"data": [
{
"id": "act_550e8400e29b41d4a716446655440000",
"object": "activity_event",
"entity_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"created_at": "2023-11-07T05:31:56Z",
"actor": {
"type": "user",
"id": "<string>",
"label": "<string>",
"on_behalf_of": {
"type": "user",
"id": "<string>",
"label": "<string>"
}
},
"action": "account.created",
"resource_type": "account",
"resource_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"resource_label": "<string>",
"description": "<string>",
"severity": "info",
"outcome": "success",
"error_code": "<string>",
"request_id": "<string>",
"metadata": {},
"diff": {
"before": "<unknown>",
"after": "<unknown>"
}
}
],
"has_more": true,
"next_cursor": "<string>",
"url": "<string>"
}{
"error": "not_found",
"code": "not_found",
"type": "not_found",
"hint": "The requested order does not exist or does not belong to this entity.",
"param": "expand[0]",
"required": "accounts:read",
"request_id": "req_abc123"
}{
"error": "not_found",
"code": "not_found",
"type": "not_found",
"hint": "The requested order does not exist or does not belong to this entity.",
"param": "expand[0]",
"required": "accounts:read",
"request_id": "req_abc123"
}List activity events
Returns a paginated list of activity events for the entity, filterable by action, resource type, resource id, actor, and date range. Every mutating endpoint writes these events automatically, and there is no way to create one directly.
curl --request GET \
--url https://api.arcuserp.com/v1/activity \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.arcuserp.com/v1/activity"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.arcuserp.com/v1/activity', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.arcuserp.com/v1/activity",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.arcuserp.com/v1/activity"
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(string(body))
}HttpResponse<String> response = Unirest.get("https://api.arcuserp.com/v1/activity")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.arcuserp.com/v1/activity")
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{
"object": "list",
"data": [
{
"id": "act_550e8400e29b41d4a716446655440000",
"object": "activity_event",
"entity_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"created_at": "2023-11-07T05:31:56Z",
"actor": {
"type": "user",
"id": "<string>",
"label": "<string>",
"on_behalf_of": {
"type": "user",
"id": "<string>",
"label": "<string>"
}
},
"action": "account.created",
"resource_type": "account",
"resource_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"resource_label": "<string>",
"description": "<string>",
"severity": "info",
"outcome": "success",
"error_code": "<string>",
"request_id": "<string>",
"metadata": {},
"diff": {
"before": "<unknown>",
"after": "<unknown>"
}
}
],
"has_more": true,
"next_cursor": "<string>",
"url": "<string>"
}{
"error": "not_found",
"code": "not_found",
"type": "not_found",
"hint": "The requested order does not exist or does not belong to this entity.",
"param": "expand[0]",
"required": "accounts:read",
"request_id": "req_abc123"
}{
"error": "not_found",
"code": "not_found",
"type": "not_found",
"hint": "The requested order does not exist or does not belong to this entity.",
"param": "expand[0]",
"required": "accounts:read",
"request_id": "req_abc123"
}Authorizations
API key issued per entity via Settings > Developers > API Keys.
Each key carries scopes (e.g. orders:read, products:write).
Bearer token format: Authorization: Bearer ark_live_ent_
Test keys use ark_test_ent_. Both are issued per entity
via Settings > Developers > API Keys.
Query Parameters
Filter by action string (e.g. account.created, product.updated).
Filter by resource type (e.g. account, product, order).
Filter by resource UUID.
Filter by actor type.
user, api_key, system Filter by actor id (user_id or api_key_id).
Return events created after this timestamp (ISO 8601).
Return events created before this timestamp (ISO 8601).
Full-text search across description, resource_label, user_name.
Number of events to return (max 100).
1 <= x <= 100Cursor for pagination. Pass the id of the last event from the previous page.
Was this page helpful?

