> ## Documentation Index
> Fetch the complete documentation index at: https://gproxy.leenhawk.com/llms.txt
> Use this file to discover all available pages before exploring further.

# GET /admin/api/logs/downstream



## OpenAPI

````yaml /generated/openapi.json get /admin/api/logs/downstream
openapi: 3.1.0
info:
  description: >-
    Forwarding, management, portal and OAuth APIs generated from Rust types.
    Input and output schemas preserve their respective Serde contracts.
    Streaming events and WebSocket messages are documented alongside HTTP
    payloads.
  title: GPROXY HTTP API
  version: 4.2.1
servers: []
security:
  - bearer: []
  - anthropicKey: []
  - googleKey: []
  - queryKey: []
paths:
  /admin/api/logs/downstream:
    get:
      tags:
        - Management
      summary: GET /admin/api/logs/downstream
      parameters:
        - description: ''
          in: query
          name: apiKeyId
          required: false
          schema:
            type:
              - string
              - 'null'
        - description: ''
          in: query
          name: credentialId
          required: false
          schema:
            type:
              - string
              - 'null'
        - description: '`next_cursor` of the previous page.'
          in: query
          name: cursor
          required: false
          schema:
            description: '`next_cursor` of the previous page.'
            format: int64
            type:
              - integer
              - 'null'
        - description: |-
            `next_cursor_id` of the previous page. Without it a cursor is only a
            timestamp, and records sharing a millisecond would repeat.
          in: query
          name: cursorId
          required: false
          schema:
            description: >-
              `next_cursor_id` of the previous page. Without it a cursor is only
              a

              timestamp, and records sharing a millisecond would repeat.
            type:
              - string
              - 'null'
        - description: ''
          in: query
          name: fromMs
          required: false
          schema:
            format: int64
            type:
              - integer
              - 'null'
        - description: Clamped to 1..=500; absent means 50.
          in: query
          name: limit
          required: false
          schema:
            description: Clamped to 1..=500; absent means 50.
            format: uint64
            minimum: 0
            type:
              - integer
              - 'null'
        - description: ''
          in: query
          name: model
          required: false
          schema:
            type:
              - string
              - 'null'
        - description: ''
          in: query
          name: operation
          required: false
          schema:
            type:
              - string
              - 'null'
        - description: ''
          in: query
          name: providerId
          required: false
          schema:
            type:
              - string
              - 'null'
        - description: Exact normalized upstream reason (for example `refusal`).
          in: query
          name: reason
          required: false
          schema:
            description: Exact normalized upstream reason (for example `refusal`).
            type:
              - string
              - 'null'
        - description: One request by id, which for a downstream record is its own id.
          in: query
          name: requestId
          required: false
          schema:
            description: One request by id, which for a downstream record is its own id.
            type:
              - string
              - 'null'
        - description: Exact HTTP response status.
          in: query
          name: status
          required: false
          schema:
            description: Exact HTTP response status.
            format: int32
            type:
              - integer
              - 'null'
        - description: ''
          in: query
          name: toMs
          required: false
          schema:
            format: int64
            type:
              - integer
              - 'null'
        - description: ''
          in: query
          name: userId
          required: false
          schema:
            type:
              - string
              - 'null'
        - description: Administrative scope selected by the caller.
          in: header
          name: x-gproxy-admin-scope
          required: false
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Output_LogPageDto'
          description: Success
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Output_Envelope'
          description: Gateway error
      security:
        - consoleSession: []
        - bearer: []
        - anthropicKey: []
        - googleKey: []
components:
  schemas:
    Output_LogPageDto:
      description: One page of the request list, plus where the next one starts.
      properties:
        items:
          items:
            $ref: '#/components/schemas/Output_LogEntryDto'
          type: array
        nextCursor:
          description: >-
            The `started_at_ms` of the last item, or None at the end of the
            list.

            Hand both cursor halves back unchanged to get the next page.
          format: int64
          type:
            - integer
            - 'null'
        nextCursorId:
          description: |-
            The id of the same item. Two requests can share a millisecond, and a
            timestamp-only cursor would either repeat them forever or skip them;
            the pair is unique because ids are.
          type:
            - string
            - 'null'
      required:
        - items
        - nextCursor
        - nextCursorId
      type: object
    Output_Envelope:
      properties:
        error:
          $ref: '#/components/schemas/Output_EnvelopeBody'
      required:
        - error
      type: object
    Output_LogEntryDto:
      description: One downstream request or physical upstream exchange, as a list row.
      properties:
        apiKeyId:
          type:
            - string
            - 'null'
        clientIp:
          type:
            - string
            - 'null'
        credentialId:
          type:
            - string
            - 'null'
        endedAtMs:
          format: int64
          type:
            - integer
            - 'null'
        error:
          type:
            - string
            - 'null'
        firstResponseAtMs:
          format: int64
          type:
            - integer
            - 'null'
        kind:
          description: '`http`, `ws_connection` or `ws_turn`.'
          type: string
        model:
          type:
            - string
            - 'null'
        operation:
          type:
            - string
            - 'null'
        providerId:
          type:
            - string
            - 'null'
        reason:
          type:
            - string
            - 'null'
        requestId:
          description: |-
            Capture ID. For downstream rows this is also the request ID;
            upstream rows have their own physical exchange ID.
          type: string
        requestMethod:
          type:
            - string
            - 'null'
        requestUrl:
          type:
            - string
            - 'null'
        responseStatus:
          format: int32
          type:
            - integer
            - 'null'
        sessionId:
          type:
            - string
            - 'null'
        startedAtMs:
          format: int64
          type: integer
        state:
          description: |-
            `in_progress`, `completed`, `failed` or `cancelled`. Capture
            completeness, not the upstream's verdict.
          type: string
        userId:
          type:
            - string
            - 'null'
      required:
        - requestId
        - kind
        - sessionId
        - userId
        - apiKeyId
        - providerId
        - credentialId
        - model
        - operation
        - requestMethod
        - requestUrl
        - responseStatus
        - state
        - error
        - reason
        - clientIp
        - startedAtMs
        - firstResponseAtMs
        - endedAtMs
      type: object
    Output_EnvelopeBody:
      properties:
        code:
          type: string
        message:
          type: string
      required:
        - code
        - message
      type: object
  securitySchemes:
    bearer:
      scheme: bearer
      type: http
    anthropicKey:
      in: header
      name: x-api-key
      type: apiKey
    googleKey:
      in: header
      name: x-goog-api-key
      type: apiKey
    queryKey:
      in: query
      name: key
      type: apiKey
    consoleSession:
      in: cookie
      name: gproxy_session
      type: apiKey

````

## Related topics

- [GET /admin/api/logs/downstream/{id}](https://gproxy.leenhawk.com/api-reference/management/get-adminapilogsdownstream-1.md)
- [DELETE /admin/api/logs/downstream](https://gproxy.leenhawk.com/api-reference/management/delete-adminapilogsdownstream.md)
- [POST /admin/api/logs/downstream/delete](https://gproxy.leenhawk.com/api-reference/management/post-adminapilogsdownstreamdelete.md)
- [GET /admin/api/logs/upstream](https://gproxy.leenhawk.com/api-reference/management/get-adminapilogsupstream.md)
- [GET /admin/api/logs/captures/{id}](https://gproxy.leenhawk.com/api-reference/management/get-adminapilogscaptures.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.