---
title: "Approve a referral held for review"
method: POST
path: "/admin/referrals/{id}/approve"
tags: ["Referrals"]
---

# Approve a referral held for review

`POST /admin/referrals/{id}/approve`

## Request

- Base URL: `https://api.crawlora.net/api/v1`
- URL: `https://api.crawlora.net/api/v1/admin/referrals/{id}/approve`
- Auth: API key in header `x-api-key`

Approves the referral attribution given by path `id` that is held in `review_required`, and resumes reward granting. Returns the updated `attribution` and its `rewards`. Approval is refused if the hold came before a paid invoice, repeat calls never double-credit, and an unknown id returns 404.

## Path parameters

- `id` string, required

## Headers

- `x-api-key` string, required

## Response `200`

Review result

- ReferralsAdminReferralReviewResponseDoc
  - `attribution` ReferralsAdminReferralAttributionRecordDoc
    - `click_id` string
    - `code` string
    - `created_at` string
    - `error` string
    - `expires_at` string
    - `first_paid_invoice_id` string
    - `id` string
    - `landing_path` string
    - `qualified_at` string
    - `referred_user_id` string
    - `referrer_user_id` string
    - `review_reason` string
    - `reviewed_at` string
    - `reviewed_by` string
    - `rewarded_at` string
    - `risk_flags` string[]
    - `skip_reason` string
    - `status` 'attributed' | 'qualified' | 'review_required' | 'rewarded' | 'expired' | 'capped' | 'failed' | 'rejected'
    - `stripe_event_id` string
    - `stripe_invoice_id` string
    - `utm_campaign` string
    - `utm_medium` string
    - `utm_source` string
  - `rewards` ReferralsAdminReferralRewardDoc[]
    - `attribution_id` string
    - `created_at` string
    - `credits` integer
    - `credits_grant_error` string
    - `credits_grant_key` string
    - `credits_granted_at` string
    - `id` string
    - `role` 'referrer' | 'referred'
    - `stripe_invoice_id` string
    - `user_id` string

## Other responses

- `401`: Authentication required
- `403`: Admin plan required
- `404`: Referral attribution not found
- `500`: Internal server error

---

[API](https://skmtc.dev/crawlora/apis/crawlora-api.md) · [All operations](https://skmtc.dev/crawlora/apis/crawlora-api/llms.txt) · [OpenAPI document](https://skmtc.dev/crawlora/apis/crawlora-api/revisions/0497899e2016?raw)
