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

# Adverse Media Screening Check

> Learn how to run adverse media screening checks to identify potential risks associated with businesses

The Adverse Media Screening check helps identify potential risks by analyzing news articles, media coverage, and customer reviews related to a business. This guide explains how to run the check, what data to provide, and how to interpret the results.

## Overview

The check searches through various news sources and review platforms to identify:

* Negative news coverage
* Regulatory investigations
* Legal proceedings
* Customer complaints
* Reputational issues

## Running the Check

### API Endpoint

```bash theme={null}
POST https://api.parcha.ai/api/v1/startKYBAgentJob
```

### Request Parameters

<Warning>
  **Important**: You must use your own agent key, not a default or public agent key. Your agent key can be found in the Parcha dashboard under your agent's settings, or in the "Test API Integration" dialog.
</Warning>

<ParamField body="agent_key" type="string" required>
  Your KYB agent key from the Parcha dashboard. This is unique to your organization and agent configuration.
</ParamField>

<ParamField body="check_id" type="string" required>
  Use `"kyb.adverse_media_screening_check_v2"` for adverse media screening.
</ParamField>

<ParamField body="kyb_schema" type="object" required>
  The business information for screening.

  <Expandable title="KYB Schema Properties">
    <ParamField body="id" type="string" required>
      A unique identifier for this check case.
    </ParamField>

    <ParamField body="self_attested_data" type="object" required>
      <ParamField body="business_name" type="string" required>
        The legal name of the business to screen.
      </ParamField>

      <ParamField body="address_of_incorporation" type="object">
        <ParamField body="country_code" type="string">
          The country code where the business is incorporated (ISO 3166-1 alpha-2).
        </ParamField>
      </ParamField>

      <ParamField body="address_of_operation" type="object">
        <ParamField body="country_code" type="string">
          The country code where the business operates (ISO 3166-1 alpha-2).
        </ParamField>
      </ParamField>

      <ParamField body="incorporation_date" type="string">
        The business's incorporation date (YYYY-MM-DD format).
      </ParamField>

      <ParamField body="customer_countries" type="array">
        List of country codes where the business has customers.
      </ParamField>
    </ParamField>
  </Expandable>
</ParamField>

### Example Request

<CodeGroup>
  ```bash cURL theme={null}
  curl -X POST 'https://api.parcha.ai/api/v1/startKYBAgentJob' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "agent_key": "your-kyb-agent-key",
    "check_id": "kyb.adverse_media_screening_check_v2",
    "kyb_schema": {
      "id": "adverse-media-check-001",
      "self_attested_data": {
        "business_name": "Acme Corp",
        "address_of_incorporation": {
          "country_code": "US"
        },
        "address_of_operation": {
          "country_code": "US"
        },
        "incorporation_date": "2020-01-15",
        "customer_countries": ["US", "CA", "GB"]
      }
    }
  }'
  ```

  ```python Python theme={null}
  import requests

  api_key = 'YOUR_API_KEY'
  url = 'https://api.parcha.ai/api/v1/startKYBAgentJob'

  headers = {
      'Authorization': f'Bearer {api_key}',
      'Content-Type': 'application/json'
  }

  data = {
      'agent_key': 'your-kyb-agent-key',  # Replace with your actual agent key
      'check_id': 'kyb.adverse_media_screening_check_v2',
      'payload': {
          'id': 'adverse-media-check-001',
          'self_attested_data': {
              'business_name': 'Acme Corp',
              'address_of_incorporation': {
                  'country_code': 'US'
              },
              'address_of_operation': {
                  'country_code': 'US'
              },
              'incorporation_date': '2020-01-15',
              'customer_countries': ['US', 'CA', 'GB']
          }
      }
  }

  response = requests.post(url, json=data, headers=headers)
  print(response.json())
  ```

  ```typescript TypeScript theme={null}
  import axios from 'axios';

  const apiKey = 'YOUR_API_KEY';
  const url = 'https://api.parcha.ai/api/v1/startKYBAgentJob';

  const data = {
    agent_key: 'your-kyb-agent-key',  // Replace with your actual agent key
    check_id: 'kyb.adverse_media_screening_check_v2',
    payload: {
      id: 'adverse-media-check-001',
      self_attested_data: {
        business_name: 'Acme Corp',
        address_of_incorporation: {
          country_code: 'US'
        },
        address_of_operation: {
          country_code: 'US'
        },
        incorporation_date: '2020-01-15',
        customer_countries: ['US', 'CA', 'GB']
      }
    }
  };

  axios.post(url, data, {
    headers: {
      'Authorization': `Bearer ${apiKey}`,
      'Content-Type': 'application/json'
    }
  })
  .then(response => console.log(response.data))
  .catch(error => console.error('Error:', error));
  ```
</CodeGroup>

### Initial Response

