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

# Request Business Report

> Fetch a business report for a specific business.
Requires `jurisdiction`, `registrationNumber`, and `name` (typically taken
from a previous search result).

Returns directors, officers, shareholders, addresses, good standing status,
name history, NAICS classification, and the report PDF.

**Typical response time:** 1-4 minutes




## OpenAPI

````yaml /openapi.yaml post /business-reports
openapi: 3.1.0
info:
  title: Current Business Verification API
  version: 1.0.0
  description: >
    The Current API provides programmatic access to Canadian business
    verification services.


    ## Authentication

    All API requests require authentication via API key. Include your key using
    one of these methods:

    - `Authorization: Bearer cur_live_xxxxx` (recommended)

    - `X-API-Key: cur_live_xxxxx`


    ## Rate Limits

    All endpoints are rate limited to **60 requests per minute** per API key.


    Rate limit headers are included in all responses:

    - `X-RateLimit-Limit`: Maximum requests allowed in current window

    - `X-RateLimit-Remaining`: Remaining requests in current window

    - `X-RateLimit-Reset`: Unix timestamp when the rate limit resets


    ## Request IDs

    All responses include an `X-Request-Id` header for traceability.

    You can provide your own via the `X-Request-Id` request header; otherwise
    one is generated automatically.

    Include this ID when contacting support about a specific request.
  contact:
    name: Current Support
    url: https://getcurrent.ca
  license:
    name: Proprietary
servers:
  - url: https://api.getcurrent.ca/v1
    description: Production
security:
  - bearerAuth: []
  - apiKeyHeader: []
tags:
  - name: Search
    description: Business verification search operations
  - name: Pre-fill
    description: Fast typeahead lookup of canonical business candidates
  - name: Generate PDF
    description: PDF report generation
  - name: Business Reports
    description: Business report operations
  - name: Sanctions
    description: Standalone sanctions screening operations
  - name: Verification
    description: Business verification operations
  - name: Businesses
    description: >-
      Business record sync (list/read as a change feed, upsert to keep records
      current)
paths:
  /business-reports:
    post:
      tags:
        - Business Reports
      summary: Request Business Report
      description: >
        Fetch a business report for a specific business.

        Requires `jurisdiction`, `registrationNumber`, and `name` (typically
        taken

        from a previous search result).


        Returns directors, officers, shareholders, addresses, good standing
        status,

        name history, NAICS classification, and the report PDF.


        **Typical response time:** 1-4 minutes
      operationId: createBusinessReport
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BusinessReportRequest'
            examples:
              basic:
                summary: Basic report request
                value:
                  jurisdiction: 'ON'
                  registrationNumber: '1234567'
                  name: Example Corp
              withSearchLink:
                summary: With search link
                value:
                  jurisdiction: 'ON'
                  registrationNumber: '1234567'
                  name: Example Corp
                  searchId: 550e8400-e29b-41d4-a716-446655440000
      responses:
        '200':
          description: Business report (completed or failed)
          headers:
            X-Request-Id:
              $ref: '#/components/headers/X-Request-Id'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BusinessReportResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/RateLimited'
        '500':
          $ref: '#/components/responses/InternalError'
      security:
        - bearerAuth: []
        - apiKeyHeader: []
