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

# Project Fallback Data

> Retrieve sample project data for testing Zapier triggers and previewing data structures.

## Overview

The fallback endpoint provides sample project data for Zapier trigger testing and configuration. When setting up a "New Project" trigger, Zapier uses this endpoint to show users the expected data structure, making it easier to configure workflows before activating live webhook subscriptions.

<Note>
  This endpoint intelligently returns your most recent project data when available, or consistent sample data for testing when your workspace has no projects yet.
</Note>

## Authentication

All requests require a valid API key in the Authorization header:

```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```

## Get Sample Data

<CodeGroup>
  ```bash cURL theme={null}
  curl -X GET 'https://app.timetracker.in/api/integrations/zapier/triggers/projects/fallback' \
    -H 'Authorization: Bearer YOUR_API_KEY'
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch('https://app.timetracker.in/api/integrations/zapier/triggers/projects/fallback', {
    method: 'GET',
    headers: {
      'Authorization': 'Bearer YOUR_API_KEY'
    }
  });

  const data = await response.json();
  console.log(data[0]); // First (and typically only) project object
  ```

  ```python Python theme={null}
  import requests

  url = "https://app.timetracker.in/api/integrations/zapier/triggers/projects/fallback"
  headers = {
      "Authorization": "Bearer YOUR_API_KEY"
  }

  response = requests.get(url, headers=headers)
  project_data = response.json()[0]  # First project object
  ```
</CodeGroup>

## Response

### Success Response

Returns an array containing one project object - either your most recent project or sample data:

```json theme={null}
[
  {
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "name": "New Mobile App Project",
    "description": "Development of a new mobile application",
    "status": "active",
    "workspace": {
      "id": "345e6789-e89b-12d3-a456-426614174004",
      "name": "Development Team"
    },
    "client": {
      "id": "456e7890-e89b-12d3-a456-426614174001",
      "name": "Tech Startup Inc.",
      "email": "contact@techstartup.com",
      "phone": "+1-555-0123",
      "status": "active",
      "type": "company"
    },
    "defaultBillable": true,
    "defaultBillableRate": 75.0,
    "estimatedHours": 200.0,
    "estimatedBudget": 15000.0,
    "isPrivate": false,
    "createdAt": "2024-01-15T10:00:00.000Z",
    "updatedAt": "2024-01-15T10:00:00.000Z"
  }
]
```

### Data Fields

<ResponseField name="id" type="string">
  Unique project identifier (UUID format)
</ResponseField>

<ResponseField name="name" type="string">
  Project name
</ResponseField>

<ResponseField name="description" type="string">
  Project description
</ResponseField>

<ResponseField name="status" type="string">
  Current project status

  * `active` - Project is currently active
  * `inactive` - Project is temporarily inactive
  * `completed` - Project has been completed
  * `cancelled` - Project has been cancelled
</ResponseField>

<ResponseField name="workspace" type="object">
  Associated workspace information

  <Expandable title="Workspace Object">
    <ResponseField name="id" type="string">
      Unique workspace identifier
    </ResponseField>

    <ResponseField name="name" type="string">
      Human-readable workspace name
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="client" type="object">
  Associated client information

  <Expandable title="Client Object">
    <ResponseField name="id" type="string">
      Unique client identifier
    </ResponseField>

    <ResponseField name="name" type="string">
      Client name
    </ResponseField>

    <ResponseField name="email" type="string">
      Client email address
    </ResponseField>

    <ResponseField name="phone" type="string">
      Client phone number
    </ResponseField>

    <ResponseField name="status" type="string">
      Client status
    </ResponseField>

    <ResponseField name="type" type="string">
      Client type (company, individual, etc.)
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="defaultBillable" type="boolean">
  Whether time entries are billable by default for this project
</ResponseField>

<ResponseField name="defaultBillableRate" type="number">
  Default hourly rate for billable time entries
</ResponseField>

<ResponseField name="estimatedHours" type="number">
  Estimated total hours for the project
</ResponseField>

<ResponseField name="estimatedBudget" type="number">
  Estimated total budget for the project
</ResponseField>

<ResponseField name="isPrivate" type="boolean">
  Whether the project is private (restricted access)
</ResponseField>

<ResponseField name="createdAt" type="string">
  ISO 8601 timestamp when project was created
</ResponseField>

