Formatted Documents

Submit formatted text for checking

Changed on

Submit plain text or an uploaded file for the formatted text checking flow. The endpoint extracts formatted text assets, stores the original text, submits the check, and charges the authenticated user or selected group.

Send either a text form field or an uploaded file in the text multipart field. The submitted content must pass formatted-text processing, minimum length, maximum length (1048576 symbols, counted on the processed text), balance, group membership, and duplicate-in-progress checks. The maximum length is enforced here as well as by /api/v2/text/validate/, so it applies whether or not the validate endpoint was called first. If a Referer header points to https://plagiarismcheck.org, or a course_name is sent, the created text is also linked to the site integration.

post/api/v2/text/

Request

  • Base URL
    https://plagiarismcheck.org
  • Auth
    API key in header X-API-TOKEN

Request body application/x-www-form-urlencoded

textstring required

Plain text content to parse, store, and submit for a formatted plagiarism check.

group_idinteger

Optional group ID to charge and associate with the check. The authenticated user must belong to the group.

custom_authorstring

Optional custom author display name saved with the text.

course_namestring

Optional name of the course the check belongs to, as your own system knows it. Stored with the check and shown in group reports. Blank values are treated as absent, names are deduplicated server-side, and names longer than 255 characters are truncated.

Example request

{
  "text": "A clear API contract helps developers submit documents, monitor check status, and retrieve structured plagiarism reports without relying on UI-only workflows.\n",
  "group_id": 100,
  "custom_author": "Student Name",
  "course_name": "Introduction to Biology"
}

Response

The formatted text check was created successfully and billing information was returned.

successboolean

Example response

{
  "success": true,
  "data": {
    "text": {
      "id": 15,
      "user_id": 24,
      "filename": "example.pdf",
      "created_at": 1516279363000,
      "updated_at": 1516279364000,
      "submitted_at": 1516279364000,
      "state": 3,
      "language": "en",
      "pages": 30,
      "words": 127,
      "group_id": 100,
      "custom_author": "Student Name",
      "report_id": 13,
      "ai_report_id": 15,
      "creator": {
        "id": 3132945,
        "name": "John Doe",
        "email": "student@example.com",
        "created_at": 1512638171000,
        "updated_at": 1512638171000,
        "allowed_languages": [
          "en"
        ],
        "balance_type": 1,
        "avatar": "https://randomuser.me/api/portraits/lego/1.jpg",
        "is_email_verification_needed": true
      },
      "report": {
        "id": 13,
        "created_at": "1643727471000",
        "source_count": 5,
        "percent": "28.57"
      },
      "ai_report": {
        "enabled": true,
        "id": 15,
        "status": 3,
        "percent": 50.5,
        "processed_percent": 70.25,
        "strong_percent": 40.25,
        "likely_percent": 30,
        "mark": 1,
        "comment": "Lorem ipsum dolor",
        "comment_author": {
          "id": 24,
          "name": "John Doe"
        },
        "type": 3,
        "words": 550,
        "pages": 2,
        "group_id": 100,
        "creator": {
          "id": 3132945,
          "name": "John Doe",
          "email": "student@example.com",
          "created_at": 1512638171000,
          "updated_at": 1512638171000,
          "allowed_languages": [
            "en"
          ],
          "balance_type": 1,
          "avatar": "https://randomuser.me/api/portraits/lego/1.jpg",
          "is_email_verification_needed": true
        },
        "content": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus molestie diam id lacus maximus, ac scelerisque neque suscipit. Pellentesque luctus elit cursus varius aliquam. Nam neque leo, cursus sit amet quam a, dignissim malesuada est. Sed efficitur finibus felis euismod mattis. Donec egestas nunc odio, vitae lacinia nunc pellentesque id. Etiam ornare nunc vel accumsan ullamcorper. Donec sed lacinia orci.\n",
        "chunks": [
          {
            "reliability": 1,
            "position": [
              100,
              200
            ]
          }
        ],
        "ignored_ranges": [
          {
            "id": 123,
            "start": 42,
            "end": 87,
            "filename": "assignment-template.docx",
            "ignore_assignment_template_id": 55
          }
        ]
      }
    },
    "charged": 1
  }
}

Changes

    • info

      added the new optional request property (media type: application/x-www-form-urlencoded)

    • info

      added the new optional request property (media type: multipart/form-data)

    • breaking

      the //////// response's property format changed from email to no format for status

    • breaking

      the /////// response's property format changed from email to no format for status

    • info

      added the optional property //////// to the response with the status

    • info

      added the optional property /////// to the response with the status