> ## 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.

# IBM Cloud

> Bring IBM Cloud cost into CostGraph, pulled by us or pushed by you

IBM Cloud publishes a monthly cost and usage report for each account, so spend is attributed per resource instance and plan. Spend lands per resource instance, so CostGraph can set each profile against what your nodes actually use.

CostGraph reads IBM Cloud as **FOCUS 1.2** records at a grain of month x resource instance x plan.

## Choose how the data reaches us

<CardGroup cols={2}>
  <Card title="CostGraph pulls it" icon="cloud-arrow-down">
    You supply read-only credentials and we call IBM Cloud 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 the IBM Cloud console, go to **Manage > Access (IAM) > API keys** and create a key, or create one on a service ID.
* Give that user or service ID the **Billing Administrator** role on the Billing service for the account.
* Copy the API key. IBM Cloud displays it only at creation.

## Let CostGraph pull

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

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

<Note>
  Credentials are encrypted at rest and used only to read billing data. Revoke the
  API key in IBM Cloud 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 IBM Cloud 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 ibm --sink costgraph
```

Your IBM Cloud credential 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
daily cost. From there IBM Cloud spend appears in Cost Overview and in anomaly
detection alongside every other provider.


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