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

# Search Business Profiles

> Search for businesses by business name, representative name, or business registration number. This API requires no issuer registration, no certificate, and no client reference id. Each result returned deducts 9 points, and a search with no results deducts nothing.

When `hasMore` is `true`, pass `nextCursor` in `cursor` to fetch the next results. `hasMore` can be `true` even when a response holds fewer results than `limit`, so keep calling based on `hasMore`. One keyword returns up to the first 1,000 results. A test key searches only the mock businesses listed in the guide. [Business profile guide](/en/docs/api-introduction/business-profile)




## OpenAPI

````yaml /openapi.en.yaml get /v1/businessProfiles:search
openapi: 3.1.0
info:
  title: Bolta API
  description: >
    The Bolta e-tax invoice API. [API
    Overview](/en/docs/api-introduction/overview) | [Authentication
    guide](/en/docs/api-introduction/authentication) | [Use
    cases](/en/docs/api-introduction/usecase-b2b)
  version: 1.0.0
servers:
  - url: https://xapi.bolta.io
    description: Bolta API server
security:
  - basicAuth: []
tags:
  - name: Tax Invoice Issuance
    description: >
      Issue and amend e-tax invoices. [Calculating the issuance
      amount](/en/docs/api-introduction/issuance-guide) | [Amendment
      types](/en/docs/api-introduction/amendment-guide)
  - name: Tax Invoice Retrieval
    description: >
      Retrieve e-tax invoice results and request processing status, and download
      the PDF of an issued tax invoice. [Tax invoice PDF
      guide](/en/docs/api-introduction/tax-invoice-pdf)
  - name: Reverse Issuance
    description: >
      Request and manage reverse issuance of e-tax invoices. [Email-approval
      reverse issuance](/en/docs/api-introduction/usecase-reverse-email) |
      [Simple-approval reverse
      issuance](/en/docs/api-introduction/usecase-reverse-simple)
  - name: Cash Receipt
    description: >
      Issue, cancel, and check the status of cash receipts. [Cash receipt
      guide](/en/docs/api-introduction/cash-receipt-guide) | [Cash receipt
      webhooks](/en/docs/api-introduction/webhook-cash-receipt)
  - name: Business Registration Status
    description: >
      Check the registration status and tax type of a business registration
      number. Look up one number or up to 100 numbers at once. This API requires
      no issuer registration and no certificate. Each number whose status the
      API returns deducts 10 points. [Business registration status
      guide](/en/docs/api-introduction/business-registration-status)
  - name: Business Registration Certificate Extraction and Verification
    description: >
      Reads the business registration number, business name, representative
      names, opening date, address, and industries from a business registration
      certificate file, and returns the NTS verification result. This API
      requires no issuer registration and no certificate. Each document whose
      verification result is `MATCHED` or `NOT_MATCHED` deducts 100 points.
      [Business registration certificate extraction and verification
      guide](/en/docs/api-introduction/business-registration-certificate)
  - name: Business Profile
    description: >
      Search for businesses by business name, representative name, or business
      registration number, and retrieve the detailed profile of one business
      registration number. This API requires no issuer registration and no
      certificate. Search deducts 9 points for each result returned, and profile
      retrieval deducts 90 points for each successful retrieval. [Business
      profile guide](/en/docs/api-introduction/business-profile)
  - name: Revenue and Expense
    description: >
      Retrieve the revenue and expense tax invoices of your own business in
      Bolta in the order they changed, and request a collection. Responses
      include documents issued through Bolta and documents collected from
      Hometax. You need a Standard plan or higher, and the calls deduct no
      points. Connect Hometax in the Bolta dashboard first. [Revenue and expense
      guide](/en/docs/api-introduction/revenue-expense)
  - name: Bank Account Transactions
    description: >
      Retrieve the bank accounts and transactions connected to your own business
      in Bolta, and request a sync. You need a Standard plan or higher, and the
      calls deduct no points. Connect bank accounts in the Bolta dashboard
      first. [Bank account transactions
      guide](/en/docs/api-introduction/bank-account-transactions)
  - name: Bank Account Holder
    description: >
      Look up account holder names with a bank code and an account number. One
      path takes a single account and the other takes up to 100 accounts at
      once. Each account that returns a holder name deducts 50 points. [Bank
      account holder guide](/en/docs/api-introduction/bank-account-holder)
  - name: Document Issuance
    description: >
      Issue National Tax Service certificates from Hometax or a certified copy
      of corporate registry, and download the original PDF. Hometax documents
      are issued only for the business that owns the API key, and you must
      register a joint certificate in the Bolta dashboard. A corporate registry
      is issued for the corporation in `corporationNumber` and needs no joint
      certificate. Supported corporation types are stock company, limited
      company, general partnership company, limited partnership company, limited
      liability company, incorporated association, incorporated foundation,
      medical corporation, cooperative (including social cooperative), and other
      corporate entity (such as a patent corporation). Each document deducts 500
      points for Hometax documents, 1,000 points for a corporate registry view
      copy, and 1,500 points for a submission copy. [Document issuance
      guide](/en/docs/api-introduction/document-issuance)
  - name: Issuer
    description: >
      Register and manage businesses that act as tax invoice issuers.
      Certificate requirements depend on the issuance type.
      [Glossary](/en/docs/api-introduction/glossary) | [Delegated
      issuance](/en/docs/api-introduction/usecase-delegated) | [Brokered Tax
      Invoice Issuance](/en/docs/api-introduction/usecase-brokered)
  - name: Certificate
    description: >
      Register and manage issuer certificates. [Certificate
      registration](/en/docs/api-introduction/certificate-registration)
