## Start a line reputation audit

`client.PhoneNumbers.StartReputationAudit(ctx, phoneNumber) (*ReputationAuditStarted, error)`

**post** `/v3/phone_numbers/{phoneNumber}/reputation_audit`

Starts an asynchronous reputation audit for a line and returns an
`audit_id`. Poll the GET endpoint for the result.

Rate limited per line: only one audit may run at a time (a second
request returns `409` while the first is still in progress), and a new
audit can't be started for the same line until a cooldown elapses
(`429`, with `Retry-After` carrying the wait).

### Parameters

- `phoneNumber string`

### Returns

- `type ReputationAuditStarted struct{…}`

  - `AuditID string`

    Identifier for this audit. Poll `GET /v3/phone_numbers/{phoneNumber}/reputation_audit/{auditId}` until `status` is `complete` or `error`.

  - `Status ReputationAuditStartedStatus`

    A newly started audit is `pending`.

    - `const ReputationAuditStartedStatusPending ReputationAuditStartedStatus = "pending"`

    - `const ReputationAuditStartedStatusComplete ReputationAuditStartedStatus = "complete"`

    - `const ReputationAuditStartedStatusError ReputationAuditStartedStatus = "error"`

### Example

```go
package main

import (
  "context"
  "fmt"

  "github.com/linq-team/linq-go"
  "github.com/linq-team/linq-go/option"
)

func main() {
  client := linqgo.NewClient(
    option.WithAPIKey("My API Key"),
  )
  reputationAuditStarted, err := client.PhoneNumbers.StartReputationAudit(context.TODO(), "phoneNumber")
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", reputationAuditStarted.AuditID)
}
```

#### Response

```json
{
  "audit_id": "audit_id",
  "status": "pending"
}
```
