Basics
These rules apply to all endpoints in the API reference.
Pagination
Section titled “Pagination”List endpoints return one page at a time:
{ "count": 3, "next": "https://app.nebty.de/core/api/brands/f5705d11-6786-4f60-b52c-59a882ecf305/domains/?page=2&page_size=2", "previous": null, "results": []}countis the total number of items in all pages.nextandpreviousare the full URLs of the neighbouring pages, ornull.resultsholds the items of this page.
Control the page with two query parameters:
| Parameter | Default | Meaning |
|---|---|---|
page |
1 |
Page number, starting at 1 |
page_size |
50 |
Items per page, at most 100 |
A larger page_size is cut down to 100 on the brand, domain and scan lists. The takedown list instead returns 400 if page_size is outside 1–100. To read a whole list, follow next until it is null.
List responses also carry the header X-Total-Count with the same value as count.
Compact responses
Section titled “Compact responses”Add compact=true to these list endpoints:
GET /brands/GET /brands/{id}/domains/GET /brands/{id}/scans/
You then get short rows with only the main fields and without embedded scan history. We recommend compact=true for lists. To get the full evidence for one item, call its detail endpoint, for example GET /brands/{id}/domains/{domain_id}/.
Takedown status
Section titled “Takedown status”A new takedown starts with one of two statuses:
| Status | When |
|---|---|
OPEN |
You sent a brand that has active monitoring. The nebty team starts work. |
REQUESTED |
You sent no brand, or the brand has no active monitoring. nebty approves or rejects the request first. |
The status in the 201 response tells you which one applies. After that, read the current status with GET /takedowns/{id}/ and the history with GET /takedowns/{id}/events/. The reference lists all status values.
Errors
Section titled “Errors”Errors come back as JSON with a matching HTTP status code.
| Code | Meaning | Body |
|---|---|---|
400 |
The request data is not valid. | One entry per field, for example {"target_website": ["Enter a valid URL."]} |
401 |
The API key is missing, wrong or inactive. | {"detail": "Invalid or inactive API key."} |
404 |
The item does not exist, or your user has no access to it. | {"detail": "No Brand matches the given query."} |
A brand or takedown that belongs to another customer returns 404, not 403. When you request a takedown for a brand that your user is not a member of, you get 400 with an error on the brand field.