<ResponseField name="updatedAt" type="string">
  ISO 8601 timestamp when project was last modified
</ResponseField>

### Error Responses

<AccordionGroup>
  <Accordion title="401 Unauthorized">
    ```json theme={null}
    {
      "error": "Unauthorized"
    }
    ```

    **Cause**: Invalid or missing API key\
    **Solution**: Verify your API key is correct and properly formatted
  </Accordion>

  <Accordion title="500 Internal Server Error">
    ```json theme={null}
    {
      "error": "Failed to fetch projects"
    }
    ```

    **Cause**: Server-side error during data retrieval\
    **Solution**: Retry the request or contact support if the issue persists
  </Accordion>
</AccordionGroup>

### Sample Data Format

When your workspace has no projects, you'll receive this consistent sample data:

```json theme={null}
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "name": "Sample Mobile App Project",
  "description": "Development of a sample mobile application",
  "status": "active",
  "workspace": {
    "id": "345e6789-e89b-12d3-a456-426614174004",
    "name": "Sample Development Team"
  },
  "client": {
    "id": "456e7890-e89b-12d3-a456-426614174001",
    "name": "Sample Tech Startup Inc.",
    "email": "contact@sample.com",
    "phone": "+1-555-0123",
    "status": "active",
    "type": "company"
  },
  "defaultBillable": true,
  "defaultBillableRate": 75.0,
  "estimatedHours": 200.0,
  "estimatedBudget": 15000.0,
  "isPrivate": false,
  "createdAt": "2024-01-15T10:00:00.000Z",
  "updatedAt": "2024-01-15T10:00:00.000Z"
}
```

## Zapier Integration Workflow

### How Zapier Uses This Endpoint

<Steps>
  <Step title="Trigger Configuration">
    When you set up a "New Project" trigger in Zapier, it automatically calls this endpoint to fetch sample data.
  </Step>

  <Step title="Data Structure Display">
    Zapier shows you the returned project data structure, including all available fields and their formats.
  </Step>

  <Step title="Field Mapping Setup">
    You can map specific project fields (like `name`, `description`, `client.name`) to actions in your workflow.
  </Step>

  <Step title="Testing & Validation">
    Use the sample data to test your workflow logic before activating live webhook notifications.
  </Step>

  <Step title="Production Activation">
    Once configured, Zapier switches to receiving real-time data via webhook subscriptions.
  </Step>
</Steps>

<Tip>
  **Pro Tip**: The data structure shown during setup matches exactly what you'll receive in live webhook payloads, so you can confidently design your workflows around the sample data.
</Tip>

## Use Cases

<AccordionGroup>
  <Accordion title="Zapier Trigger Setup">
    **Primary Use**: Zapier automatically calls this endpoint when users configure "New Project" triggers to show them what data will be available.
  </Accordion>

  <Accordion title="Integration Development">
    **Development Use**: Test your integration logic with consistent, predictable data structures before connecting to live project creation events.
  </Accordion>

  <Accordion title="Documentation & Training">
    **Reference Use**: Use the returned data structure to document what fields are available in your project management workflows.
  </Accordion>

  <Accordion title="Workflow Validation">
    **Testing Use**: Validate that your automation workflows can handle all the project data fields before going live.
  </Accordion>
</AccordionGroup>

## Important Notes

<Warning>
  **Data Consistency Guarantee**: The structure returned by this endpoint exactly matches the webhook payload format, ensuring seamless transition from testing to production.
</Warning>

<Info>
  **Workspace Isolation**: Only returns real project data from your authenticated workspace. Cross-workspace data access is prevented for security.
</Info>

<Check>
  **Integration Best Practices**:

  * Always test your workflows with this sample data first
  * The endpoint returns an array, so access the first element: `data[0]`
  * All dates use ISO 8601 format for consistent parsing
  * Project IDs are always UUIDs for reliable identification
  * Client information is included when available
  * Budget and rate fields use decimal numbers for precision
</Check>

## Testing Your Integration

To test how your application handles project data:

1. **Call the endpoint** with your API credentials
2. **Parse the response** and extract the first project object
3. **Validate data types** match your expected formats
4. **Test field mapping** for your specific use case
5. **Handle edge cases** like missing optional fields

This ensures your integration works smoothly when real project data starts flowing through webhooks.