paths:
  /v1/businessProfiles:search:
    get:
      tags:
        - Business Profile
      summary: Search Business Profiles
      description: >
        Search for businesses by business name, representative name, or business
        registration number. This API requires no issuer registration, no
        certificate, and no client reference id. Each result returned deducts 9
        points, and a search with no results deducts nothing.


        When `hasMore` is `true`, pass `nextCursor` in `cursor` to fetch the
        next results. `hasMore` can be `true` even when a response holds fewer
        results than `limit`, so keep calling based on `hasMore`. One keyword
        returns up to the first 1,000 results. A test key searches only the mock
        businesses listed in the guide. [Business profile
        guide](/en/docs/api-introduction/business-profile)
      parameters:
        - name: keyword
          in: query
          description: >-
            Search keyword. Matches the business name, former business name,
            English business name, representative name, three or more initial
            consonants of the business name, or a ten-digit business
            registration number. Enter 100 characters or fewer after trimming,
            with at least 2 characters once spaces and symbols are removed. A
            number search returns that one business.
          required: true
          schema:
            type: string
        - name: limit
          in: query
          description: >-
            Number of results per call. One call deducts at most `limit` × 9
            points.
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 50
            default: 20
        - name: cursor
          in: query
          description: >-
            The `nextCursor` of the previous response. Send it back unchanged. A
            cursor is bound to the `keyword`, `excludeStatuses`, and key mode
            (test or live) it was issued for. If you change the conditions or
            the key mode, search again from the start without a cursor.
          required: false
          schema:
            type: string
        - name: excludeStatuses
          in: query
          description: >-
            Registration states to exclude from the results, separated by
            commas. The API removes businesses confirmed as suspended or closed
            and keeps businesses whose state Bolta has not checked.
          required: false
          style: form
          explode: false
          schema:
            type: array
            minItems: 1
            uniqueItems: true
            items:
              type: string
              enum:
                - SUSPENDED
                - CLOSED
      responses:
        '200':
          description: >-
            Search succeeded. When nothing matches, `items` is an empty array
            and the API deducts no points.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BusinessProfileSearchResponse'
              examples:
                First page:
                  x-parity-id: first-page
                  summary: Result of keyword=테스트상사 and limit=3 with a test key
                  value:
                    items:
                      - businessRegistrationNumber: '1000000014'
                        organizationName: 테스트상사 주식회사
                        representativeName: 김*타
                        registration:
                          status: ACTIVE
                        region: 서울특별시 강남구
                      - businessRegistrationNumber: '1000000028'
                        organizationName: 테스트상사 간이점
                        representativeName: 이*스
                        registration:
                          status: ACTIVE
                        region: 서울특별시 마포구
                      - businessRegistrationNumber: '1000000106'
                        organizationName: 테스트상사 세금계산서점
                        representativeName: 박*의
                        registration:
                          status: ACTIVE
                        region: 부산광역시 해운대구
                    nextCursor: djE6MDotOjM6MzFmN2UxZGI0NjJkMzVhMQ
                    hasMore: true
                Last page:
                  x-parity-id: last-page
                  summary: >-
                    One business whose state was never checked and whose region
                    is unknown
                  value:
                    items:
                      - businessRegistrationNumber: '1000000111'
                        organizationName: 테스트상사 신규점
                        representativeName: 한*의
                        registration: null
                        region: null
                    nextCursor: null
                    hasMore: false
                No results:
                  x-parity-id: empty
                  summary: A keyword that matches no business
                  value:
                    items: []
                    nextCursor: null
                    hasMore: false
          headers: {}
        '400':
          description: >
            The API cannot accept the request. Check the response `code` for the
            cause.

            `INVALID_REQUEST`: `keyword` is missing or breaks the keyword rules.
            The response is the same when `limit` is not an integer from 1 to
            50, or when `excludeStatuses` holds an empty value, a duplicate, or
            a value other than `SUSPENDED` and `CLOSED`.

            `INVALID_CURSOR`: The `cursor` is malformed, its search conditions
            or key mode differ from when it was issued, or it is stale. Search
            again from the start without a cursor.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: API key authentication failed. The response has no body.
        '402':
          description: >-
            The point balance is insufficient. The response `code` is
            `PAYMENT_REQUIRED`. Top up in the developer center.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '409':
          description: >-
            Not enough points are available right now because other requests are
            in progress. The response `code` is `AVAILABLE_POINTS_INSUFFICIENT`.
            Top up, or request again after those requests finish.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          description: >-
            You exceeded the rate limit of 120 calls per minute. The response
            `code` is `RATE_LIMITED`. Retry after `Retry-After`.
          headers:
            Retry-After:
              description: Seconds until you can retry
              schema:
                type: integer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: >-
            Internal server error. The response `code` is
            `INTERNAL_SERVER_ERROR`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '503':
          description: >
            Search is unavailable right now. The response `code` is
            `LOOKUP_UNAVAILABLE`. Retry later. For a temporary internal API
            communication error, the `code` is `SERVICE_UNAVAILABLE`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      deprecated: false
