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

# Import subscribers from CSV

> Import subscribers from a CSV file into your publication. The publication is identified by the API key provided in the Authorization header.

**File Requirements:**
- Maximum file size: 10MB
- Content type: text/csv

**Supported CSV Columns:**
- Email: `email` or `subscriberEmail` (case-insensitive)
- Wallet: `wallet_address` (case-insensitive)
- Created date: `created_at`, `subscription date`, `created`, or `createdAt` (case-insensitive, optional)

At least one of email or wallet_address must be present for each row. Rows with neither valid email nor valid wallet address will be skipped.



## OpenAPI

````yaml /paragraph-api/openapi.json post /v1/subscribers/import
openapi: 3.1.0
info:
  title: Paragraph API
  version: 1.0.0
  description: >-
    Public API for interacting with Paragraph publications, posts, users, and
    coined writing.


    ## Rate Limiting

    API requests are rate-limited to ensure fair usage. Contact
    support@paragraph.com for higher limits.


    ## Pagination

    List endpoints support cursor-based pagination using `cursor` and `limit`
    parameters.
  contact:
    name: Paragraph Support
    email: support@paragraph.com
    url: https://paragraph.com/support
  license:
    name: MIT
    url: https://opensource.org/licenses/MIT
servers:
  - url: https://public.api.paragraph.com/api
    description: Production server
security:
  - {}
tags:
  - name: publications
    description: Operations related to publications
  - name: posts
    description: Operations related to posts and content
  - name: users
    description: Operations related to users and authors
  - name: coins
    description: Operations related to tokenized content
  - name: subscribers
    description: Operations related to subscriber management (requires API key)
paths:
  /v1/subscribers/import:
    post:
      tags:
        - subscribers
      summary: Import subscribers from CSV
      description: >-
        Import subscribers from a CSV file into your publication. The
        publication is identified by the API key provided in the Authorization
        header.


        **File Requirements:**

        - Maximum file size: 10MB

        - Content type: text/csv


        **Supported CSV Columns:**

        - Email: `email` or `subscriberEmail` (case-insensitive)

        - Wallet: `wallet_address` (case-insensitive)

        - Created date: `created_at`, `subscription date`, `created`, or
        `createdAt` (case-insensitive, optional)


        At least one of email or wallet_address must be present for each row.
        Rows with neither valid email nor valid wallet address will be skipped.
      operationId: importSubscribers
      parameters: []
      requestBody:
        description: Body
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                file:
                  description: CSV file containing subscriber data (max 10MB)
      responses:
        '200':
          description: Import started successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    enum:
                      - true
                    description: Whether the import was started
                required:
                  - success
        '400':
          description: Invalid request or CSV format
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    enum:
                      - false
                    description: Always false for error responses
                  msg:
                    type: string
                    description: Human-readable error message
                required:
                  - success
                  - msg
        '401':
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    enum:
                      - false
                    description: Always false for error responses
                  msg:
                    type: string
                    description: Human-readable error message
                required:
                  - success
                  - msg
        '404':
          description: Publication not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    enum:
                      - false
                    description: Always false for error responses
                  msg:
                    type: string
                    description: Human-readable error message
                required:
                  - success
                  - msg
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    enum:
                      - false
                    description: Always false for error responses
                  msg:
                    type: string
                    description: Human-readable error message
                required:
                  - success
                  - msg
      security:
        - apiKey: []
      x-codeSamples:
        - lang: typescript
          label: Import subscribers from CSV
          source: |-
            import { ParagraphAPI } from "@paragraph-com/sdk"

            const api = new ParagraphAPI({ apiKey: "your-api-key" })
            const result = await api.subscribers.import(csvFile)
        - lang: bash
          label: Import subscribers using curl
          source: >-
            curl -X POST
            "https://public.api.paragraph.com/api/v1/subscribers/import" \
              -H "Authorization: Bearer your-api-key" \
              -F "file=@subscribers.csv;type=text/csv"
components:
  securitySchemes:
    apiKey:
      type: http
      scheme: bearer
      description: >-
        API key for authenticating protected endpoints. Pass as Bearer token in
        Authorization header.

````