# PHP SDK Quickstart

> Install the Copyleaks PHP SDK, authenticate, and submit your first scan in under 5 minutes with this step-by-step guide.

This guide will walk you through installing the official PHP SDK and running your first scan. In just a few minutes, you'll be able to check content for plagiarism, AI-generated text, and more directly from your PHP application.

Before you start, ensure you have the following:
- An active Copyleaks account. If you don't have one, **[sign up for free](https://api.copyleaks.com/signup)**.
- You can find your API key on the **[API Dashboard](https://api.copyleaks.com/dashboard)**.
## Get Started

<Steps>
  <Step title="Installation">
      First, install the official `copyleaks/php-plagiarism-checker` package from Packagist into your project using Composer.

      ```bash
      composer require copyleaks/php-plagiarism-checker
      ```
  </Step>

  <Step title="Quick Example: Scan Text">
      <Warning>
      Remember to replace the placeholder credentials and webhook URL with your actual values.
      </Warning>

      ```php title="scan.php"
      <?php

      require_once(__DIR__ . '/vendor/autoload.php');

      use Copyleaks\Copyleaks;
      use Copyleaks\CopyleaksFileSubmissionModel;
      use Copyleaks\SubmissionProperties;
      use Copyleaks\SubmissionWebhooks;

      // --- Your Credentials ---
      $EMAIL_ADDRESS = 'YOUR_EMAIL_ADDRESS';
      $KEY = 'YOUR_API_KEY';
      $WEBHOOK_URL = 'https://your-server.com/webhook/{STATUS}';
      // --------------------

      try {
          // Log in to the Copyleaks API
          echo "Authenticating...\n";
          $copyleaks = new Copyleaks();
          $loginToken = $copyleaks->login($EMAIL_ADDRESS, $KEY);
          echo " Logged in successfully!\n";

          // Prepare your content for scanning
          echo "Submitting text for scanning...\n";
          $textToScan = "Hello world, this is a test.";
          $base64Content = base64_encode($textToScan);
          $scanId = time();

          // Configure the scan
          $webhooks = new SubmissionWebhooks($WEBHOOK_URL);
          $properties = new SubmissionProperties($webhooks);
          $properties->setSandbox(true); // Turn on sandbox mode for testing

          $submission = new CopyleaksFileSubmissionModel($base64Content, 'test.txt', $properties);
          
          // Submit the scan to Copyleaks
          $copyleaks->submitFile($loginToken, $scanId, $submission);
          echo " Scan submitted successfully! Scan ID: " . $scanId . "\n";
          echo "You will be notified via your webhook when the scan is complete.\n";

      } catch (Exception $e) {
          echo " An error occurred: " . $e->getMessage() . "\n";
      }
      ```
  </Step>

  <Step title="Understanding the Code">
      The example code performs four main actions to submit a scan:

      1.  **Login:** It authenticates with your email and API key to get a secure login token, which is required for all subsequent requests.
      2.  **Prepare Content:** It takes a simple string of text and encodes it into Base64 format.
      3.  **Configure Scan:** It creates a `SubmissionProperties` object containing `SubmissionWebhooks` to define the scan's behavior. We enable `sandbox` mode for safe testing and provide the webhook URL.
      4.  **Submit for Scanning:** It creates a `CopyleaksFileSubmissionModel` with the content and properties, then sends it to the Copyleaks API. The process is asynchronous; Copyleaks will notify your webhook URL once the scan is complete.
  </Step>
</Steps>

## Next Steps

<CardGroup cols={2}>
  <Card title="GitHub Repository" icon="github" href="https://github.com/Copyleaks/PHP-Plagiarism-Checker">Check the official SDK repository on GitHub for more examples and details.</Card>
  <Card title="Packagist Package" icon="php" href="https://packagist.org/packages/copyleaks/php-plagiarism-checker">View the official package on Packagist to see all available versions.</Card>
</CardGroup>

<CardGroup cols={2}>
  <Card title="Check for Plagiarism" icon="magnifying-glass" href="/guides/authenticity/detect-plagiarism-text">
    Detect plagiarism in text documents using the Copyleaks API. Search billions of sources to find unoriginal content.
  </Card>
  <Card title="Detect AI-Generated Content" icon="robot" href="/guides/ai-detector/ai-text-detection">
    Detect AI-generated text via sync or async API calls. This guide covers sync detection, see the Authenticity API Guide for async.
  </Card>
  <Card title="Assess Grammar and Writing Quality" icon="spell-check" href="/guides/writing/check-grammar">
    Get writing and grammar suggestions via API. Authenticate, submit text, and access full details in the docs.
  </Card>
  <Card title="Moderate Text" icon="shield-halved" href="/guides/moderation/moderate-text">
    Scan and moderate text content for unsafe or policy-relevant material across 10+ categories.
  </Card>
</CardGroup>
