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

# get rental requirements

> what renting needs on this account: `eligibility`, the KYC form (`requirements.documentTypes[]` — every listed document type is required, each with its `requiredFields`), `verifiedKyc` when the carrier already accepted a KYC for this account (then no documents are needed), the `autoPay` state and the `autoPayMinimum` a pay-as-you-go account must set up.



## OpenAPI

````yaml /openapi.json get /v1/phone-numbers/requirements
openapi: 3.1.0
info:
  title: silk api
  version: 1.0.0
  description: >-
    rumik ai's speech api. synthesize speech with the expressive `muga` model,
    the faster `mulberry` model or the multilingual `mulberry-1.6` model over
    http or a streaming websocket session, run conversational voice agents over
    webrtc, a realtime pcm socket or the phone, and manage everything the agents
    playground does — agents, voices, variables, tools, phone numbers, sip
    trunks and outbound calls — with the same api key.
  contact:
    name: rumik ai
    url: https://rumik.ai
servers:
  - url: https://silk-api.rumik.ai
    description: production
security:
  - bearerAuth: []
tags:
  - name: speech
    description: text-to-speech over HTTP and WebSocket.
  - name: voice agents
    description: start calls with a deployed agent from your own app.
  - name: agents
    description: build, configure, deploy and inspect your agents.
  - name: calls
    description: place outbound phone calls and read call history.
  - name: voices
    description: the voices, languages and styles an agent may use.
  - name: variables
    description: account-wide `{name}` prompt variables and their defaults.
  - name: tools
    description: HTTP tools agents call before or during a call.
  - name: phone numbers
    description: 'numbers rented through rumik: search, rent, connect, release.'
  - name: sip trunks
    description: bring your own numbers over SIP.
paths:
  /v1/phone-numbers/requirements:
    get:
      tags:
        - phone numbers
      summary: get rental requirements
      description: >-
        what renting needs on this account: `eligibility`, the KYC form
        (`requirements.documentTypes[]` — every listed document type is
        required, each with its `requiredFields`), `verifiedKyc` when the
        carrier already accepted a KYC for this account (then no documents are
        needed), the `autoPay` state and the `autoPayMinimum` a pay-as-you-go
        account must set up.
      operationId: getRentalRequirements
      responses:
        '200':
          description: ok.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RentalRequirements'
        '401':
          description: >-
            `unauthorized` — key missing, malformed, unknown, revoked or
            expired.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                unauthorized:
                  value:
                    error: Invalid API key
                    code: unauthorized
        '403':
          description: '`forbidden_scope` — the key was created without the `agent` scope.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                forbidden_scope:
                  value:
                    error: This API key lacks the 'agent' scope
                    code: forbidden_scope
        '429':
          description: >-
            `rate_limited` — the key's per-minute budget is spent. `Retry-After`
            says how long to wait; the body carries `limit` and `current`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                rate_limited:
                  value:
                    error: Rate limit exceeded
                    code: rate_limited
                    limit: 100
                    current: 101
          headers:
            Retry-After:
              description: seconds to wait before retrying (per-key rate limit only).
              schema:
                type: integer
        '503':
          description: >-
            `telephony_not_configured` — rented numbers are unavailable on this
            deployment.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                telephony_not_configured:
                  value:
                    error: Phone number rental is not available right now
                    code: telephony_not_configured
