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

# Servicepoint Search (AEMO)

> Search energy customer servicepoint data by account IDs. The API should only return data for servicepoints that are associated with a requested account if the account is open (i.e. where `account.openStatus=='OPEN'`). This api is only required to be implemented by Energy data holders.



## OpenAPI

````yaml /openapi/cdr.yml post /v1/common/customer/{customerId}/servicepoints/search
openapi: 3.0.3
info:
  description: Fiskil Data Holder as a Service (DHaaS) endpoints for the Energy sector
  title: Fiskil Data APIs
  version: 1.5.0
servers:
  - url: https://api.provider.fiskil.com
security:
  - bearerAuth: []
paths:
  /v1/common/customer/{customerId}/servicepoints/search:
    post:
      tags:
        - Common
      summary: Servicepoint Search (AEMO)
      description: >-
        Search energy customer servicepoint data by account IDs. The API should
        only return data for servicepoints that are associated with a requested
        account if the account is open (i.e. where
        `account.openStatus=='OPEN'`). This api is only required to be
        implemented by Energy data holders.
      operationId: servicePointSearch
      parameters:
        - $ref: '#/components/parameters/customerId'
      requestBody:
        $ref: >-
          #/components/requestBodies/SearchServicepointsByCustomerIDAccountIDRequestBody
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Servicepointsearchresponse'
          description: >-
            List of Servicepoints (NMIs) and AEMO participant IDs for the
            queried accounts
        '404':
          $ref: '#/components/responses/responseErrorCustomerIdNotFound'
        '422':
          $ref: '#/components/responses/responseErrorAccountsNotInBody'
components:
  parameters:
    customerId:
      description: >-
        Unique ID of a customer. This ID must not change for the lifecycle of
        the customer
      explode: false
      in: path
      name: customerId
      required: true
      schema:
        type: string
      style: simple
  requestBodies:
    SearchServicepointsByCustomerIDAccountIDRequestBody:
      content:
        application/json:
          schema:
            properties:
              data:
                properties:
                  accountIds:
                    description: Array of specific accountIds to obtain data for
                    items:
                      type: string
                    type: array
                required:
                  - accountIds
                type: object
            required:
              - data
            type: object
      description: Request payload containing list of specific Accounts to obtain data for
      required: true
  schemas:
    Servicepointsearchresponse:
      example:
        data:
          - accountId: 2943-3782
            participantId: RETAILER
            servicePointId: '1234567890'
          - accountId: 2943-3782
            participantId: RETAILER
            servicePointId: '1234567890'
      properties:
        accountId:
          description: The ID of the account
          type: string
        participantId:
          description: The AEMO participant ID of the retailer
          type: string
        servicePointId:
          description: The ID of the service point to which this transaction applies if any
          type: string
      required:
        - accountId
        - participantId
        - servicePointId
      type: object
    GenericError:
      example:
        error: An error message
      type: object
      properties:
        error:
          type: string
          description: A message describing what caused the error
      required:
        - error
  responses:
    responseErrorCustomerIdNotFound:
      description: The customer ID in the URL path is invalid or not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/GenericError'
            example:
              error: Customer not found
    responseErrorAccountsNotInBody:
      description: One or more of the accounts specified in the request body do not exist
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/GenericError'
            example:
              error: Account in query not found
  securitySchemes:
    bearerAuth:
      description: >
        The Fiskil Data Provider will include a self-signed JWT as a Bearer
        token in the `Authorization` header.

        You should verify this JWT using the JWKS URL you can find for your Data
        Provider instance in the Fiskil

        Console. To verify the JWT you **must**:
          * Verify the signature
          * Ensure the token has not expired by checking the `exp` claim
          * The `sub` and `iss` claims are your data provider subdomain
          * The `aud` claim is the URI of the resource being requested (excluding any query parameters)
          * The `jti` value is unique
        For further detail on security and authentication refer to our
        [Authentication](/docs/get-started/authentication) documentation
      type: http
      scheme: bearer
      bearerFormat: JWT

````