> ## Documentation Index
> Fetch the complete documentation index at: https://docs.acedata.cloud/llms.txt
> Use this file to discover all available pages before exploring further.

# Hämta API-anropsloggar från AceDataCloud-plattformen

> Platform API guide - Ace Data Cloud

Fråga efter detaljer för affärs-API-anrop under de senaste 60 dagarna för det aktuella kontot. Lämpligt för att kontrollera debiteringar, lokalisera misslyckade begäranden och felsöka efter tjänst, Application, API eller autentiseringsuppgift.

> Den här sidan frågar efter anropsflödet för kontots egna anrop. Om du bara vill se offentlig anropsstatistik för ett visst API på hela plattformen, använd [API-anropsstatistik](https://platform.acedata.cloud/documents/platform-api-usage).

## Förberedelser

### 1. Skapa en kontotoken

Detta gränssnitt tillhör plattformens administrations-API och kräver **Account Token (kontotoken)**:

1. Logga in på [AceDataCloud-plattformen](https://platform.acedata.cloud).
2. Öppna [Account Token-konsolen](https://platform.acedata.cloud/console/platform-tokens).
3. Klicka på ”Skapa” och spara omedelbart tokenen i lösenordshanteraren eller Secret Manager.

Fullständiga instruktioner finns i [Hantera AceDataCloud-plattformens kontotoken](https://platform.acedata.cloud/documents/platform-token). Kontotoken används för `platform.acedata.cloud/api/v1/**`; för att anropa affärsgränssnittet `api.acedata.cloud/**` används API-autentiseringsuppgifter (Credential), och de två kan inte blandas.

```shell theme={null}
export PLATFORM_TOKEN='din kontotoken'
```

Skriv inte tokenen i frontend-kod, loggar eller offentliga kodarkiv; om den läcker, radera och återskapa den omedelbart i konsolen.

### 2. Förbered filter-ID:n (valfritt)

Om inga filtervillkor skickas kan du visa de poster som det aktuella kontot har behörighet att se. När du behöver begränsa omfattningen:

* `application_id`: hämta från [listan över tjänsteansökningar](https://platform.acedata.cloud/documents/platform-application-list);
* `credential_id`: hämta från [listan över API-autentiseringsuppgifter](https://platform.acedata.cloud/documents/platform-credential-list);
* `api_id`: hämta från [API-listan](https://platform.acedata.cloud/documents/platform-api-list);
* `service_id`: hämta från [tjänstelistan](https://platform.acedata.cloud/documents/platform-service-list).

Vanliga användare behöver inte skicka `user_id`; om det skickas uttryckligen måste det stämma överens med det aktuella kontot, annars returneras `403`. Administratörer kan använda denna parameter för att filtrera mellan konton.

## Gränssnittsöversikt

| Objekt | Innehåll |
| - | - |
| Metod | `GET` |
| URL | `https://platform.acedata.cloud/api/v1/usage/apis/` |
| Autentisering | `Authorization: Bearer ${PLATFORM_TOKEN}` |
| OAuth Scope | `usage:read` (`platform:read` / `platform` kan utökas till att inkludera detta) |
| Sidindelning | `count` + `items`, 10 poster per sida som standard |

## Frågeomfattning

| `perspective` | Betydelse |
| - | - |
| `both` | Standardvärde; returnerar poster som det aktuella kontot betalar för eller faktiskt anropar |
| `billing` | Returnerar endast poster som det aktuella kontot betalar för |
| `actor` | Returnerar endast poster som det aktuella kontot faktiskt anropar |

## Frågeparametrar

| Parameter | Typ | Krävs | Standard | Beskrivning |
| - | - | - | - | - |
| `perspective` | string | Nej | `both` | `billing`, `actor` eller `both` |
| `user_id` | UUID | Nej | — | Endast administratörer kan filtrera efter användare; stöder upprepade parametrar |
| `service_id` | UUID | Nej | — | Filtrera efter tjänst; stöder upprepade parametrar |
| `application_id` | UUID | Nej | — | Filtrera efter Application; stöder upprepade parametrar |
| `api_id` | UUID | Nej | — | Filtrera efter API; stöder upprepade parametrar |
| `credential_id` | UUID | Nej | — | Filtrera efter API-autentiseringsuppgift; stöder upprepade parametrar |
| `status_code` | integer | Nej | — | Filtrera efter HTTP-statuskod; stöder upprepade eller kommaseparerade värden |
| `created_at_from` | datetime | Nej | — | Nedre gräns för skapandetid, ISO 8601 |
| `created_at_to` | datetime | Nej | — | Övre gräns för skapandetid, ISO 8601 |
| `limit` | integer | Nej | 10 | Antal poster per sida, maximalt 100 |
| `offset` | integer | Nej | 0 | Förskjutning för sidindelning |
| `ordering` | string | Nej | `-created_at` | Fallande ordning efter skapandetid |

Om begärandetiden är tidigare än de senaste 60 dagarna returnerar gränssnittet ett `400`-fältvalideringsfel, med information om att fullständiga anropsdetaljer endast sparas i 60 dagar.

## Exempel på begäran

Fråga efter de senaste 100 posterna:

```shell theme={null}
curl --get 'https://platform.acedata.cloud/api/v1/usage/apis/' \
  --data-urlencode 'perspective=both' \
  --data-urlencode 'limit=100' \
  --data-urlencode 'ordering=-created_at' \
  -H "Authorization: Bearer ${PLATFORM_TOKEN}"
```

Filtrera efter tid, Application och misslyckad status:

```shell theme={null}
export APPLICATION_ID='ditt Application-ID'

curl --get 'https://platform.acedata.cloud/api/v1/usage/apis/' \
  --data-urlencode "application_id=${APPLICATION_ID}" \
  --data-urlencode 'created_at_from=2026-09-01T00:00:00Z' \
  --data-urlencode 'created_at_to=2026-09-02T00:00:00Z' \
  --data-urlencode 'status_code=500' \
  --data-urlencode 'limit=100' \
  -H "Authorization: Bearer ${PLATFORM_TOKEN}"
```

Python-exempel på sidindelning:

```python theme={null}
import os
import requests

url = "https://platform.acedata.cloud/api/v1/usage/apis/"
headers = {"Authorization": f"Bearer {os.environ['PLATFORM_TOKEN']}"}
params = {"perspective": "both", "limit": 100, "offset": 0}

response = requests.get(url, headers=headers, params=params, timeout=30)
response.raise_for_status()
data = response.json()

for usage in data["items"]:
    print(usage["created_at"], usage["status_code"], usage["deducted_amount"], usage["trace_id"])

if params["offset"] + len(data["items"]) < data["count"]:
    params["offset"] += len(data["items"])
```

## Exempel på svar

```json theme={null}
{
  "count": 1,
  "items": [
    {
      "id": "00000000-0000-4000-8000-000000000001",
      "user_id": "00000000-0000-4000-8000-000000000002",
      "actor_user_id": "00000000-0000-4000-8000-000000000002",
      "application_id": "00000000-0000-4000-8000-000000000003",
      "api_id": "00000000-0000-4000-8000-000000000004",
      "credential_id": "00000000-0000-4000-8000-000000000005",
      "trace_id": "example-trace-id",
      "status_code": 200,
      "used_amount": 1.25,
      "original_amount": 1.25,
      "deducted_amount": 1.25,
      "remaining_amount": 98.75,
      "started_at": "2026-09-01T08:00:00Z",
      "finished_at": "2026-09-01T08:00:01Z",
      "elapsed": 1.0,
      "created_at": "2026-09-01T08:00:01Z",
      "updated_at": "2026-09-01T08:00:01Z",
      "metadata": {"model": "example-model"},
      "api": {"title": "Example API"},
      "service": {"id": "00000000-0000-4000-8000-000000000006", "title": "Example Service"},
      "credential": {"id": "00000000-0000-4000-8000-000000000005", "name": "Production"}
    }
  ]
}
```

## Viktiga fält

| Fält | Beskrivning |
| - | - |
| `user_id` | Kontot som står för denna debitering |
| `actor_user_id` | Kontot som faktiskt initierar anropet; kan skilja sig från `user_id` när andra auktoriseras att använda autentiseringsuppgifter |
| `used_amount` | Förbrukningen för detta anrop beräknad enligt de ursprungliga reglerna |
| `original_amount` | Den ursprungliga förbrukningen före tillämpning av rabatt |
| `deducted_amount` | Det belopp som faktiskt slutligen dras av |
| `remaining_amount` | Application:s återstående saldo efter att denna debitering har slutförts |
| `elapsed` | Anropstiden som registrerats av servern, i sekunder |
| `trace_id` | Spårningsidentifierare som används vid felsökning av en enskild begäran |
| `metadata` | Offentliga metadata; listan returnerar inte fullständigt innehåll för begäran eller svar |
| `api` / `service` / `credential` | Sammanfattning av associerade objekt för enkel visning; kan vara tom om det associerade objektet inte längre finns |

Enheten för belopp bestäms av motsvarande Application:s `service.unit` och bör inte antas vara USD som standard.

## Fel och omförsök

| HTTP | `error` | Betydelse | Hantering |
| - | - | - | - |
| 400 | Fältvalideringsfel | Frågeområdet är äldre än 60 dagars lagringsperiod | Justera starttiden till inom de senaste 60 dagarna |
| 401 | `not_authenticated` | Kontotoken saknas eller är ogiltig | Kontrollera Account Token, använd inte felaktigt en Credential för verksamheten |
| 403 | `permission_denied` | Begäran innehåller poster som du saknar behörighet att se | Ta bort obehöriga användarfilter |
| 429 | `usage_query_in_progress` | En helt identisk fråga körs fortfarande | Vänta `Retry-After` och försök igen med backoff |
| 503 | `usage_query_timeout` | Frågan överskrider serverns säkra tidsgräns | Begränsa tidsintervallet eller lägg till fler filter innan du försöker igen |

Högst en pågående begäran får hållas för samma uppsättning frågeparametrar. Använd i första hand fönster på en dag eller mindre för omfattande frågor, och överlappa inte identiska begäranden med fasta intervall.

## Nästa steg

* [Aggregera anropsförbrukning](https://platform.acedata.cloud/documents/platform-usage-aggregate)：visa förbrukning sammanfattad efter datum och API.
* [Exportera anropsförbrukning](https://platform.acedata.cloud/documents/platform-usage-export)：ladda ned stora mängder detaljer direkt som CSV.
* [Visa Proxy-anropsposter](https://platform.acedata.cloud/documents/platform-proxy-usage)：fråga poster för tjänster av typen Proxy.
* [Visa detaljer för tjänsteansökan](https://platform.acedata.cloud/documents/platform-application-detail)：kontrollera saldo och beloppsenhet.
* [Rotera API-autentiseringsuppgifter](https://platform.acedata.cloud/documents/platform-credential-rotate)：byt omedelbart ut autentiseringsuppgifterna vid misstänkt läcka.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.