components:
  schemas:
    RentalRequirements:
      properties:
        configured:
          type: boolean
          description: whether rented numbers are available on this deployment.
        suspendedAt:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          description: set when telephony was switched off for non-payment.
        suspendedReason:
          anyOf:
            - type: string
            - type: 'null'
        countryIso:
          type: string
        numberType:
          type: string
        userType:
          type: string
        eligibility:
          $ref: '#/components/schemas/RentalEligibility'
          description: whether this account may rent, and why not (`reason`).
        requirements:
          anyOf:
            - $ref: '#/components/schemas/ComplianceRequirements'
            - type: 'null'
          description: >-
            the KYC form: every `documentTypes[]` entry is required, each with
            its `requiredFields`.
        verifiedKyc:
          anyOf:
            - $ref: '#/components/schemas/VerifiedKyc'
            - type: 'null'
          description: >-
            set once the carrier accepted a KYC for this account; further
            numbers reuse it and need no documents.
        autoPay:
          $ref: '#/components/schemas/AutoPayStatus'
          description: the account's auto-pay mandate state.
        autoPayMinimum:
          anyOf:
            - $ref: '#/components/schemas/AutoPayMinimum'
            - type: 'null'
          description: >-
            the auto-pay amount renting needs on a pay-as-you-go account (rent +
            reserve).
        rentalPeriodSeconds:
          type: integer
          description: the length of one rental period.
      type: object
      required:
        - configured
        - countryIso
        - numberType
        - userType
        - eligibility
        - autoPay
        - rentalPeriodSeconds
      title: RentalRequirements
      description: Everything the rent wizard needs on open.
    Error:
      type: object
      properties:
        error:
          type: string
          description: human-readable error message.
        code:
          type: string
          description: machine-readable error code.
    RentalEligibility:
      properties:
        eligible:
          type: boolean
        reason:
          anyOf:
            - type: string
            - type: 'null'
        billingMode:
          type: string
        currency:
          type: string
        walletAvailableNanos:
          type: integer
          default: 0
        mandateRequired:
          type: boolean
          default: true
      type: object
      required:
        - eligible
        - billingMode
        - currency
      title: RentalEligibility
    ComplianceRequirements:
      properties:
        requirementId:
          anyOf:
            - type: string
            - type: 'null'
        countryIso:
          type: string
        numberType:
          type: string
        userType:
          type: string
        documentTypes:
          items:
            $ref: '#/components/schemas/ComplianceDocumentSpec'
          type: array
      type: object
      required:
        - countryIso
        - numberType
        - userType
        - documentTypes
      title: ComplianceRequirements
    VerifiedKyc:
      properties:
        applicationId:
          type: string
          format: uuid
        plivoComplianceId:
          anyOf:
            - type: string
            - type: 'null'
        businessName:
          anyOf:
            - type: string
            - type: 'null'
        verifiedAt:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
      type: object
      required:
        - applicationId
      title: VerifiedKyc
      description: |-
        A KYC Plivo already accepted for this account. One account is one
        business, so further numbers reuse it and skip the documents step.
    AutoPayStatus:
      properties:
        active:
          type: boolean
        status:
          anyOf:
            - type: string
            - type: 'null'
        topUpAmountNanos:
          type: integer
          default: 0
        thresholdAmountNanos:
          type: integer
          default: 0
        sufficient:
          type: boolean
      type: object
      required:
        - active
        - sufficient
      title: AutoPayStatus
      description: Where the account's mandate stands against the telephony floor.
    AutoPayMinimum:
      properties:
        currency:
          type: string
        monthlyRentNanos:
          type: integer
        reserveNanos:
          type: integer
        reserveRatio:
          type: string
        minimumNanos:
          type: integer
        firstChargeNanos:
          type: integer
          default: 0
        setupNanos:
          anyOf:
            - type: integer
            - type: 'null'
        monthlyRentalRateUsd:
          type: string
        setupRateUsd:
          anyOf:
            - type: string
            - type: 'null'
        fxUsdToCurrency:
          type: string
      type: object
      required:
        - currency
        - monthlyRentNanos
        - reserveNanos
        - reserveRatio
        - minimumNanos
        - monthlyRentalRateUsd
        - fxUsdToCurrency
      title: AutoPayMinimum
      description: rent + reserve, in wallet nanos — the auto-pay amount renting requires.
    ComplianceDocumentSpec:
      properties:
        documentTypeId:
          type: string
        name:
          type: string
        description:
          anyOf:
            - type: string
            - type: 'null'
        proofRequired:
          type: boolean
          default: true
        requiredFields:
          items:
            $ref: '#/components/schemas/ComplianceFieldSpec'
          type: array
      type: object
      required:
        - documentTypeId
        - name
      title: ComplianceDocumentSpec
    ComplianceFieldSpec:
      properties:
        fieldName:
          type: string
        friendlyName:
          type: string
        helpText:
          anyOf:
            - type: string
            - type: 'null'
        fieldType:
          type: string
          default: string
        required:
          type: boolean
          default: true
        format:
          anyOf:
            - type: string
            - type: 'null'
        enums:
          items:
            type: string
          type: array
        minLength:
          anyOf:
            - type: integer
            - type: 'null'
        maxLength:
          anyOf:
            - type: integer
            - type: 'null'
      type: object
      required:
        - fieldName
        - friendlyName
      title: ComplianceFieldSpec
      description: One form control from Plivo's requirement set (``required_fields[]``).
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        your rumik api key, e.g. `rk_live_...`. create one in the rumik
        dashboard.

````