{
  "info": {
    "_postman_id": "cl-api-v1-collection",
    "name": "Creatorlayer API v1",
    "description": "Official Postman collection for the Creatorlayer API.\n\nSet `baseUrl` to `https://api-sandbox.creatorlayer.eu` for sandbox or `https://api.creatorlayer.eu` for production.\nSet `apiKey` to your Bearer API key.\n\nDocs: https://docs.creatorlayer.eu",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "variable": [
    {
      "key": "baseUrl",
      "value": "https://api-sandbox.creatorlayer.eu",
      "type": "string",
      "description": "Switch to https://api.creatorlayer.eu for production"
    },
    {
      "key": "apiKey",
      "value": "cl_sandbox_YOUR_KEY_HERE",
      "type": "string"
    },
    {
      "key": "verificationId",
      "value": "vrf_01JXXXXXXXXXXXXXXXXXXXXXXX",
      "type": "string"
    },
    {
      "key": "webhookId",
      "value": "whk_01JXXXXXXXXXXXXXXXXXXXXXXX",
      "type": "string"
    }
  ],
  "auth": {
    "type": "bearer",
    "bearer": [
      {
        "key": "token",
        "value": "{{apiKey}}",
        "type": "string"
      }
    ]
  },
  "item": [
    {
      "name": "Verifications",
      "item": [
        {
          "name": "Create verification",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "UUID v4 — generated automatically by Postman. Reuse the same value on retry."
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"obligor_reference\": \"test-complete-001\",\n  \"creator_platforms\": [\"youtube\", \"stripe\"],\n  \"lender_name\": \"Acme Finance\",\n  \"product_type\": \"rbf\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{baseUrl}}/api/v1/verifications",
              "host": ["{{baseUrl}}"],
              "path": ["api", "v1", "verifications"]
            },
            "description": "Initiates a creator income verification. Returns a `verification_id` and `consent_url`.\n\nSend the `consent_url` to your creator so they can connect their platforms.\n\nIn sandbox, use `obligor_reference` values starting with `test-complete-`, `test-fail-`, or `test-expire-` to trigger synthetic events."
          }
        },
        {
          "name": "Get verification status",
          "request": {
            "method": "GET",
            "url": {
              "raw": "{{baseUrl}}/api/v1/verifications/{{verificationId}}",
              "host": ["{{baseUrl}}"],
              "path": ["api", "v1", "verifications", "{{verificationId}}"]
            },
            "description": "Poll verification status. Possible values: `pending_consent`, `processing`, `completed`, `failed`, `expired`.\n\nPoll at a minimum of 5-second intervals, or use webhooks instead."
          }
        },
        {
          "name": "Get Risk Tape",
          "request": {
            "method": "GET",
            "url": {
              "raw": "{{baseUrl}}/api/v1/verifications/{{verificationId}}/tape",
              "host": ["{{baseUrl}}"],
              "path": ["api", "v1", "verifications", "{{verificationId}}", "tape"]
            },
            "description": "Retrieve the full Risk Tape once status is `completed`. Contains eligibility, metrics, data quality, and platform data."
          }
        },
        {
          "name": "Get benchmarks",
          "request": {
            "method": "GET",
            "url": {
              "raw": "{{baseUrl}}/api/v1/benchmarks/{{verificationId}}",
              "host": ["{{baseUrl}}"],
              "path": ["api", "v1", "benchmarks", "{{verificationId}}"]
            },
            "description": "Compare a creator's risk metrics against the full population. Returns percentile ranks. Only available after status is `completed`."
          }
        }
      ]
    },
    {
      "name": "Webhooks",
      "item": [
        {
          "name": "Register webhook endpoint",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"url\": \"https://your-app.example.com/webhooks/creatorlayer\",\n  \"events\": [\"verification.completed\", \"verification.failed\", \"verification.expired\"]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{baseUrl}}/api/v1/webhooks",
              "host": ["{{baseUrl}}"],
              "path": ["api", "v1", "webhooks"]
            },
            "description": "Register a webhook endpoint to receive verification events. Store the returned `webhook_id` to manage the endpoint later."
          }
        },
        {
          "name": "List webhook endpoints",
          "request": {
            "method": "GET",
            "url": {
              "raw": "{{baseUrl}}/api/v1/webhooks",
              "host": ["{{baseUrl}}"],
              "path": ["api", "v1", "webhooks"]
            }
          }
        },
        {
          "name": "Delete webhook endpoint",
          "request": {
            "method": "DELETE",
            "url": {
              "raw": "{{baseUrl}}/api/v1/webhooks/{{webhookId}}",
              "host": ["{{baseUrl}}"],
              "path": ["api", "v1", "webhooks", "{{webhookId}}"]
            }
          }
        }
      ]
    },
    {
      "name": "GDPR (gdpr_admin only)",
      "description": "These endpoints require a `gdpr_admin` API key. Contact hello@creatorlayer.eu to request one.",
      "item": [
        {
          "name": "Access — retrieve creator data",
          "request": {
            "method": "GET",
            "url": {
              "raw": "{{baseUrl}}/api/v1/gdpr/access?email=creator@example.com",
              "host": ["{{baseUrl}}"],
              "path": ["api", "v1", "gdpr", "access"],
              "query": [
                {
                  "key": "email",
                  "value": "creator@example.com",
                  "description": "Supply email or obligor_id (or both)"
                },
                {
                  "key": "obligor_id",
                  "value": "",
                  "disabled": true
                }
              ]
            },
            "description": "Retrieve all data held for a creator. Supply `email`, `obligor_id`, or both."
          }
        },
        {
          "name": "Erase — delete creator data",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"email\": \"creator@example.com\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{baseUrl}}/api/v1/gdpr/erase",
              "host": ["{{baseUrl}}"],
              "path": ["api", "v1", "gdpr", "erase"]
            },
            "description": "Permanently erase all data for a creator (GDPR Art. 17 right to erasure). Supply `email`, `obligor_id`, or both."
          }
        },
        {
          "name": "Export — portable data export",
          "request": {
            "method": "GET",
            "url": {
              "raw": "{{baseUrl}}/api/v1/gdpr/export?email=creator@example.com",
              "host": ["{{baseUrl}}"],
              "path": ["api", "v1", "gdpr", "export"],
              "query": [
                {
                  "key": "email",
                  "value": "creator@example.com"
                },
                {
                  "key": "obligor_id",
                  "value": "",
                  "disabled": true
                }
              ]
            },
            "description": "Export all data for a creator in a portable format (GDPR Art. 20 right to portability)."
          }
        }
      ]
    },
    {
      "name": "Health",
      "item": [
        {
          "name": "Health check",
          "request": {
            "method": "GET",
            "url": {
              "raw": "{{baseUrl}}/health",
              "host": ["{{baseUrl}}"],
              "path": ["health"]
            },
            "description": "Returns API health status and support information. No authentication required."
          }
        }
      ]
    }
  ]
}
