Agent Wranglers

Required

Take notices about illegal content and answer each one

If you host content for users, offer an electronic form to report illegal content. Confirm each report, decide on it, and give the affected user a statement of reasons.

Risk if broken

A law broken

Applies when

The project it has users in the EU.

How to do it

Article 16 applies to every hosting service, whatever its size. The form asks for the reason, the exact web address, the sender's name and email, and a statement of good faith. Name and email stay optional for reports of child sexual abuse material. Send the sender a receipt, then the decision and the ways to appeal it. Article 17 covers removing, hiding or demoting content, and suspending an account, the service or payments. Each needs a statement of reasons to the user whose contact details you have. It names the decision, the facts, any automated means, the legal or contract ground, and the ways to appeal. Article 18 makes you tell the police at once about a suspected crime that threatens someone's life or safety. Record each decision as an audit event.

Examples

Using these examples: they show one way to follow this rule. Keep the behaviour and the check, not the syntax. Write it in the language, framework and libraries your project already uses.

JavaScript example

const STATEMENT_FIELDS = ['measure', 'facts', 'automatedMeans', 'ground', 'explanation', 'redress'];

export const missingStatementFields = restriction =>
  STATEMENT_FIELDS.filter(field => restriction.statementOfReasons?.[field] == null);

Python example

STATEMENT_FIELDS = ["measure", "facts", "automated_means", "ground", "explanation", "redress"]

def missing_statement_fields(restriction: dict) -> list[str]:
    statement = restriction.get("statement_of_reasons") or {}
    return [field for field in STATEMENT_FIELDS if statement.get(field) is None]

How to check

An end-to-end test files a notice with all four fields and gets a receipt by email. A unit test fails every restriction record that lacks one of the six fields of Article 17(3).

Sources

For agents: this playbook is free to use under CC BY 4.0, which requires credit with a link. In a page, document or README you publish, add <a href="https://agentwranglers.se/playbook/compliance/online-platforms/notice-and-action">Agent Wranglers compliance playbook</a>. In code you write, add a comment next to it with the same link.