Ana içeriğe geç

Endpoints With No Requests Report

Endpoint

GET /apiops/projects/{projectName}/reports/inactive-endpoints

The Management API counterpart of the Endpoints with No Requests report on the Analytics screens. Like Clients With No Requests, it is project-scoped: the project is part of the path and is authorized before the report is built.

Every endpoint of the project's API proxies is listed with its request counts; pass maxUsage=0 for the strictly unused ones.

Authentication

Requires a Personal API Access Token whose user holds Analytics / View permission in the project named in the path. A project the caller cannot see answers 404 — the same answer as a project that does not exist, so the endpoint cannot be used to discover project names.

A platform-scoped (administration) token has no project to read and is refused with 400 malformedRequest.

Authorization: Bearer YOUR_TOKEN

Request

Path Parameters

ParameterTypeRequiredDescription
projectNamestringYesName of the project whose endpoints are reported

Query Parameters

ParameterTypeRequiredDescription
environmentNamestringYesName of the environment whose traffic log is read
fromstringNoRange start, ISO-8601 or Elasticsearch date math. Default now-30d
tostringNoRange end, ISO-8601 or Elasticsearch date math. Default now
apiProxyNamestringNoRestricts the report to one API proxy, by name
minUsageintegerNoLowest request count a row may have. Default 0
maxUsageintegerNoHighest request count a row may have. Pass 0 for the strictly unused endpoints
pageintegerNoZero-based page index
sizeintegerNoRows per page
sortstringNofield[,asc|desc] over apiProxyName, httpMethod, endpoint, total, endpointRef

Notes

  • References travel as names: the proxy as its project-unique name, the endpoint as its path plus HTTP method. No internal identifier appears in the response, so apiProxyName can be fed straight back into /api-proxies/{apiProxyName}.
  • httpMethod is what distinguishes two rows of the same path: GET /pet and POST /pet are different endpoints. It is null where the definition genuinely has no HTTP method — SOAP operations, and the method-less proxy kinds (reverse proxy, mirror, connector), whose single row describes the whole proxy and carries endpoint: "/".
  • endpointRef is the default ordering: proxy name, then HTTP method, then path. It is unique within a project, which is what makes a page walk repeatable.
  • An apiProxyName outside the caller's project scope answers 404.

Response

Success Response (200 OK)

{
"status": "SUCCESS",
"items": [
{
"apiProxyName": "PetstoreProxy",
"httpMethod": "POST",
"endpoint": "/pet/{petId}/uploadImage",
"counts": {
"successful": 0,
"blocked": 0,
"error": 0,
"total": 0
}
},
{
"apiProxyName": "LegacySoapProxy",
"endpoint": "GetCustomerBalance",
"counts": {
"successful": 12,
"blocked": 0,
"error": 1,
"total": 13
}
}
],
"page": 0,
"size": 20,
"totalElements": 2,
"totalPages": 1,
"sort": ["endpointRef,asc"],
"coverage": {
"dataAvailableFrom": "2026-06-01T00:00:00Z",
"warning": "apinizerManagerApp.inactiveEndpoints.coverageWarning",
"retentionDays": 90
}
}

Response Fields

FieldTypeDescription
apiProxyNamestringName of the API proxy that owns the endpoint
httpMethodstringHTTP method of the endpoint; absent for SOAP operations and method-less proxies
endpointstringEndpoint path as defined on the proxy; / for a proxy that has no methods
counts.successfulintegerRequests the gateway answered as SUCCESS inside the range
counts.blockedintegerRequests blocked by a policy
counts.errorintegerRequests that ended in an error
counts.totalintegerSum of the three
coverage.dataAvailableFromstringOldest traffic-log record of this project and environment
coverage.warningstringSet when the requested range is not fully covered by the traffic log
coverage.retentionDaysintegerTraffic-log retention in days, when the connector deletes old indices
Warning

counts.total: 0 means no request inside the retained traffic log, not "never called". Read coverage.dataAvailableFrom before acting on it: a pipeline that retires every endpoint with a zero total would retire the ones whose traffic simply fell out of the retention window.

Error Responses

StatuserrorKeyWhen
400malformedRequestA platform-scoped token, a missing environmentName, or an unreadable page / sort value
404resourceNotFoundUnknown project, unknown environmentName, or an apiProxyName outside the project scope
503temporarilyUnavailableThe environment's Elasticsearch connector is disabled, unconfigured or unreachable

Example

# Every endpoint that received nothing in the last 90 days
curl -X GET \
"https://apinizer.example.com/apiops/projects/MyProject/reports/inactive-endpoints?environmentName=Production&from=now-90d&to=now&maxUsage=0" \
-H "Authorization: Bearer YOUR_TOKEN"

# One proxy's endpoints, busiest first
curl -X GET \
"https://apinizer.example.com/apiops/projects/MyProject/reports/inactive-endpoints?environmentName=Production&apiProxyName=PetstoreProxy&sort=total,desc" \
-H "Authorization: Bearer YOUR_TOKEN"