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

# Get KYC status

> Get the normalized KYC status of a wallet address for a yield, with the issuer's authorization URL when available.

Requires `x-api-key` and the query parameter `address`. Yields with no KYC requirement return `not_required`. Reference contract only; issuer requirements are in [RWA KYC](/documentation/earn/rwas/kyc), and the pre-flight flow is in [Check eligibility](/guides/earn/rwas/check-eligibility).

## Response

| Field | Type | Notes |
| - | - | - |
| `kycStatus` | string | One of the statuses below. |
| `authorizeUrl` | string, optional | The issuer's KYC portal URL. Present only when the issuer provides one, typically for `not_started` and `rejected`. Do not depend on it for other statuses. |

## KYC statuses

| Value | Meaning |
| - | - |
| `not_required` | The yield has no KYC requirement. |
| `not_started` | The address has not begun KYC with the issuer. |
| `pending` | Declared for KYC under review; no current issuer integration returns it. |
| `approved` | The address is cleared to transact. |
| `rejected` | KYC was declined. |

## Errors

| Status | Cause |
| - | - |
| 400 | `address` is missing or empty, or (on a KYC-gated yield) not a valid address for its network. |
| 401 | Missing or invalid API key. |
| 404 | The yield was not found. |
| 429 | Rate limited. |

An action on an RWA yield for an address that is not cleared fails with `412`. See [Errors and retries](/api-reference/errors-retries#endpoint-specific-earn-errors).


## OpenAPI

````yaml openapi.json GET /v1/yields/{yieldId}/kyc/status
openapi: 3.0.0
info:
  title: 'Yield API: Earn'
  description: API Documentation
  version: '1.0'
  contact: {}
servers:
  - url: https://api.yield.xyz
    description: Production
security: []
tags:
  - name: Discovery
    description: >-
      Browse and discover yield opportunities, networks, and providers, plus
      yield-level risk, reward rate, and TVL data
  - name: Portfolio
    description: User-specific balances and KYC status
  - name: Actions
    description: Generate transactions to enter, exit, and manage yields
externalDocs:
  description: For more information
  url: https://docs.yield.xyz
paths:
  /v1/yields/{yieldId}/kyc/status:
    get:
      tags:
        - Portfolio
      summary: Get the KYC status of an address for a yield
      description: >-
        Returns the normalized KYC status for the given address. Yields without
        a KYC requirement return not_required.
      operationId: KycController_getStatus_v1
      parameters:
        - name: yieldId
          required: true
          in: path
          description: The yield integration ID
          schema:
            type: string
        - name: address
          required: true
          in: query
          description: Wallet address to check KYC status for
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/KycStatusResponseDto'
        '400':
          description: Missing or invalid address
        '401':
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Invalid API key
                  error:
                    type: string
                    example: Unauthorized
                  statusCode:
                    type: number
                    example: 401
        '404':
          description: Yield not found
        '429':
          description: Rate limit exceeded
          headers:
            x-ratelimit-limit:
              description: Request limit per window
              schema:
                type: string
            x-ratelimit-remaining:
              description: Remaining requests (will be 0)
              schema:
                type: string
            x-ratelimit-reset:
              description: Unix timestamp when window resets
              schema:
                type: string
            retry-after:
              description: Seconds to wait before retrying
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Rate limit exceeded
                  error:
                    type: string
                    example: Too Many Requests
                  statusCode:
                    type: number
                    example: 429
                  retryAfter:
                    type: number
                    example: 30
      security:
        - ApiKey: []
components:
  schemas:
    KycStatusResponseDto:
      type: object
      properties:
        kycStatus:
          type: string
          description: Normalized KYC status for the address on this yield
          enum:
            - not_required
            - not_started
            - pending
            - approved
            - rejected
          example: not_required
        authorizeUrl:
          type: string
          description: Issuer's KYC portal URL, when applicable
      required:
        - kycStatus
  securitySchemes:
    ApiKey:
      type: apiKey
      in: header
      name: x-api-key

````

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