Pike13 CLI
A command-line interface for interacting with the Pike13 API, supporting both:
- Core API - CRUD operations for managing people, events, invoices, and more
- Reporting API - Advanced analytics and reporting queries
Installation
gem install pike13-cliConfiguration
Set the following environment variables:
export PIKE13_ACCESS_TOKEN="your_access_token"
export PIKE13_BASE_URL="yourbusiness.pike13.com"Usage
Command Structure
pike13 <namespace> <resource> <action> [options]Namespaces:
-
desk- Staff interface (full read/write access) -
front- Client interface (limited access for customer-facing apps) -
account- Account-level operations (not scoped to business) -
report- Reporting API (analytics and insights)
Account Namespace
Account-level operations:
# Get current account
pike13 account me
# List all businesses for the current account
pike13 account businesses list
# List all people in the account
pike13 account people list
# Request password reset
pike13 account password reset --email=user@example.com
# Create email confirmation
pike13 account confirmation create --email=user@example.comDesk Namespace (Staff Interface)
Full staff interface with read/write access:
People
# List all people
pike13 desk people list
# or
pike13 desk people lsSee shortcuts for faster alternatives
# Find a person
pike13 desk people get 123
# Search for people
pike13 desk people search "John Doe"
# Get current authenticated user
pike13 desk people me
# Create a person
pike13 desk people create --first-name "John" --last-name "Doe" --email "john@example.com"
# Update a person
pike13 desk people update 123 --first-name "Jane"
# Delete a person
pike13 desk people delete 123Advanced Filtering and Parameters
The CLI now supports comprehensive filtering and query parameters for major endpoints:
People List Parameters
# Filter people by membership status
pike13 desk people list --is-member=true
pike13 desk people list --is-member=false
# Filter by creation/update time
pike13 desk people list --created-since="2025-01-01T00:00:00Z"
pike13 desk people list --updated-since="2025-01-01T00:00:00Z"
# Include additional data
pike13 desk people list --include-relationships
pike13 desk people list --include-balances
# Sort results
pike13 desk people list --sort="updated_at"
pike13 desk people list --sort="-updated_at" # descending
pike13 desk people list --sort="created_at"
pike13 desk people list --sort="id"
# Combine multiple filters
pike13 desk people list --is-member=true --sort="-updated_at" --include-relationshipsEvents List Parameters
# Filter by date range
pike13 desk events list --from="2025-01-01" --to="2025-01-31"
# Filter by specific IDs
pike13 desk events list --ids="123,456,789"
pike13 desk events list --service-ids="111,222"Event Occurrences List Parameters
# Filter by date range
pike13 desk event_occurrences list --from="2025-01-01" --to="2025-01-31"
# Filter by state
pike13 desk event_occurrences list --state="active"
pike13 desk event_occurrences list --state="active,canceled"
# Filter by staff, services, events, or locations
pike13 desk event_occurrences list --staff-member-ids="111,222"
pike13 desk event_occurrences list --service-ids="333,444"
pike13 desk event_occurrences list --event-ids="555,666"
pike13 desk event_occurrences list --location-ids="777,888"
# Group results
pike13 desk event_occurrences list --group-by="day"
pike13 desk event_occurrences list --group-by="hour"Person Visits Parameters
# Get visits for a specific person within date range
pike13 desk person_visits list 12345 --from="2025-01-01" --to="2025-01-31"
# Filter by specific event occurrence
pike13 desk person_visits list 12345 --event-occurrence-id=67890Enrollment Eligibility Parameters
# Check eligibility for specific people
pike13 desk event_occurrences eligibilities 789 --person-ids="111,222,333"Business
# Get business details
pike13 desk business findEvents & Event Occurrences
# List events
pike13 desk events list
# Get an event
pike13 desk events get 100
# List events with filtering
pike13 desk events list --from "2025-01-01" --to "2025-01-31"
pike13 desk events list --service-ids="123,456"
# Get an event
pike13 desk events get 100
# List event occurrences with advanced filtering
pike13 desk event_occurrences list --from "2025-01-01" --to "2025-01-31"
pike13 desk event_occurrences list --state="active" --service-ids="123"
pike13 desk event_occurrences list --staff-member-ids="456" --group-by="day"
# Get event occurrence
pike13 desk event_occurrences get 789
# Get enrollment eligibilities with person filtering
pike13 desk event_occurrences eligibilities 789
pike13 desk event_occurrences eligibilities 789 --person-ids="111,222,333"Event Occurrence Notes
# List notes for an event occurrence
pike13 desk event_occurrence_notes list --event-occurrence-id 789
# Get specific note
pike13 desk event_occurrence_notes get 1 --event-occurrence-id 789
# Create note
pike13 desk event_occurrence_notes create \
--event-occurrence-id 789 \
--subject "Note Subject" \
--note "This is a note"
# Update note
pike13 desk event_occurrence_notes update 1 \
--event-occurrence-id 789 \
--note "Updated note content"
# Delete note
pike13 desk event_occurrence_notes delete 1 --event-occurrence-id 789Bookings
# Get booking
pike13 desk bookings get 123
# Create booking (requires idempotency token)
pike13 desk bookings create --event-occurrence-id 789 --person-id 123
# Update booking
pike13 desk bookings update 456 --state "completed"
# Delete booking
pike13 desk bookings delete 456Appointments
# Find available slots
pike13 desk appointments available --service-id 100 --date "2025-01-15"
# Get availability summary
pike13 desk appointments summary --service-id 100 --from "2025-01-01" --to "2025-01-31"Invoices & Payments
# List invoices
pike13 desk invoices list
# Get invoice
pike13 desk invoices get 700
# Get payment
pike13 desk payments get 800
# Void payment
pike13 desk payments void 800 --invoice-item-ids "1,2"Pack Products
# List pack products
pike13 desk pack_products list
# Get specific pack product
pike13 desk pack_products get 123
# Create pack product
pike13 desk pack_products create \
--name "10 Class Pack" \
--price "200.00" \
--visit-count 10
# Update pack product
pike13 desk pack_products update 123 --name "Updated Pack Name"
# Delete pack product
pike13 desk pack_products delete 123
# Create pack from product
pike13 desk pack_products create_pack \
--product-id 123 \
--person-id 456 \
--quantity 5Other Resources
# Locations
pike13 desk locations list
pike13 desk locations get 1
# Services
pike13 desk services list
pike13 desk services get 100
# Staff members
pike13 desk staff list
pike13 desk staff get 5
pike13 desk staff me
# Visits
pike13 desk visits list
pike13 desk visits get 456
# Plans
pike13 desk plans list
pike13 desk plans get 200
# Notes
pike13 desk notes list 123
pike13 desk notes get 123 456
pike13 desk notes create 123 --subject "Follow up" --note "Client requested callback"
pike13 desk notes update 123 456 --note "Updated note content"
pike13 desk notes delete 123 456
# Custom Fields
pike13 desk custom_fields list
# Forms of Payment
pike13 desk forms_of_payment list 123
pike13 desk forms_of_payment get 123 456
pike13 desk forms_of_payment create 123 --type "creditcard" --token "tok_xxx"
pike13 desk forms_of_payment update 123 456 --is-default
pike13 desk forms_of_payment delete 123 456
# Revenue Categories
pike13 desk revenue_categories list
pike13 desk revenue_categories get 138248
# Sales Taxes
pike13 desk sales_taxes list
pike13 desk sales_taxes get 1
# Make-Ups
pike13 desk make_ups reasons
pike13 desk make_ups generate 456 --make-up-reason-id 126989 --free-form-reason "Client was sick"
# Waitlist
pike13 desk waitlist_entry list
pike13 desk waitlist_entry get 789
pike13 desk waitlist_entry create --person-id 123 --event-id 100
pike13 desk waitlist_entry delete 789
# Person-related resources
pike13 desk person_visits list 123
pike13 desk person_plans list 123
pike13 desk person_waitlist list 123
pike13 desk person_waivers list 123Front Namespace (Client Interface)
Client-facing interface with limited read-only access:
# Get authenticated client user (only)
pike13 front people me
# List events (client view) with filtering
pike13 front events list --from="2025-01-01" --to="2025-01-31"
pike13 front events list --service-ids="123,456"
# List event occurrences (client view) with filtering
pike13 front event_occurrences list --from="2025-01-01" --to="2025-01-31"
pike13 front event_occurrences list --state="active" --service-ids="123"
# List locations (client view)
pike13 front locations list
# List services (client view)
pike13 front services list
# Get business info
pike13 front business show
# Get branding
pike13 front branding show
# Find available appointment slots (client view)
pike13 front appointments available \
--service-id 100 \
--date "2025-01-15"
# Bookings (client view)
pike13 front bookings get 456
pike13 front bookings create --event-occurrence-id 789 --person-id 123
pike13 front bookings update 456 --state "completed"
pike13 front bookings delete 456
# Person-related resources (client view)
pike13 front person_visits list 123
pike13 front person_plans list 123
pike13 front person_waitlist list 123
pike13 front person_waivers list 123
# Forms of payment (client view)
pike13 front forms_of_payment list 123
pike13 front forms_of_payment get 123 456
pike13 front forms_of_payment find_me 456
pike13 front forms_of_payment create 123 --type "creditcard" --token "tok_xxx"
pike13 front forms_of_payment update 123 456 --is-default
pike13 front forms_of_payment delete 123 456Report Namespace (Reporting API)
Advanced analytics and reporting:
# Monthly business metrics
pike13 report monthly_metrics query \
--fields month_start_date,net_paid_amount,member_count
# Clients report
pike13 report clients query \
--fields full_name,email,completed_visits,has_membership
# Transactions
pike13 report transactions query \
--fields transaction_date,net_paid_amount,payment_method,invoice_payer_name
# Invoices
pike13 report invoices query \
--fields invoice_number,expected_amount,outstanding_amount,invoice_state
# Enrollments (visits)
pike13 report enrollments query \
--fields full_name,service_name,service_date,state
# Event occurrences
pike13 report event_occurrences query \
--fields event_name,service_date,enrollment_count,capacity
# Event occurrence staff members
pike13 report event_occurrence_staff query \
--fields full_name,event_name,service_date,enrollment_count
# Invoice items
pike13 report invoice_items query \
--fields product_name,expected_amount,net_paid_amount
# Invoice item transactions
pike13 report invoice_item_transactions query \
--fields transaction_date,payment_method,net_paid_amount
# Pays (staff compensation tracking)
pike13 report pays query \
--fields staff_name,service_name,final_pay_amount,pay_state
# Person plans
pike13 report person_plans query \
--fields full_name,plan_name,start_date,is_available
# Staff members
pike13 report staff_members query \
--fields full_name,email,role,tenureReport Options
# Filtering (use hash format - note: advanced filters may require API-specific syntax)
pike13 report clients query --filter has_membership:true
pike13 report transactions query --filter payment_method:cash
# Grouping
pike13 report clients query --group tenure_group
pike13 report transactions query --group payment_method
# Sorting (comma-separated fields, append - for descending)
pike13 report clients query --sort completed_visits-
pike13 report transactions query --sort transaction_date
# Pagination (use hash format)
pike13 report clients query --page size:50 --page number:2
pike13 report clients query --page size:100
# Include total count
pike13 report clients query --total-count
# Combine multiple options
pike13 report clients query \
--fields full_name,email,completed_visits \
--filter has_membership:true \
--sort completed_visits- \
--page size:50 \
--total-countOutput Formats
# JSON output (default, pretty-printed)
pike13 desk people list
# Compact JSON
pike13 desk people list --compact
# Table output
pike13 desk people list --format table
# Table with color
pike13 desk people list --format table --color
# CSV output
pike13 report clients query --format csv
# Show progress indicator (useful for long-running reports)
pike13 report clients query --progress --format tableCommon Options
# Help for any command
pike13 --help
pike13 -h
pike13 desk --help
pike13 desk -h
pike13 desk people --help
pike13 desk people -h
pike13 desk event_occurrences --help
pike13 desk event_occurrences -h
pike13 desk event_occurrence_notes --help
pike13 desk event_occurrence_notes -h
pike13 desk custom_fields --help
pike13 desk custom_fields -h
pike13 desk forms_of_payment --help
pike13 desk forms_of_payment -h
pike13 report --help
pike13 report -h
# Help for specific commands
pike13 desk people list --help
pike13 report clients query --help
# Verbose output (show HTTP requests and detailed debugging)
pike13 desk people list --verbose
# Quiet mode (suppress all output except errors)
pike13 desk people list --quiet
# Verbose mode with error details (useful for troubleshooting)
pike13 desk people get 999999 --verbose # Shows full error trace
# Show version information
pike13 versionExamples
Staff Workflow Examples
# Find a client and view their details
pike13 desk people search "John Smith"
# Check upcoming classes
pike13 desk event_occurrences list \
--from "$(date +%Y-%m-%d)" \
--to "$(date -d '+7 days' +%Y-%m-%d)"
# Create a booking for a client
pike13 desk bookings create \
--event-occurrence-id 789 \
--person-id 123
# View client's visit history
pike13 desk visits list --person-id 123Client-Facing Examples
# View available classes (client view)
pike13 front events list
# Find available appointment slots
pike13 front appointments available \
--service-id 100 \
--date "2025-01-15"
# Get my profile (as client)
pike13 front people meReporting Examples
# Monthly revenue summary
pike13 report monthly_metrics query \
--fields month_start_date,net_paid_amount,member_count,new_client_count \
--format table
# Active members report
pike13 report clients query \
--fields full_name,email,tenure,completed_visits \
--filter has_membership=true \
--sort completed_visits- \
--format csv > active_members.csv
# Payment method breakdown
pike13 report transactions query \
--fields total_net_paid_amount,transaction_count \
--group payment_method
# Class attendance report
pike13 report enrollments query \
--fields service_name,completed_enrollment_count,noshowed_enrollment_count \
--group service_nameShell Integration
# Chain commands
CLIENT_ID=$(pike13 desk people search "John" --compact | jq -r '.people[0].id')
pike13 desk visits list --person-id $CLIENT_ID
# Export reports
pike13 report clients query \
--fields full_name,email,phone,completed_visits \
--format csv > clients_$(date +%Y%m%d).csv
# Monitor daily signups
watch -n 300 "pike13 report clients query \
--fields full_name,email,client_since_date \
--format table"Shell Completion (Optional)
The CLI includes tab completion support for bash and zsh.
Bash:
# Copy the completion script
sudo cp completions/pike13.bash /etc/bash_completion.d/pike13
# Or source it in your ~/.bashrc
echo 'source /path/to/pike13-cli/completions/pike13.bash' >> ~/.bashrc
source ~/.bashrcZsh:
# Create completion directory if it doesn't exist
mkdir -p ~/.zsh/completion
# Copy the completion script
cp completions/_pike13 ~/.zsh/completion/
# Add to ~/.zshrc (if not already present)
echo 'fpath=(~/.zsh/completion $fpath)' >> ~/.zshrc
echo 'autoload -U compinit && compinit' >> ~/.zshrc
source ~/.zshrcTips and Tricks
Command Shortcuts
The CLI includes shortcuts for frequently used long commands to improve usability:
Desk Namespace Shortcuts
# Event Occurrences
pike13 desk eo list # Instead of: pike13 desk event_occurrences list
pike13 desk eo get 789 # Instead of: pike13 desk event_occurrences get 789
pike13 desk eo ls # Also works with ls alias
# Event Occurrence Notes
pike13 desk eon list --event-occurrence-id 789 # Instead of: pike13 desk event_occurrence_notes list
# Forms of Payment
pike13 desk fop list 123 # Instead of: pike13 desk forms_of_payment list 123
# Person-related shortcuts
pike13 desk pv list 123 # person_visits
pike13 desk ppl list 123 # person_plans
pike13 desk pw list 123 # person_waivers
pike13 desk pwl list 123 # person_waitlist
# Management shortcuts
pike13 desk cf list # custom_fields
pike13 desk rc list # revenue_categories
pike13 desk st list # sales_taxes
pike13 desk mu reasons # make_upsAccount Namespace Shortcuts
# Account namespace
pike13 ac me # Instead of: pike13 account me
pike13 ac businesses list # Instead of: pike13 account businesses list
pike13 ac people list # Instead of: pike13 account people listFront Namespace Shortcuts
# Event Occurrences
pike13 front eo list # Instead of: pike13 front event_occurrences list
# Event Occurrence Notes
pike13 front eon list --event-occurrence-id 789
pike13 front eowe list --event-occurrence-id 789 # event_occurrence_waitlist_eligibilities (41→4 chars = 90% reduction)
# Client-facing resources
pike13 front pp list # plan_products
pike13 front pt list # plan_terms
pike13 front fop list 123 # forms_of_payment
# Person-related shortcuts (client view)
pike13 front pv list 123 # person_visits
pike13 front ppl list 123 # person_plans
pike13 front pw list 123 # person_waivers
pike13 front pwl list 123 # person_waitlistReport Namespace Shortcuts
pike13 report tx query # transactions (daily financial reporting)
pike13 report mm query # monthly_metrics (business intelligence)
pike13 report eosm query # event_occurrence_staff_members (31→4 chars = 87% reduction)
pike13 report iit query # invoice_item_transactions (25→3 chars = 88% reduction)
pike13 report eo query # event_occurrences
pike13 report eos query # event_occurrence_staff
pike13 report ii query # invoice_items
pike13 report sm query # staff_membersColored Output
Enable colored tables for better readability:
pike13 desk people list --format table --colorDate Validation
Date parameters are validated automatically:
# ✗ Invalid - will show error
pike13 desk event_occurrences list --from "2025-11"
# ✓ Valid - YYYY-MM-DD format
pike13 desk event_occurrences list --from "2025-11-01"Check Configuration
Use the version command to verify your environment:
pike13 version
# Shows: CLI version, SDK version, Ruby version, and env statusProgress Indicators
Show a spinner for long-running report queries:
pike13 report clients query --progress --format table
pike13 report transactions query --progress --format tableNote: Progress indicators only appear in TTY mode and are automatically disabled when piping.
Piping and Redirection
Colors and progress indicators are automatically disabled when piping:
# Save to file
pike13 report clients query --fields full_name,email --format csv > clients.csv
# Pipe to other commands
pike13 desk people list --format json | jq '.people[0]'Troubleshooting
Environment Variables Not Set
# Error: PIKE13_ACCESS_TOKEN environment variable is required
# Solution: Set required environment variables
export PIKE13_ACCESS_TOKEN="your_access_token"
export PIKE13_BASE_URL="yourbusiness.pike13.com"
# Verify they're set
echo $PIKE13_ACCESS_TOKEN
echo $PIKE13_BASE_URL
# Or add to your shell profile for persistence
echo 'export PIKE13_ACCESS_TOKEN="your_token"' >> ~/.bashrc
echo 'export PIKE13_BASE_URL="yourbusiness.pike13.com"' >> ~/.bashrcAPI Errors
The CLI provides detailed error messages with helpful suggestions:
Resource not found (404)
pike13 desk people get 999999
# Not Found: The requested resource does not exist
#
# Suggestions:
# 1. Verify the resource ID is correct
# 2. Check if the resource has been deleted
# 3. Ensure you have permission to access this resource
# Use --verbose for more details
pike13 desk people get 999999 --verboseAuthentication errors (401)
pike13 desk people list
# Authentication Error: Invalid or expired access token
#
# Suggestions:
# 1. Verify your PIKE13_ACCESS_TOKEN environment variable is set correctly
# 2. Check if your access token has expired
# 3. Generate a new access token from your Pike13 account settings
#
# Current token: eyJhbGciO...Validation errors (422)
pike13 desk people create --first-name "John"
# Validation Error: The request contains invalid data
#
# Details: email is required, last_name is required
#
# Suggestions:
# 1. Check that all required fields are provided
# 2. Verify field formats (dates, emails, etc.)
# 3. Review the Pike13 API documentation for field requirementsRate limit errors (429)
# Rate Limit Exceeded: Too many requests
#
# Rate limit will reset at: 2025-11-13T01:00:00Z
#
# Suggestions:
# 1. Wait a few minutes before retrying
# 2. Reduce the frequency of your requests
# 3. Consider batching operations when possibleServer errors (5xx)
# Server Error: Pike13 API is experiencing issues
#
# HTTP Status: 503
#
# Suggestions:
# 1. Wait a few minutes and try again
# 2. Check Pike13 status page for service updates
# 3. Contact Pike13 support if the issue persistsConnection errors
# Connection Error: Unable to connect to Pike13 API
#
# Error: Connection refused
#
# Suggestions:
# 1. Check your internet connection
# 2. Verify PIKE13_BASE_URL is set correctly: yourbusiness.pike13.com
# 3. Check if a firewall is blocking the connection
# 4. Verify the Pike13 service is availableCommand Not Found
# pike13: command not found
# Solution: Ensure gem is installed and in PATH
gem install pike13-cli
# Check if gem bin directory is in PATH
gem environment
# Add to PATH if needed
export PATH="$PATH:$(gem environment gemdir)/bin"Date Format Errors
# Error: Invalid date format for 'from'. Expected YYYY-MM-DD
# Solution: Use correct date format
pike13 desk event_occurrences list --from "2025-01-01" --to "2025-01-31"
# Not: --from "01/01/2025" or --from "2025-01"Reporting Filter Syntax
# For hash options, use key:value format
pike13 report clients query --filter has_membership:true
# For multiple filters or complex conditions, consult Pike13 API documentation
# The CLI supports basic hash filters; advanced filters may require API-specific array syntaxLarge Result Sets
# For large reports, use pagination
pike13 report clients query --page size:100 --page number:1
# Or save directly to file
pike13 report clients query --format csv > clients.csvGetting Help
# View help for any command (use --help or -h flags)
pike13 --help
pike13 -h
pike13 desk --help
pike13 desk -h
pike13 desk people --help
pike13 desk people -h
pike13 desk event_occurrences --help
pike13 desk event_occurrences -h
pike13 desk custom_fields --help
pike13 desk custom_fields -h
pike13 desk forms_of_payment --help
pike13 desk forms_of_payment -h
# Check your environment
pike13 version
# List all available commands
pike13 --help | grep -A 100 "Commands:"Development
# Clone the repository
git clone https://github.com/juanhuttemann/pike13-cli.git
cd pike13-cli
# Install dependencies
bundle install
# Build and install locally
gem build pike13-cli.gemspec
gem install pike13-cli-0.1.0.beta.gem
# Test the CLI
pike13 --help
# Run tests
bundle exec rspec
# Run rake tasks
rake console # Open IRB with pike13-cli loaded
rake install_local # Build and install locally
rake clean # Remove build artifactsContributing
See CONTRIBUTING.md for guidelines on how to contribute to this project.