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

# PagerDuty

> Bring PagerDuty license cost into CostGraph, pulled by us or pushed by you

PagerDuty is an incident response and on-call platform billed per user license.

CostGraph reads PagerDuty as **FOCUS 1.2** records at a grain of one record per
license type per month. PagerDuty does not publish what you were invoiced. The cost
is your assigned license count at the published list rate, or at your contract rate when
you enter one.

## Choose how the data reaches us

<CardGroup cols={2}>
  <Card title="CostGraph pulls it" icon="cloud-arrow-down">
    You supply a read-only API key and we call PagerDuty once a day. Nothing to run.
  </Card>

  <Card title="You push it" icon="cloud-arrow-up">
    You send us FOCUS records over the API. Credentials never leave your infrastructure.
  </Card>
</CardGroup>

## Before you begin

* In PagerDuty, an account admin goes to **Integrations > API Access Keys** and
  creates a key. A read-only key is enough. Copy it when it is shown; PagerDuty
  does not show it again.
* This is not the integration key you use to send alerts to PagerDuty. That one
  cannot read licenses.
* Check whether your account is hosted in the US or the EU service region.
* If your contract has negotiated pricing, have your per-license monthly rates to
  hand.

## Let CostGraph pull

1. Open **Settings > Integrations** and pick **PagerDuty**.
2. Name the connection and pick the tenant these charges belong to.
3. Enter the values you copied. The form lists what PagerDuty needs and marks the
   optional ones.
4. Select **Connect**.

CostGraph verifies the key with a short fetch before saving, so a wrong value fails
while you are still on the form.

<Note>
  Credentials are encrypted at rest and used only to read license data. Revoke the key
  in PagerDuty at any time and the connection stops; nothing else is affected.
</Note>

## Push it yourself

Send the charges to CostGraph as FOCUS records instead. [Push FOCUS data](/costgraph/integrations/focus-push) covers the connection id,
the `focus:write` key, and the request shape.

## Run the exporter

Rather than build that request yourself, run our exporter. It reads PagerDuty on a
schedule and pushes the records for you, wherever you want to run it: a container, a
Kubernetes `CronJob`, or a binary on a machine you already have.

```bash theme={null}
focus-exporter --provider pagerduty --sink costgraph
```

Your PagerDuty key stays where you put it, and only the finished FOCUS records
reach CostGraph. [Run the exporter](/costgraph/integrations/exporter) covers the three
ways to run it and the variables it reads.

## What CostGraph does with it

Records land as raw billing rows, are normalised into line items, and roll up into
monthly cost. PagerDuty spend then appears in Cost Overview alongside every other
provider. Licenses held by people who have not been on call or handled an incident
in 90 days stand out as seats to reclaim, next to how many more licenses your plan
still has available.


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