components:
  schemas:
    BusinessReportRequest:
      type: object
      required:
        - jurisdiction
        - registrationNumber
        - name
      properties:
        jurisdiction:
          type: string
          description: >
            Canadian jurisdiction. Accepts codes (AB, BC, MB, NB, NL, NS, NT,
            NU, ON, PE, QC, SK, YT, FED) or full names (e.g. "Ontario", "British
            Columbia", "Federal") as returned by the search endpoint.
          example: 'ON'
        registrationNumber:
          type: string
          description: Registration number from a search result
          example: '1234567'
        name:
          type: string
          description: Business name
          example: Example Corp
        searchId:
          type: string
          format: uuid
          description: >-
            UUID of a previous search result to link this report to search
            history
          example: 550e8400-e29b-41d4-a716-446655440000
    BusinessReportResponse:
      type: object
      required:
        - meta
        - report
      properties:
        meta:
          $ref: '#/components/schemas/BusinessReportMeta'
        report:
          $ref: '#/components/schemas/BusinessReportBody'
        errors:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/APIError'
          description: Errors by source (only present if report failed)
    BusinessReportMeta:
      type: object
      required:
        - searchId
        - searchedAt
        - searchedBy
        - name
        - jurisdiction
        - registrationNumber
        - status
        - duration
      properties:
        searchId:
          type: string
          format: uuid
          description: >-
            Search ID (returned even if not provided in request — always
            present)
        searchedAt:
          type: string
          format: date-time
          description: ISO 8601 timestamp of when the report was requested
        searchedBy:
          type:
            - string
            - 'null'
          format: email
          description: Email of the API key owner who requested the report
        name:
          type: string
          description: Business name
        jurisdiction:
          type: string
          description: Full jurisdiction name (e.g., "Ontario", "Federal")
        registrationNumber:
          type: string
          description: Registration number as provided in the request
        status:
          type: string
          enum:
            - completed
            - failed
        duration:
          type: integer
          description: Report duration in milliseconds
    BusinessReportBody:
      type: object
      description: The report result
      required:
        - legalName
        - registrationNumbers
        - people
        - addresses
        - details
        - reportUrl
      properties:
        legalName:
          type: object
          required:
            - name
          properties:
            name:
              type: string
              description: Official legal name of the business
            matchScore:
              type: number
              minimum: 0
              maximum: 1
              description: Match confidence score (0-1)
        jurisdiction:
          type: string
          description: Full jurisdiction name (e.g., "Ontario", "Federal")
        registrationNumbers:
          type: array
          items:
            $ref: '#/components/schemas/RegistrationNumber'
        status:
          type:
            - string
            - 'null'
          description: >-
            Company registration status (e.g., "Active", "Dissolved",
            "Cancelled")
        addresses:
          type: array
          items:
            $ref: '#/components/schemas/Address'
          description: Business addresses with type labels
        people:
          type: array
          items:
            $ref: '#/components/schemas/BusinessReportPerson'
          description: Directors, officers, and shareholders
        details:
          $ref: '#/components/schemas/BusinessReportDetails'
        reportUrl:
          type:
            - string
            - 'null'
          description: >-
            Persistent URL to download the business report PDF (requires API key
            auth)
        reportUrlExpiresAt:
          type:
            - string
            - 'null'
          format: date-time
          description: >-
            ISO 8601 timestamp when the reportUrl signed URL expires (~5 years
            from generation)
    APIError:
      type: object
      properties:
        code:
          type: string
          enum:
            - TIMEOUT
            - RATE_LIMITED
            - NOT_FOUND
            - INVALID_INPUT
            - UPSTREAM_ERROR
            - PARSE_ERROR
            - AUTH_ERROR
            - UNAVAILABLE
            - UNKNOWN
          description: Error classification code
        message:
          type: string
          description: Human-readable error message
        retryable:
          type: boolean
          description: Whether the request can be retried
    ErrorResponse:
      type: object
      required:
        - error
        - code
      properties:
        error:
          type: string
          description: Human-readable error message
        code:
          type: string
          description: >
            Machine-readable error code. Present on every error response.
            Distinct from the per-source `APIError.code` values that appear
            inside a successful response's `meta.errors` object.
          enum:
            - MISSING_API_KEY
            - INVALID_API_KEY
            - REVOKED_API_KEY
            - EXPIRED_API_KEY
            - RATE_LIMITED
            - VALIDATION_ERROR
            - INVALID_JSON
            - NOT_FOUND
            - STALE_WRITE
            - CONFLICT
            - METHOD_NOT_ALLOWED
            - UNAUTHORIZED
            - SERVER_ERROR
            - INTERNAL_ERROR
          example: VALIDATION_ERROR
    RegistrationNumber:
      type: object
      description: Registration number with human-readable label
      required:
        - label
        - value
      properties:
        label:
          type: string
          description: >-
            Human-readable label (e.g., "Federal Corporation Number", "Business
            Number (CRA)")
        value:
          type: string
          description: The registration number value
    Address:
      type: object
      description: Business address with structured nullable fields
      properties:
        street:
          type:
            - string
            - 'null'
        city:
          type:
            - string
            - 'null'
        province:
          type:
            - string
            - 'null'
          description: Full province name (e.g., "Ontario", "British Columbia")
        postalCode:
          type:
            - string
            - 'null'
        country:
          type:
            - string
            - 'null'
          description: Full country name (e.g., "Canada")
        raw:
          type:
            - string
            - 'null'
          description: Original unstructured address string from the source
    BusinessReportPerson:
      type: object
      required:
        - name
        - titles
        - addresses
      properties:
        name:
          type: string
          description: Full name
        titles:
          type: array
          items:
            type: string
          description: Roles (e.g., "Director", "Officer", "Shareholder")
        ownership:
          type:
            - string
            - 'null'
          description: >-
            Equity/ownership details for ISC parties (e.g., "At least 25% and up
            to 50% of the shares")
        addresses:
          type: array
          items:
            $ref: '#/components/schemas/Address'
          description: Person's addresses (empty array if none)
    BusinessReportDetails:
      type: object
      required:
        - goodStanding
        - nameHistory
        - naicsClassification
      properties:
        goodStanding:
          type:
            - boolean
            - 'null'
          description: Whether the business is in good standing
        nameHistory:
          type: array
          items:
            $ref: '#/components/schemas/NameHistoryEntry'
          description: Trade names and name changes (empty array if none)
        naicsClassification:
          type: array
          items:
            $ref: '#/components/schemas/NaicsEntry'
          description: NAICS industry codes from the business report (empty array if none)
    NameHistoryEntry:
      type: object
      required:
        - type
        - name
      properties:
        type:
          type: string
          description: Relationship type (e.g., "Trade Name", "Former Name")
        name:
          type: string
        effectiveDate:
          type:
            - string
            - 'null'
        endDate:
          type:
            - string
            - 'null'
    NaicsEntry:
      type: object
      required:
        - code
      properties:
        code:
          type: string
          description: NAICS industry code
        description:
          type: string
          description: NAICS description
  headers:
    X-Request-Id:
      description: >-
        Unique request identifier for traceability. Echoes client-provided value
        or auto-generated UUID.
      schema:
        type: string
        format: uuid
        example: a1b2c3d4-e5f6-7890-abcd-ef1234567890
    X-RateLimit-Limit:
      description: Maximum requests per minute
      schema:
        type: integer
        example: 60
    X-RateLimit-Remaining:
      description: Remaining requests in current window
      schema:
        type: integer
        example: 58
    X-RateLimit-Reset:
      description: Unix timestamp when rate limit resets
      schema:
        type: integer
        example: 1702915200
  responses:
    BadRequest:
      description: Invalid request parameters
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error: name is required and must be a non-empty string
            code: VALIDATION_ERROR
    Unauthorized:
      description: Missing or invalid API key
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            missing:
              value:
                error: >-
                  Missing API key. Provide via Authorization: Bearer <key> or
                  X-API-Key header.
                code: MISSING_API_KEY
            invalid:
              value:
                error: Invalid API key
                code: INVALID_API_KEY
            revoked:
              value:
                error: API key has been revoked
                code: REVOKED_API_KEY
            expired:
              value:
                error: API key has expired
                code: EXPIRED_API_KEY
    RateLimited:
      description: Rate limit exceeded
      headers:
        X-RateLimit-Limit:
          $ref: '#/components/headers/X-RateLimit-Limit'
        X-RateLimit-Remaining:
          schema:
            type: integer
            example: 0
        X-RateLimit-Reset:
          $ref: '#/components/headers/X-RateLimit-Reset'
        Retry-After:
          description: Seconds until rate limit resets
          schema:
            type: integer
            example: 60
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error: Rate limit exceeded. Try again in 60 seconds.
            code: RATE_LIMITED
    InternalError:
      description: Internal server error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error: Internal server error
            code: SERVER_ERROR
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'API key as Bearer token: `Authorization: Bearer cur_live_xxxxx`'
    apiKeyHeader:
      type: apiKey
      in: header
      name: X-API-Key
      description: 'API key in header: `X-API-Key: cur_live_xxxxx`'

````