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

# Submit chain request

> Public endpoint to request listing a new chain. Rate-limited to 5 submissions per IP per day. Optional X-Api-Key with an admin or agent management token skips the per-IP limit. Submitted RPC URLs are screened; at least one must qualify.



## OpenAPI

````yaml /api-reference/openapi.json post /chains/requests
openapi: 3.0.0
info:
  title: RouteMesh API
  version: 1.0.0
  description: >-
    HTTP API for routing JSON-RPC requests across providers, managing API keys,
    and viewing usage.
  license:
    name: Proprietary
    url: https://routeme.sh
servers:
  - url: https://api.routeme.sh
    description: API server — health, chains, API keys, usage, and public submissions
  - url: https://lb.routeme.sh
    description: RPC router (primary load balancer)
  - url: https://lb2.routeme.sh
    description: RPC router (AWS backup load balancer)
security: []
tags:
  - name: RPC
    description: Forward JSON-RPC requests to the router.
  - name: Chains
    description: Discover supported chains.
  - name: Submissions
    description: Public chain and node listing requests (rate-limited per IP).
  - name: API Keys
    description: Manage your API keys for self-service access.
  - name: Usage
    description: View your usage and billing data.
  - name: Health
    description: Service health checks.
paths:
  /chains/requests:
    servers:
      - url: https://api.routeme.sh
    post:
      tags:
        - Submissions
      summary: Submit chain request
      description: >-
        Public endpoint to request listing a new chain. Rate-limited to 5
        submissions per IP per day. Optional X-Api-Key with an admin or agent
        management token skips the per-IP limit. Submitted RPC URLs are
        screened; at least one must qualify.
      operationId: submitChainRequest
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChainRequestCreate'
      responses:
        '201':
          description: Chain request created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubmissionCreatedResponse'
        '400':
          description: Validation or screening failure
        '401':
          description: Unauthorized (invalid X-Api-Key when provided)
        '409':
          description: Chain already exists or pending request exists for this chain ID
        '429':
          description: Per-IP daily submission limit exceeded
        '500':
          description: Internal server error
components:
  schemas:
    ChainRequestCreate:
      type: object
      properties:
        name:
          type: string
        chain_id:
          type: string
          description: Decimal or 0x-prefixed chain ID (e.g. "137").
        short_name:
          type: string
        native_currency_name:
          type: string
        native_currency_decimals:
          type: integer
          minimum: 0
          default: 0
        info_url:
          type: string
          format: uri
        icon_url:
          type: string
          format: uri
          nullable: true
        rpc_urls:
          type: array
          items:
            type: string
            format: uri
          minItems: 1
          maxItems: 5
          description: HTTPS RPC URLs to screen (max 5). At least one must pass screening.
        explorer_urls:
          type: array
          items:
            type: string
            format: uri
        requestor_email:
          type: string
          format: email
        requestor_name:
          type: string
      required:
        - name
        - chain_id
        - short_name
        - native_currency_name
        - info_url
        - rpc_urls
        - requestor_email
        - requestor_name
      additionalProperties: false
    SubmissionCreatedResponse:
      type: object
      properties:
        id:
          type: integer
          description: Created request ID.
      required:
        - id
      additionalProperties: false

````