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

# Get effective network view (BASE networks with precedence applied)

> Returns which charging operators your organization can actually reach right now, and through which network. Merges all sources — your own base networks and any published ones you use — and applies the tie-break rule: where the same operator is reachable both ways, your own private network wins over a published one. Filter by country for a regional coverage overview, or to check why a particular operator is or isn't reachable. Sub-networks never appear here — they're slices used for assigning access to token groups, not sources of access themselves.



## OpenAPI

````yaml /openapi/emsp-network/openapi.yaml get /emsp/v1/networks/effective-view
openapi: 3.0.0
info:
  title: Spirii EMSP - Network & Access Control API
  description: >-
    Manages network access and location visibility for secure multi-tenant
    operation.
  version: v1
  contact: {}
servers:
  - url: https://api.spirii.com
    description: Production
security:
  - OAuth2ClientCredentials: []
tags:
  - name: Networks
    description: Network lifecycle management
paths:
  /emsp/v1/networks/effective-view:
    get:
      tags:
        - Networks
      summary: Get effective network view (BASE networks with precedence applied)
      description: >-
        Returns which charging operators your organization can actually reach
        right now, and through which network. Merges all sources — your own base
        networks and any published ones you use — and applies the tie-break
        rule: where the same operator is reachable both ways, your own private
        network wins over a published one. Filter by country for a regional
        coverage overview, or to check why a particular operator is or isn't
        reachable. Sub-networks never appear here — they're slices used for
        assigning access to token groups, not sources of access themselves.
      operationId: NetworkController_getEffectiveView_v1
      parameters:
        - name: Idempotency-Key
          in: header
          description: >-
            Client-generated unique key per operation intent (UUID). Same key +
            identical body replays the original response; same key + different
            body returns 409.
          required: true
          schema:
            type: string
            format: uuid
        - name: after
          required: false
          in: query
          description: >-
            Cursor to start fetching records after — the `pagination.end_cursor`
            of a previous response. Omit it to fetch the first page, and stop
            paging once `pagination.has_next` is false. Sending it empty is a
            400: an empty cursor is a broken cursor, not a request for the first
            page.
          schema:
            minLength: 1
            type: string
        - name: cursor
          required: false
          in: query
          deprecated: true
          description: 'Deprecated: use `after`.'
          schema:
            minLength: 1
            type: string
        - name: limit
          required: false
          in: query
          description: Results per page (1–200)
          schema:
            default: 50
            type: number
        - name: country
          required: false
          in: query
          description: >-
            Only return operators reachable in this country. ISO 3166-1
            **alpha-3** code (for example `DNK`, `DEU`) — not alpha-2.
          schema:
            pattern: ^[A-Z]{3}$
            type: string
      responses:
        '200':
          description: >-
            Paginated effective CPO footprint with the own/published/overlap
            precedence summary counts.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EffectiveViewResponse'
components:
  schemas:
    EffectiveViewResponse:
      type: object
      properties:
        data:
          description: Effective CPO footprint entries for this page.
          type: array
          items:
            $ref: '#/components/schemas/EffectiveNetworkEntryResponse'
        published_base_network_cpo_count:
          type: number
          description: CPO count contributed by published BASE networks.
        own_base_network_cpo_count:
          type: number
          description: CPO count contributed by the tenant's own BASE networks.
        overlap_cpo_count:
          type: number
          description: >-
            CPO count present in both own and published networks (override
            applied).
        pagination:
          description: Pagination state for this page.
          allOf:
            - $ref: '#/components/schemas/PaginationMetaResponse'
        next_cursor:
          type: string
          nullable: true
          example: null
          deprecated: true
          description: 'Deprecated: use `pagination.end_cursor`.'
        has_next:
          type: boolean
          deprecated: true
          description: 'Deprecated: use `pagination.has_next`.'
      required:
        - data
        - published_base_network_cpo_count
        - own_base_network_cpo_count
        - overlap_cpo_count
        - pagination
        - next_cursor
        - has_next
    EffectiveNetworkEntryResponse:
      type: object
      properties:
        cpo_id:
          type: string
          description: Operator ID (eMI3, e.g. `DK*SPI`) of the CPO.
        cpo_name:
          type: string
          description: CPO display name.
        source_network_id:
          type: string
          format: uuid
          description: BASE network the entry resolves from.
        source_network_type:
          type: string
          enum:
            - BASE
          description: Always BASE; SUB networks are excluded from the effective view.
        source_network_published:
          type: boolean
          description: Whether the source BASE network is published.
        published_network_id:
          type: string
          format: uuid
          nullable: true
          description: >-
            The published BASE network that contributed the CPO, if the entry
            came from a published network.
        has_override:
          type: boolean
          description: >-
            Whether the tenant's own BASE network overrode a published one for
            this CPO.
        location_count:
          type: number
          description: Number of locations for the CPO.
        evse_count:
          type: number
          description: Number of EVSEs for the CPO.
        countries:
          description: ISO 3166-1 country codes the CPO operates in.
          type: array
          items:
            type: string
      required:
        - cpo_id
        - cpo_name
        - source_network_id
        - source_network_type
        - source_network_published
        - published_network_id
        - has_override
        - location_count
        - evse_count
        - countries
    PaginationMetaResponse:
      type: object
      properties:
        end_cursor:
          type: string
          nullable: true
          example: null
          description: >-
            Cursor for the end of the current page. Pass it back as `after` to
            fetch the next page; null on the last page.
        has_next:
          type: boolean
          example: false
          description: Whether there are more records to fetch.
      required:
        - end_cursor
        - has_next
  securitySchemes:
    OAuth2ClientCredentials:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: /oauth/token
          scopes:
            emsp:networks:read: View network and access control configuration
            emsp:networks:write: Create/update/delete SUB networks, manage access rules
            emsp:networks:publish: Publish/drain networks (PATCH /networks/:id/publish-state)

````