FullStory Batch Import API

Import large volumes of users and events asynchronously using batch import jobs that support up to 50,000 records per request.

OpenAPI Specification

fullstory-batch-import-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: FullStory Segments Export Batch Import API
  description: 'The FullStory Segments Export API provides an asynchronous workflow for downloading captured event data from FullStory. Developers can initiate export jobs to aggregate segment data, query for the status of running jobs, and retrieve download URLs for completed exports. Two types of segment data are available for export: individuals matching a segment and events performed by those individuals. This API is useful for integrating FullStory behavioral data into external analytics pipelines and data warehouses.'
  version: '1.0'
  contact:
    name: FullStory Support
    url: https://help.fullstory.com/
  termsOfService: https://www.fullstory.com/legal/terms-and-conditions/
servers:
- url: https://api.fullstory.com
  description: FullStory Production API Server
security:
- basicAuth: []
tags:
- name: Batch Import
  description: Import large volumes of users and events asynchronously using batch import jobs that support up to 50,000 records per request.
paths:
  /v2/users/batch:
    post:
      operationId: createBatchUserImport
      summary: Create a batch user import job
      description: Imports up to 50,000 users in a single asynchronous request. Returns a job object with an ID and status that can be polled for completion. Users can be anonymous or identified with a uid.
      tags:
      - Batch Import
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BatchUserImportRequest'
      responses:
        '200':
          description: Batch import job created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BatchJob'
        '400':
          description: Invalid input provided
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized - invalid or missing API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /v2/events/batch:
    post:
      operationId: createBatchEventsImport
      summary: Create a batch events import job
      description: Imports a large number of events in a single asynchronous request. Returns a job object with an ID and status that can be polled for completion. Each event in the batch can include custom properties and session associations.
      tags:
      - Batch Import
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BatchEventsImportRequest'
      responses:
        '200':
          description: Batch events import job created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BatchJob'
        '400':
          description: Invalid input provided
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized - invalid or missing API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    BatchEventsImportRequest:
      type: object
      required:
      - requests
      description: Request body for batch importing events into FullStory
      properties:
        requests:
          type: array
          description: Array of event objects to import
          items:
            $ref: '#/components/schemas/CreateEventRequest'
    BatchUserImportRequest:
      type: object
      required:
      - requests
      description: Request body for batch importing users into FullStory
      properties:
        requests:
          type: array
          description: Array of user objects to import, up to 50,000 per request
          maxItems: 50000
          items:
            $ref: '#/components/schemas/CreateUserRequest'
    Error:
      type: object
      description: Standard error response from the FullStory API
      properties:
        code:
          type: integer
          description: HTTP status code
        message:
          type: string
          description: Human-readable error message
    BatchJob:
      type: object
      description: Represents an asynchronous batch import job
      properties:
        id:
          type: string
          description: The unique identifier for the batch import job
        status:
          type: string
          description: Current status of the batch import job
          enum:
          - PENDING
          - PROCESSING
          - COMPLETED
          - FAILED
        created:
          type: string
          format: date-time
          description: Timestamp when the batch import job was accepted
    CreateUserRequest:
      type: object
      description: Request body for creating or updating a user in FullStory
      properties:
        uid:
          type: string
          description: External user identifier. Omit to create an anonymous user.
        display_name:
          type: string
          description: The display name for the user
        email:
          type: string
          format: email
          description: The email address for the user
        properties:
          type: object
          description: Custom key-value properties to attach to the user. Type suffixes are not required in v2 as types are inferred automatically.
          additionalProperties: true
        schema:
          type: object
          description: Optional explicit type declarations for custom properties to override the default type inference
          additionalProperties: true
    CreateEventRequest:
      type: object
      required:
      - name
      description: Request body for creating a custom event in FullStory
      properties:
        name:
          type: string
          description: The name of the custom event
        timestamp:
          type: string
          format: date-time
          description: ISO 8601 timestamp for when the event occurred
        session:
          type: object
          description: Session association for the event
          properties:
            id:
              type: string
              description: The session identifier to associate the event with
            use_most_recent:
              type: boolean
              description: If true, the most recent session within 30 minutes will be used. If no recent session is found, the event is created without a session association.
        user:
          type: object
          description: User association for the event. Not accepted if session.id is provided since the session already identifies the user.
          properties:
            id:
              type: string
              description: The FullStory-assigned user ID
            uid:
              type: string
              description: The external user identifier
        properties:
          type: object
          description: Custom key-value properties for the event. Supports string, real, integer, boolean, array, and object types.
          additionalProperties: true
        schema:
          type: object
          description: Optional explicit type declarations for custom event properties
          additionalProperties: true
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: API key passed in the Authorization header using Basic authentication. Admin or Architect level keys are required.
externalDocs:
  description: FullStory Segments Export API Documentation
  url: https://developer.fullstory.com/server/v1/segments/create-segment-export/