API Reference

Complete reference documentation for all HireCharacter API endpoints.

Authentication

All API requests must include your API key in the Authorization header:

Authorization: Bearer YOUR_API_KEY
Never expose your API key in client-side code or public repositories.

Users

GET /api/v1/users
List Users

Returns a paginated list of users in your organization.

Query Parameters
Parameter Type Required Description
page integer No Page number (default: 1)
per_page integer No Results per page (default: 20, max: 100)
role string No Filter by role (candidate, employer, admin)
Response
{
  "success": true,
  "data": [
    {
      "id": "usr_abc123",
      "email": "john@example.com",
      "name": "John Doe",
      "role": "candidate",
      "created_at": "2025-01-15T10:30:00Z"
    }
  ],
  "meta": {
    "page": 1,
    "per_page": 20,
    "total": 150
  }
}
POST /api/v1/users
Create User

Creates a new user account.

Request Body
{
  "email": "jane@example.com",
  "name": "Jane Smith",
  "role": "candidate",
  "password": "SecurePassword123"
}
Response
{
  "success": true,
  "data": {
    "id": "usr_xyz789",
    "email": "jane@example.com",
    "name": "Jane Smith",
    "role": "candidate",
    "created_at": "2025-01-15T14:45:00Z"
  }
}

Candidates

GET /api/v1/candidates/{id}
Get Candidate Profile

Retrieves detailed information about a specific candidate.

Path Parameters
id string Required Candidate ID
Response
{
  "success": true,
  "data": {
    "id": "cnd_abc123",
    "user_id": "usr_abc123",
    "profile": {
      "bio": "Experienced software engineer...",
      "skills": ["JavaScript", "Python", "React"],
      "experience_years": 5
    },
    "assessment_scores": {
      "integrity": 92,
      "reliability": 88,
      "teamwork": 95
    }
  }
}

Assessments

POST /api/v1/assessments
Create Assessment

Initiates a new character assessment for a candidate.

Request Body
{
  "candidate_id": "cnd_abc123",
  "assessment_type": "full_character",
  "include_signals": true,
  "webhook_url": "https://yourapp.com/webhook"
}
Response
{
  "success": true,
  "data": {
    "assessment_id": "ast_xyz789",
    "status": "processing",
    "estimated_completion": "2025-01-15T15:00:00Z"
  }
}
GET /api/v1/assessments/{id}/results
Get Assessment Results

Retrieves the results of a completed assessment.

Response
{
  "success": true,
  "data": {
    "assessment_id": "ast_xyz789",
    "status": "completed",
    "scores": {
      "integrity": 92,
      "judgment": 87,
      "reliability": 90,
      "teamwork": 88,
      "leadership": 85
    },
    "risk_level": "low",
    "recommendations": [
      "Strong candidate for positions requiring trust",
      "Shows consistent ethical decision-making"
    ]
  }
}

Signals

POST /api/v1/signals
Submit Signal

Submit a new public signal about a person.

Request Body
{
  "name": "John Doe",
  "signal_type": "social_media",
  "content": "Post content here...",
  "source_url": "https://twitter.com/...",
  "timestamp": "2025-01-15T10:30:00Z",
  "confidence": "high"
}
GET /api/v1/signals/search
Search Signals

Search for signals by name or keywords.

Query Parameters
q string Required Search query
type string No Filter by signal type
date_from string No Start date (ISO 8601)
date_to string No End date (ISO 8601)

Reports

POST /api/v1/reports/generate
Generate Report

Generate a comprehensive character report for a candidate.

Request Body
{
  "candidate_id": "cnd_abc123",
  "report_type": "comprehensive",
  "include_signals": true,
  "include_ai_analysis": true,
  "format": "pdf"
}
Response
{
  "success": true,
  "data": {
    "report_id": "rpt_abc123",
    "download_url": "https://api.hirecharacter.ai/reports/download/rpt_abc123",
    "expires_at": "2025-01-22T15:00:00Z"
  }
}

Matching

POST /api/v1/matches
Find Matches

Find candidate matches for a job position based on character traits.

Request Body
{
  "job_id": "job_123",
  "required_traits": {
    "integrity": 85,
    "reliability": 80,
    "teamwork": 75
  },
  "candidate_pool": ["cnd_001", "cnd_002", "cnd_003"],
  "max_results": 10
}
Response
{
  "success": true,
  "data": {
    "matches": [
      {
        "candidate_id": "cnd_002",
        "match_score": 94,
        "trait_matches": {
          "integrity": 92,
          "reliability": 88,
          "teamwork": 90
        }
      }
    ]
  }
}

Webhooks

POST /api/v1/webhooks
Register Webhook

Register a webhook endpoint to receive real-time notifications.

Request Body
{
  "url": "https://yourapp.com/webhook",
  "events": ["assessment.completed", "signal.new", "report.ready"],
  "secret": "your_webhook_secret"
}
Webhook Payload Example
{
  "event": "assessment.completed",
  "timestamp": "2025-01-15T15:00:00Z",
  "data": {
    "assessment_id": "ast_xyz789",
    "candidate_id": "cnd_abc123",
    "status": "completed"
  }
}
Need Help?

Check our code examples for implementation samples, or contact support for assistance.