# API reference

Source: https://ethicsportal.eu/developers/api/

## EthicsPortal API 1.1.0

Report metadata, organisation and whistleblowing channel setup, administration, product feedback and outbound webhooks. Each token carries the scopes chosen at issuance; write scopes are opt-in. Report content, attachments and their metadata, messages, notes, category, closure outcome, retaliation, reporter identity and access codes are always excluded. Billing and agreement acceptance require a browser session.

Information

* OpenAPI version: `3.1.0`

## Operations

GET

[/identity.json](https://ethicsportal.eu/developers/api/operations/getidentity/)

GET

[/organizations/{organization\_id}/whistleblower/portal.json](https://ethicsportal.eu/developers/api/operations/getchannel/)

GET

[/organizations/{organization\_id}/whistleblower/reports.json](https://ethicsportal.eu/developers/api/operations/listreports/)

GET

[/organizations/{organization\_id}/whistleblower/reports/{id}.json](https://ethicsportal.eu/developers/api/operations/getreport/)

POST

[/organizations.json](https://ethicsportal.eu/developers/api/operations/createorganization/)

GET

[/organizations/{organization\_id}/whistleblower/portal/configuration.json](https://ethicsportal.eu/developers/api/operations/getchannelconfiguration/)

PATCH

[/organizations/{organization\_id}/whistleblower/portal/configuration.json](https://ethicsportal.eu/developers/api/operations/updatechannelconfiguration/)

GET

[/organizations/{organization\_id}/webhooks.json](https://ethicsportal.eu/developers/api/operations/listwebhooks/)

POST

[/organizations/{organization\_id}/webhooks.json](https://ethicsportal.eu/developers/api/operations/createwebhook/)

GET

[/organizations/{organization\_id}/webhooks/{webhook\_id}.json](https://ethicsportal.eu/developers/api/operations/getwebhook/)

DELETE

[/organizations/{organization\_id}/webhooks/{webhook\_id}.json](https://ethicsportal.eu/developers/api/operations/deletewebhook/)

PATCH

[/organizations/{organization\_id}/webhooks/{webhook\_id}.json](https://ethicsportal.eu/developers/api/operations/updatewebhook/)

POST

[/organizations/{organization\_id}/webhooks/{webhook\_id}/rotate.json](https://ethicsportal.eu/developers/api/operations/rotatewebhooksecret/)

POST

[/organizations/{organization\_id}/webhooks/{webhook\_id}/test.json](https://ethicsportal.eu/developers/api/operations/testwebhook/)

GET

[/organizations/{organization\_id}/webhooks/{webhook\_id}/deliveries.json](https://ethicsportal.eu/developers/api/operations/listwebhookdeliveries/)

POST

[/organizations/{organization\_id}/webhooks/{webhook\_id}/deliveries/{delivery\_id}/retry.json](https://ethicsportal.eu/developers/api/operations/retrywebhookdelivery/)

GET

[/organizations/{organization\_id}/whistleblower/audit\_logs.json](https://ethicsportal.eu/developers/api/operations/listaudittrail/)

GET

[/organizations/{organization\_id}/whistleblower/reports/{id}/audit-log.json](https://ethicsportal.eu/developers/api/operations/listreportaudittrail/)

GET

[/organizations/{organization\_id}/members.json](https://ethicsportal.eu/developers/api/operations/listmembers/)

GET

[/organizations/{organization\_id}/invitations.json](https://ethicsportal.eu/developers/api/operations/listinvitations/)

POST

[/organizations/{organization\_id}/invitations.json](https://ethicsportal.eu/developers/api/operations/createinvitation/)

DELETE

[/organizations/{organization\_id}/invitations/{invitation\_id}.json](https://ethicsportal.eu/developers/api/operations/revokeinvitation/)

POST

[/organizations/{organization\_id}/invitations/{invitation\_id}/resend.json](https://ethicsportal.eu/developers/api/operations/resendinvitation/)

PATCH

[/organizations/{organization\_id}/profile.json](https://ethicsportal.eu/developers/api/operations/updateorganization/)

GET

[/me/invitations.json](https://ethicsportal.eu/developers/api/operations/listmyinvitations/)

PATCH

[/me/invitations/{invitation\_id}/accept.json](https://ethicsportal.eu/developers/api/operations/acceptinvitation/)

PATCH

[/me/invitations/{invitation\_id}/decline.json](https://ethicsportal.eu/developers/api/operations/declineinvitation/)

GET

[/organizations/{organization\_id}/whistleblower/documents.json](https://ethicsportal.eu/developers/api/operations/listdocuments/)

GET

[/organizations/{organization\_id}/whistleblower/documents/compliance\_report.pdf](https://ethicsportal.eu/developers/api/operations/downloadcompliancereport/)

GET

[/organizations/{organization\_id}/whistleblower/documents/compliance\_certificate.pdf](https://ethicsportal.eu/developers/api/operations/downloadcompliancecertificate/)

GET

[/organizations/{organization\_id}/whistleblower/documents/whistleblower\_policy.docx](https://ethicsportal.eu/developers/api/operations/downloadwhistleblowerpolicy/)

GET

[/organizations/{organization\_id}/whistleblower/documents/privacy\_notice.docx](https://ethicsportal.eu/developers/api/operations/downloadprivacynotice/)

GET

[/organizations/{organization\_id}/whistleblower/documents/poster.pdf](https://ethicsportal.eu/developers/api/operations/downloadposter/)

GET

[/organizations/{organization\_id}/whistleblower/documents/case\_handler\_manual.pdf](https://ethicsportal.eu/developers/api/operations/downloadcasehandlermanual/)

GET

[/organizations/{organization\_id}/subscriptions.json](https://ethicsportal.eu/developers/api/operations/getbillingstatus/)

POST

[/organizations/{organization\_id}/subscriptions/checkout.json](https://ethicsportal.eu/developers/api/operations/createcheckoutlink/)

POST

[/organizations/{organization\_id}/subscriptions/billing\_portal.json](https://ethicsportal.eu/developers/api/operations/createbillingportallink/)

POST

[/me/feedback.json](https://ethicsportal.eu/developers/api/operations/submitfeedback/)

POST

[Receive a webhook event](https://ethicsportal.eu/developers/api/webhooks/receivereportevent/) WEBHOOK

## Authentication

### personalToken

Personal token, prefixed ep\_pat\_. It belongs to a user and acts with that user’s current role in every organisation they belong to, so some operations also need a role. Only personal tokens can create organisations, and answer the user’s own invitations. Send it as a bearer token. It expires after 90 days and carries fixed scopes chosen at issuance; each operation lists the scope it requires.

**Security scheme type:** http

### organizationToken

Organisation token, prefixed ep\_oat\_. It belongs to one organisation, is managed by its administrators and keeps working when staff change. It has no role: its scopes alone decide what it can do. Send it as a bearer token. It expires after 90 days and carries fixed scopes chosen at issuance; each operation lists the scope it requires.

**Security scheme type:** http