components:
  schemas:
    BusinessProfileSearchResponse:
      type: object
      description: Business profile search results
      properties:
        items:
          type: array
          description: Search results, most relevant first.
          items:
            $ref: '#/components/schemas/BusinessProfileSearchItem'
        nextCursor:
          type:
            - string
            - 'null'
          description: Cursor for the next results. `null` on the last page.
        hasMore:
          type: boolean
          description: '`true` when more results exist.'
      required:
        - items
        - nextCursor
        - hasMore
    ErrorResponse:
      type: object
      description: The error response returned when an API request fails
      properties:
        code:
          type: string
          description: Error type identifier
        message:
          type: string
          description: Error description
        traceId:
          type: string
          description: Request trace identifier
      required:
        - code
        - message
        - traceId
    BusinessProfileSearchItem:
      type: object
      description: >-
        One search result. It holds only the values needed to tell businesses
        apart.
      properties:
        businessRegistrationNumber:
          type: string
          description: Ten-digit business registration number without hyphens
        organizationName:
          type:
            - string
            - 'null'
          description: Business name
        representativeName:
          type:
            - string
            - 'null'
          description: >-
            Representative name with the middle masked. Retrieve the profile for
            the full name.
        registration:
          description: >-
            Business registration state Bolta last checked. `null` if Bolta has
            never checked it.
          oneOf:
            - $ref: '#/components/schemas/BusinessProfileSearchItemRegistration'
            - type: 'null'
        region:
          type:
            - string
            - 'null'
          description: >-
            Province and district name. Province only when the district is
            unknown.
      required:
        - businessRegistrationNumber
        - organizationName
        - representativeName
        - registration
        - region
    BusinessProfileSearchItemRegistration:
      type: object
      description: Business registration state
      properties:
        status:
          $ref: '#/components/schemas/BusinessRegistrationStatusRegistrationState'
      required:
        - status
    BusinessRegistrationStatusRegistrationState:
      type: string
      title: Business registration state
      description: >-
        `ACTIVE` active business, `SUSPENDED` suspended business, `CLOSED`
        closed business, `NOT_REGISTERED` unregistered number, `UNKNOWN` any
        other registration state. A communication failure returns `503`, not
        `UNKNOWN`.
      enum:
        - ACTIVE
        - SUSPENDED
        - CLOSED
        - NOT_REGISTERED
        - UNKNOWN
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: >-
        Append a colon to your API key, Base64-encode it, and put it in the
        header. Enter the API key as the username and leave the password empty.

````

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