```json theme={null}
{
  "id": "job-abc123",
  "status": "PENDING",
  "created_at": "2024-02-15T10:30:00Z",
  "updated_at": "2024-02-15T10:30:00Z",
  "agent_id": "your-agent-key",
  "input_payload": {
    // Original request payload
  }
}
```

## Retrieving Check Results

Once the job is complete, retrieve the results using the job ID with the `getJobByID` endpoint. Make sure to include the `include_check_results=true` parameter to get the full check results.

```bash theme={null}
GET https://api.parcha.ai/api/v1/getJobByID?job_id=job-abc123&include_check_results=true
```

## Check Process

The adverse media screening check follows these steps:

1. **Data Collection**
   * Searches news archives and media databases
   * Analyzes customer review platforms
   * Gathers information from business registries

2. **Match Analysis**
   * Compares business names and aliases
   * Validates geographic relevance
   * Checks temporal relevance (based on incorporation date)
   * Evaluates source credibility

3. **Risk Assessment**
   * Categorizes findings by severity
   * Analyzes impact on business operations
   * Evaluates reputational risk

## Check Results

Once the check is complete, you can retrieve the results using the check ID. The results will include:

### Response Structure

```typescript theme={null}
{
  type: "KYBAdverseMediaScreeningCheckResultV2";
  verified_adverse_media_hits: Array<BusinessAdverseMediaProfile>;
}

type BusinessAdverseMediaProfile = {
  profile_review: {
    match_rating: {
      match: "STRONG_MATCH" | "PARTIAL_MATCH" | "WEAK_MATCH" | "NO_MATCH" | "UNKNOWN";
      score: number;
    };
    business_name_match: boolean;
    location_match: boolean;
    summarize: () => string;
  };
  business_name: string | null;
  location: string | null;
  adverse_events: Array<{
    event_type: string;
    description: string;
    source_url: string | null;
    source_name: string | null;
    publication_date: string | null;
  }>;
  escalate_for_review: boolean;
}
```

### Example Result

```json theme={null}
{
  "type": "KYBAdverseMediaScreeningCheckResultV2",
  "verified_adverse_media_hits": [
    {
      "profile_review": {
        "match_rating": {
          "match": "STRONG_MATCH",
          "score": 95
        },
        "business_name_match": true,
        "location_match": true
      },
      "business_name": "Company XYZ Inc",
      "location": "Delaware, US",
      "adverse_events": [
        {
          "event_type": "Regulatory Investigation",
          "description": "Company XYZ is under investigation for potential compliance violations regarding financial reporting practices",
          "source_url": "https://example.com/article1",
          "source_name": "Business News Daily",
          "publication_date": "2024-01-15"
        },
        {
          "event_type": "Civil Litigation",
          "description": "Class action lawsuit filed against Company XYZ alleging securities fraud",
          "source_url": "https://example.com/article2",
          "source_name": "Legal News",
          "publication_date": "2024-02-01"
        }
      ],
      "escalate_for_review": true
    }
  ]
}
```

## Risk Categories

The check evaluates findings across different risk levels:

### High Risk

* Criminal activities
* Regulatory violations
* Major legal issues
* Severe financial problems
* Significant fraud allegations

### Medium Risk

* Customer complaints
* Service issues
* Minor legal disputes
* Operational problems
* Negative reviews

### Low Risk

* Isolated incidents
* Minor complaints
* Resolved issues
* Historical events
* Non-material concerns

## Best Practices

1. **Provide Accurate Business Information**
   * Use the legal business name
   * Include all known operating countries
   * Specify accurate incorporation date

2. **Consider Time Frames**
   * Recent events (within 1 year) are most relevant
   * Historical events may require context
   * Consider the business's age when evaluating findings

3. **Evaluate Results Holistically**
   * Consider the credibility of sources
   * Look for patterns in findings
   * Assess the severity and frequency of issues

4. **Follow Up Actions**
   * Document significant findings
   * Investigate serious allegations
   * Consider additional due diligence if needed

## Error Handling

Common errors and their solutions:

| Error Code | Description             | Solution                                                  |
| ---------- | ----------------------- | --------------------------------------------------------- |
| 400        | Missing required fields | Ensure all required fields are provided in the payload    |
| 401        | Invalid API key         | Check your API key is valid and has necessary permissions |
| 429        | Rate limit exceeded     | Implement appropriate request rate limiting               |
| 500        | Internal server error   | Retry the request after a short delay                     |

## Limitations

* The check only covers publicly available information
* Results may vary based on the availability of data in different jurisdictions
* Some sources may have delayed reporting of incidents
* Coverage may be limited in certain geographic regions

## Support

If you encounter any issues or need assistance:

* Email: [support@parcha.ai](mailto:support@parcha.ai)
* Documentation: [https://docs.parcha.ai](https://docs.parcha.ai)
* API Status: [https://status.parcha.ai](https://status.parcha.ai)
