### Get Paginated Clock Logs Source: https://context7.com/agendrix/openapi/llms.txt Access detailed clock-in and clock-out logs including device information and validation status. ```APIDOC ## GET /v1/clock_logs ### Description Access detailed clock-in and clock-out logs including device information and validation status. ### Method GET ### Endpoint `/v1/clock_logs` ### Parameters #### Query Parameters - **search[member_id]** (string) - Optional - Filter by member ID. - **search[success]** (boolean) - Optional - Filter by success status (true/false). - **search[created_since]** (string) - Optional - Filter by creation timestamp (ISO 8601 format). - **page** (integer) - Optional - The page number for pagination. ### Response #### Success Response (200) - **data** (array) - An array of clock log objects. - **id** (string) - The ID of the clock log. - **member_id** (string) - The ID of the member. - **shift_id** (string) - The ID of the associated shift. - **action** (string) - The action performed (e.g., "clocked_in"). - **type** (string) - The type of device used (e.g., "mobile"). - **success** (boolean) - Whether the clock log was successful. - **has_questions** (boolean) - Whether there were associated questions. - **created_at** (string) - The timestamp when the log was created. - **pagination** (object) - Pagination details. - **current_page** (integer) - The current page number. #### Response Example ```json { "data": [ { "id": "120e8400-e29b-41d4-a716-446655440000", "member_id": "990e8400-e29b-41d4-a716-446655440000", "shift_id": "bb0e8400-e29b-41d4-a716-446655440000", "action": "clocked_in", "type": "mobile", "success": true, "has_questions": false, "created_at": "2025-10-15T08:28:00Z" } ], "pagination": { "current_page": 1 } } ``` ``` -------------------------------- ### Get Paginated Clock Logs via API Source: https://context7.com/agendrix/openapi/llms.txt Accesses detailed clock-in and clock-out logs with filtering and pagination. Supports filtering by member ID, success status, and creation timestamp. ```bash curl --request GET 'https://api.agendrix.com/v1/clock_logs?search[member_id]=990e8400-e29b-41d4-a716-446655440000&search[success]=true&search[created_since]=2025-10-01T00:00:00Z&page=1' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' ``` -------------------------------- ### Get Paginated Billboard Threads using cURL Source: https://context7.com/agendrix/openapi/llms.txt Retrieves a paginated list of announcement threads. Supports filtering by date range and sorting options. Authentication is required. The response includes thread details and pagination metadata. ```bash curl --request GET 'https://api.agendrix.com/v1/billboard_threads?sort[start_date]=desc&page=1&page_size=20' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' ``` -------------------------------- ### Get Paginated Shifts (API) Source: https://context7.com/agendrix/openapi/llms.txt Queries shifts with filtering capabilities based on date range, member, position, and status (draft/published). Returns a paginated list of shifts with relevant details and pagination metadata. ```bash curl --request GET 'https://api.agendrix.com/v1/shifts?search[from]=2025-11-01T00:00:00Z&search[to]=2025-11-30T23:59:59Z&search[member_id]=990e8400-e29b-41d4-a716-446655440000&search[status]=published&page=1&page_size=100' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' ``` -------------------------------- ### GET /v1/billboard_threads Source: https://context7.com/agendrix/openapi/llms.txt Retrieve announcement threads with filtering by date range and sorting options. ```APIDOC ## GET /v1/billboard_threads ### Description Retrieve announcement threads with filtering by date range and sorting options. ### Method GET ### Endpoint https://api.agendrix.com/v1/billboard_threads ### Parameters #### Query Parameters - **sort[start_date]** (string) - Optional - Sort order for start_date (e.g., 'asc', 'desc'). - **page** (integer) - Optional - The page number for pagination. - **page_size** (integer) - Optional - The number of items per page. ### Request Example ```bash curl --request GET 'https://api.agendrix.com/v1/billboard_threads?sort[start_date]=desc&page=1&page_size=20' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer YOUR_API_TOKEN' ``` ### Response #### Success Response (200) - **data** (array) - An array of billboard thread summaries. - **id** (string) - The unique identifier of the billboard thread. - **title** (string) - The title of the billboard thread. - **content_excerpt** (string) - A short excerpt of the announcement content. - **start_date** (string) - The start date of the announcement. - **billboard_views_count** (integer) - The number of times the announcement has been viewed. - **billboard_acknowledged_count** (integer) - The number of acknowledgments received. - **comments_count** (integer) - The number of comments on the announcement. - **unread** (boolean) - Indicates if the announcement is unread for the current user. - **pagination** (object) - Pagination details. - **current_page** (integer) - The current page number. - **total_count** (integer) - The total number of items available. #### Response Example ```json { "data": [ { "id": "130e8400-e29b-41d4-a716-446655440000", "title": "New Safety Protocol", "content_excerpt": "Effective immediately, all employees must complete...", "start_date": "2025-10-29", "billboard_views_count": 45, "billboard_acknowledged_count": 38, "comments_count": 3, "unread": false } ], "pagination": { "current_page": 1, "total_count": 1 } } ``` ``` -------------------------------- ### GET /v1/sites Source: https://context7.com/agendrix/openapi/llms.txt Retrieve organization sites (locations) with optional filtering for active or archived sites. ```APIDOC ## GET /v1/sites ### Description Retrieve organization sites (locations) with optional filtering for active or archived sites. ### Method GET ### Endpoint https://api.agendrix.com/v1/sites ### Parameters #### Query Parameters - **search[with_deleted]** (boolean) - Optional - Set to 'true' to include archived sites. - **page** (integer) - Optional - The page number for pagination. - **page_size** (integer) - Optional - The number of items per page. ### Request Example ```bash curl --request GET 'https://api.agendrix.com/v1/sites?search[with_deleted]=false&page=1&page_size=50' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer YOUR_API_TOKEN' ``` ### Response #### Success Response (200) - **data** (array) - An array of site objects. - **id** (string) - The unique identifier of the site. - **name** (string) - The name of the site. - **address** (string) - The street address of the site. - **city** (string) - The city where the site is located. - **province** (string) - The province or state. - **postal_code** (string) - The postal code. - **deleted_at** (string|null) - Timestamp of deletion if archived, otherwise null. - **created_at** (string) - The timestamp when the site was created. - **pagination** (object) - Pagination details. - **current_page** (integer) - The current page number. - **total_count** (integer) - The total number of items available. #### Response Example ```json { "data": [ { "id": "aa0e8400-e29b-41d4-a716-446655440000", "name": "Downtown Location", "address": "123 Main Street", "city": "Montreal", "province": "QC", "postal_code": "H1A 1A1", "deleted_at": null, "created_at": "2025-01-01T00:00:00Z" } ], "pagination": { "current_page": 1, "total_count": 1 } } ``` ``` -------------------------------- ### Get Paginated Positions Source: https://context7.com/agendrix/openapi/llms.txt Retrieve a paginated list of positions with optional filtering, sorting, and search capabilities. ```APIDOC ## Get Paginated Positions ### Description Retrieve a paginated list of positions with optional filtering, sorting, and search parameters. ### Method `GET` ### Endpoint `/v1/positions` ### Parameters #### Headers - **Authorization** (string) - Required - Bearer token: `Bearer ` #### Query Parameters - **page** (integer) - Optional - The page number to retrieve (default: 1). - **page_size** (integer) - Optional - The number of items per page (default: 50). - **sort[name]** (string) - Optional - Sort order for the name field (e.g., `"asc"`, `"desc"`). - **search[name]** (string) - Optional - Search term for the name field. ### Request Example ```bash curl --request GET 'https://api.agendrix.com/v1/positions?page=1&page_size=50&sort[name]=asc&search[name]=Server' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' ``` ### Response #### Success Response (200) - **data** (array) - An array of position objects. - **id** (string) - The unique identifier of the position. - **name** (string) - The name of the position. - **rank** (integer) - The rank of the position. - **color** (string) - The color associated with the position. - **deleted_at** (null) - Indicates if the position is deleted. - **created_at** (string) - The timestamp when the position was created. - **updated_at** (string) - The timestamp when the position was last updated. - **pagination** (object) - Pagination details. - **current_page** (integer) - The current page number. - **next_page** (integer|null) - The next page number, or null if it's the last page. - **previous_page** (integer|null) - The previous page number, or null if it's the first page. - **first_page** (integer) - The first page number. - **last_page** (integer) - The last page number. - **page_size** (integer) - The number of items per page. - **total_count** (integer) - The total number of items available. - **total_pages** (integer) - The total number of pages. #### Response Example ```json { "data": [ { "id": "880e8400-e29b-41d4-a716-446655440000", "name": "Server", "rank": 1, "color": "#3498db", "deleted_at": null, "created_at": "2025-10-28T14:30:00Z", "updated_at": "2025-10-28T14:30:00Z" } ], "pagination": { "current_page": 1, "next_page": null, "previous_page": null, "first_page": 1, "last_page": 1, "page_size": 50, "total_count": 1, "total_pages": 1 } } ``` ``` -------------------------------- ### Get Member Availability Lists using cURL Source: https://context7.com/agendrix/openapi/llms.txt Retrieves employee availability schedules, including preferred working hours and weekly hour preferences. This endpoint requires member ID and authentication. Filtering by status and pagination are supported. The response includes availability list details. ```bash curl --request GET 'https://api.agendrix.com/v1/members/990e8400-e29b-41d4-a716-446655440000/availability_lists?search[status]=approved&page=1' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' ``` -------------------------------- ### GET /v1/members/{member_id}/availability_lists Source: https://context7.com/agendrix/openapi/llms.txt Retrieve employee availability schedules showing preferred working hours and weekly hour preferences. ```APIDOC ## GET /v1/members/{member_id}/availability_lists ### Description Retrieve employee availability schedules showing preferred working hours and weekly hour preferences. ### Method GET ### Endpoint https://api.agendrix.com/v1/members/{member_id}/availability_lists ### Parameters #### Path Parameters - **member_id** (string) - Required - The ID of the member whose availability lists are to be retrieved. #### Query Parameters - **search[status]** (string) - Optional - Filter by availability list status (e.g., 'approved'). - **page** (integer) - Optional - The page number for pagination. ### Request Example ```bash curl --request GET 'https://api.agendrix.com/v1/members/990e8400-e29b-41d4-a716-446655440000/availability_lists?search[status]=approved&page=1' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer YOUR_API_TOKEN' ``` ### Response #### Success Response (200) - **data** (array) - An array of availability list objects. - **id** (string) - The unique identifier of the availability list. - **member_id** (string) - The ID of the member. - **name** (string) - The name of the availability list. - **status** (string) - The status of the availability list (e.g., 'approved'). - **week_minimum** (integer) - Minimum preferred weekly hours. - **week_maximum** (integer) - Maximum preferred weekly hours. - **start_date** (string) - The start date for this availability list. - **end_date** (string|null) - The end date for this availability list, or null if ongoing. - **availabilities** (array) - An array of daily availability objects. - **day** (integer) - The day of the week (1 for Monday, 7 for Sunday). - **start_at** (string) - The start time for availability (HH:MM). - **end_at** (string) - The end time for availability (HH:MM). - **available** (boolean) - Whether the member is available during this time. - **all_day** (boolean) - Whether this entry covers the entire day. - **pagination** (object) - Pagination details. - **current_page** (integer) - The current page number. #### Response Example ```json { "data": [ { "id": "150e8400-e29b-41d4-a716-446655440000", "member_id": "990e8400-e29b-41d4-a716-446655440000", "name": "Regular Availability", "status": "approved", "week_minimum": 30, "week_maximum": 40, "start_date": "2025-01-01", "end_date": null, "availabilities": [ { "day": 1, "start_at": "09:00", "end_at": "17:00", "available": true, "all_day": false } ] } ], "pagination": { "current_page": 1 } } ``` ``` -------------------------------- ### Get Paginated Shifts Source: https://context7.com/agendrix/openapi/llms.txt Queries shifts with date range filtering, member/position filtering, and status filtering (draft/published). ```APIDOC ## GET /v1/shifts ### Description Query shifts with date range filtering, member/position filtering, and status filtering (draft/published). ### Method GET ### Endpoint https://api.agendrix.com/v1/shifts ### Parameters #### Query Parameters - **search[from]** (string) - Optional - Start of the date range (ISO 8601 format). - **search[to]** (string) - Optional - End of the date range (ISO 8601 format). - **search[member_id]** (string) - Optional - Filter by member ID. - **search[position_id]** (string) - Optional - Filter by position ID. - **search[status]** (string) - Optional - Filter by shift status (e.g., 'draft', 'published'). - **page** (integer) - Optional - The page number for pagination. - **page_size** (integer) - Optional - The number of items per page. ### Request Example ```bash curl --request GET 'https://api.agendrix.com/v1/shifts?search[from]=2025-11-01T00:00:00Z&search[to]=2025-11-30T23:59:59Z&search[member_id]=990e8400-e29b-41d4-a716-446655440000&search[status]=published&page=1&page_size=100' ``` ### Response #### Success Response (200) - **data** (array) - An array of shift objects. - **id** (string) - The unique identifier of the shift. - **member_id** (string) - The ID of the member. - **position_id** (string) - The ID of the position. - **site_id** (string) - The ID of the site. - **start_at** (string) - The start time of the shift. - **end_at** (string) - The end time of the shift. - **status** (string) - The status of the shift. - **pagination** (object) - Contains pagination details. - **current_page** (integer) - The current page number. - **total_count** (integer) - The total number of shifts. - **total_pages** (integer) - The total number of pages. #### Response Example ```json { "data": [ { "id": "bb0e8400-e29b-41d4-a716-446655440000", "member_id": "990e8400-e29b-41d4-a716-446655440000", "position_id": "880e8400-e29b-41d4-a716-446655440000", "site_id": "aa0e8400-e29b-41d4-a716-446655440000", "start_at": "2025-11-01T09:00:00Z", "end_at": "2025-11-01T17:00:00Z", "status": "published" } ], "pagination": { "current_page": 1, "total_count": 1, "total_pages": 1 } } ``` ``` -------------------------------- ### Get Paginated Payrolls Source: https://context7.com/agendrix/openapi/llms.txt Retrieves payroll periods with calculated hours and pay information. Supports filtering by date range and pagination. ```APIDOC ## GET /v1/payrolls ### Description Access payroll periods with calculated hours and pay information for reporting and integration. ### Method GET ### Endpoint `/v1/payrolls` ### Parameters #### Query Parameters - **search[from]** (string) - Optional - Start date for filtering payroll periods (YYYY-MM-DD). - **search[to]** (string) - Optional - End date for filtering payroll periods (YYYY-MM-DD). - **page** (integer) - Optional - The page number for pagination (defaults to 1). ### Request Example ```bash curl --request GET 'https://api.agendrix.com/v1/payrolls?search[from]=2025-10-01&search[to]=2025-10-31&page=1' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' ``` ### Response #### Success Response (200) - **data** (array) - An array of payroll objects. - **id** (string) - The unique identifier for the payroll period. - **start_date** (string) - The start date of the payroll period. - **end_date** (string) - The end date of the payroll period. - **pay_date** (string) - The date the payroll was issued. - **status** (string) - The status of the payroll period (e.g., 'finalized'). - **total_regular_hours** (number) - Total regular hours worked during the period. - **total_overtime_hours** (number) - Total overtime hours worked during the period. - **pagination** (object) - Pagination information. - **current_page** (integer) - The current page number. #### Response Example ```json { "data": [ { "id": "160e8400-e29b-41d4-a716-446655440000", "start_date": "2025-10-01", "end_date": "2025-10-15", "pay_date": "2025-10-22", "status": "finalized", "total_regular_hours": 1200.5, "total_overtime_hours": 85.25 } ], "pagination": { "current_page": 1 } } ``` ``` -------------------------------- ### Get Paginated Positions - Bash Source: https://context7.com/agendrix/openapi/llms.txt Retrieves a paginated list of positions with support for filtering, sorting, and searching. This allows for efficient retrieval of position data, especially in large organizations. Query parameters control the page number, size, sorting order, and search criteria. ```bash curl --request GET 'https://api.agendrix.com/v1/positions?page=1&page_size=50&sort[name]=asc&search[name]=Server' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' ``` -------------------------------- ### Get Paginated Sites using cURL Source: https://context7.com/agendrix/openapi/llms.txt Retrieves a paginated list of organization sites (locations). This endpoint allows filtering for active or archived sites and requires authentication. The response contains site details and pagination information. ```bash curl --request GET 'https://api.agendrix.com/v1/sites?search[with_deleted]=false&page=1&page_size=50' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' ``` -------------------------------- ### Get Current Session Information - Bash Source: https://context7.com/agendrix/openapi/llms.txt Retrieves details about the currently authenticated user, including their ID, organization details, role, and granted scopes. This endpoint helps in understanding the context of the authenticated session. ```bash curl --request GET 'https://api.agendrix.com/v1/session' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' ``` -------------------------------- ### Get Paginated Payrolls with Search Filters Source: https://context7.com/agendrix/openapi/llms.txt Retrieves payroll periods with calculated hours and pay information. This endpoint supports filtering by date range and pagination. It requires authentication via a Bearer token. ```bash curl --request GET 'https://api.agendrix.com/v1/payrolls?search[from]=2025-10-01&search[to]=2025-10-31&page=1' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' # Response: # { # "data": [ # { # "id": "160e8400-e29b-41d4-a716-446655440000", # "start_date": "2025-10-01", # "end_date": "2025-10-15", # "pay_date": "2025-10-22", # "status": "finalized", # "total_regular_hours": 1200.5, # "total_overtime_hours": 85.25 # } # ], # "pagination": { # "current_page": 1 # } # } ``` -------------------------------- ### Get Paginated Members (API) Source: https://context7.com/agendrix/openapi/llms.txt Retrieves a paginated list of members with advanced filtering options. Supports filtering by position, site, employment status, and custom search parameters. Includes pagination details in the response. ```bash curl --request GET 'https://api.agendrix.com/v1/members?page=1&page_size=25&sort[first_name]=asc&search[first_name]=John&search[with_deleted]=false' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' ``` -------------------------------- ### Get Paginated Time Entries via API Source: https://context7.com/agendrix/openapi/llms.txt Retrieves finalized time entries with pagination support. Filters can be applied by member ID, date range, and page number. ```bash curl --request GET 'https://api.agendrix.com/v1/time_entries?search[member_id]=990e8400-e29b-41d4-a716-446655440000&search[from]=2025-10-01&search[to]=2025-10-31&page=1&page_size=100' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' ``` -------------------------------- ### Get Paginated Time Entries Source: https://context7.com/agendrix/openapi/llms.txt Retrieve finalized time entries generated from clock-ins, shifts, and approved time off requests. ```APIDOC ## GET /v1/time_entries ### Description Retrieve finalized time entries generated from clock-ins, shifts, and approved time off requests. ### Method GET ### Endpoint `/v1/time_entries` ### Parameters #### Query Parameters - **search[member_id]** (string) - Optional - Filter by member ID. - **search[from]** (string) - Optional - Filter by start date (YYYY-MM-DD). - **search[to]** (string) - Optional - Filter by end date (YYYY-MM-DD). - **page** (integer) - Optional - The page number for pagination. - **page_size** (integer) - Optional - The number of items per page. ### Response #### Success Response (200) - **data** (array) - An array of time entry objects. - **id** (string) - The ID of the time entry. - **member_id** (string) - The ID of the member. - **shift_id** (string) - The ID of the associated shift. - **start_at** (string) - The start time of the time entry. - **end_at** (string) - The end time of the time entry. - **regular_duration** (integer) - The duration of regular working time in minutes. - **overtime_duration** (integer) - The duration of overtime in minutes. - **break_duration** (integer) - The duration of breaks in minutes. - **pagination** (object) - Pagination details. - **current_page** (integer) - The current page number. - **total_count** (integer) - The total number of time entries. #### Response Example ```json { "data": [ { "id": "110e8400-e29b-41d4-a716-446655440000", "member_id": "990e8400-e29b-41d4-a716-446655440000", "shift_id": "bb0e8400-e29b-41d4-a716-446655440000", "start_at": "2025-10-15T08:30:00Z", "end_at": "2025-10-15T17:30:00Z", "regular_duration": 480, "overtime_duration": 60, "break_duration": 60 } ], "pagination": { "current_page": 1, "total_count": 1 } } ``` ``` -------------------------------- ### Get Paginated Members Source: https://context7.com/agendrix/openapi/llms.txt Retrieves members with advanced filtering by position, site, employment status, and custom search parameters. ```APIDOC ## GET /v1/members ### Description Retrieve members with advanced filtering by position, site, employment status, and custom search parameters. ### Method GET ### Endpoint https://api.agendrix.com/v1/members ### Parameters #### Query Parameters - **page** (integer) - Optional - The page number for pagination. - **page_size** (integer) - Optional - The number of items per page. - **sort[first_name]** (string) - Optional - Sort order for first name (e.g., 'asc', 'desc'). - **search[first_name]** (string) - Optional - Filter by first name. - **search[with_deleted]** (boolean) - Optional - Include deleted members in the results. ### Request Example ```bash curl --request GET 'https://api.agendrix.com/v1/members?page=1&page_size=25&sort[first_name]=asc&search[first_name]=John&search[with_deleted]=false' ``` ### Response #### Success Response (200) - **data** (array) - An array of member objects. - **id** (string) - The unique identifier of the member. - **first_name** (string) - The first name of the member. - **last_name** (string) - The last name of the member. - **email** (string) - The email address of the member. - **employee_number** (string) - The employee's unique identifier. - **hire_date** (string) - The member's hire date. - **created_at** (string) - The timestamp when the member was created. - **pagination** (object) - Contains pagination details. - **current_page** (integer) - The current page number. - **page_size** (integer) - The number of items per page. - **total_count** (integer) - The total number of members. - **total_pages** (integer) - The total number of pages. #### Response Example ```json { "data": [ { "id": "990e8400-e29b-41d4-a716-446655440000", "first_name": "John", "last_name": "Doe", "email": "john.doe@example.com", "employee_number": "EMP001", "hire_date": "2025-01-01", "created_at": "2025-10-28T14:35:00Z" } ], "pagination": { "current_page": 1, "page_size": 25, "total_count": 1, "total_pages": 1 } } ``` ``` -------------------------------- ### Get Current Session Information Source: https://context7.com/agendrix/openapi/llms.txt Retrieve information about the current authenticated user and organization context using the provided access token. ```APIDOC ## Get Current Session Information ### Description Retrieve information about the current authenticated user and organization context from the access token. ### Method `GET` ### Endpoint `/v1/session` ### Parameters #### Headers - **Authorization** (string) - Required - Bearer token: `Bearer ` ### Request Example ```bash curl --request GET 'https://api.agendrix.com/v1/session' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' ``` ### Response #### Success Response (200) - **data** (object) - Contains session details. - **user_id** (string) - The ID of the user. - **member_id** (string) - The ID of the member associated with the user. - **organization_id** (string) - The ID of the organization. - **organization_name** (string) - The name of the organization. - **role** (string) - The role of the user within the organization. - **scopes** (array) - An array of granted scopes. - **errors** (null) - Should be null on success. #### Response Example ```json { "data": { "user_id": "550e8400-e29b-41d4-a716-446655440000", "member_id": "660e8400-e29b-41d4-a716-446655440000", "organization_id": "770e8400-e29b-41d4-a716-446655440000", "organization_name": "Example Corp", "role": "administrator", "scopes": ["read", "write"] }, "errors": null } ``` ``` -------------------------------- ### Update Shift (API) Source: https://context7.com/agendrix/openapi/llms.txt Modifies an existing shift's details, including start and end times, position, or notes. Setting 'publish' to true will update the published version; otherwise, it creates a draft. The API returns the updated shift data. ```bash curl --request PUT 'https://api.agendrix.com/v1/shifts/bb0e8400-e29b-41d4-a716-446655440000' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' \ --data-raw '{ "start_at": "2025-11-01T08:30:00Z", "end_at": "2025-11-01T17:30:00Z", "reminder": "Updated: Please arrive 15 minutes early", "publish": true }' ``` -------------------------------- ### Handle Rate Limiting with Exponential Backoff Source: https://context7.com/agendrix/openapi/llms.txt Demonstrates how to handle rate limit errors (HTTP 429) by checking response headers like RateLimit-Reset and implementing retry logic with exponential backoff. This is crucial for maintaining API access. ```bash curl --request GET 'https://api.agendrix.com/v1/members' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' \ -i # On rate limit (429 response): # HTTP/1.1 429 Too Many Requests # RateLimit-Limit: 360 # RateLimit-Remaining: 0 # RateLimit-Reset: 45 # Content-Type: application/json # # { # "data": null, # "errors": [ # { # "source": "rate_limit", # "message": "Rate limit exceeded. Please retry after 45 seconds." # } # ] # } # Implement retry logic: # - Wait for RateLimit-Reset seconds before retrying # - Implement exponential backoff for subsequent failures # - Track RateLimit-Remaining header to prevent hitting limits ``` -------------------------------- ### Create Member (API) Source: https://context7.com/agendrix/openapi/llms.txt Creates a new member (employee) in an organization. Requires personal information and optionally assigned positions. The API returns the created member's data or an error. ```bash curl --request POST 'https://api.agendrix.com/v1/members' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' \ --data-raw '{ "first_name": "John", "last_name": "Doe", "email": "john.doe@example.com", "employee_number": "EMP001", "birth_date": "1990-05-15", "phone": "+15145551234", "hire_date": "2025-01-01", "send_invitation": true }' ``` -------------------------------- ### Create Shift (API) Source: https://context7.com/agendrix/openapi/llms.txt Creates a new shift (scheduled work period) for an employee. Requires specifying the site, position, member, and time details. An optional reminder and publish status can be included. ```bash curl --request POST 'https://api.agendrix.com/v1/shifts' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' \ --data-raw '{ "site_id": "aa0e8400-e29b-41d4-a716-446655440000", "position_id": "880e8400-e29b-41d4-a716-446655440000", "member_id": "990e8400-e29b-41d4-a716-446655440000", "start_at": "2025-11-01T09:00:00Z", "end_at": "2025-11-01T17:00:00Z", "reminder": "Please arrive 10 minutes early", "publish": true }' ``` -------------------------------- ### Create Position - Bash Source: https://context7.com/agendrix/openapi/llms.txt Creates a new position (job title or role) within an organization. This position can then be assigned to employees. The request requires a name, and optionally accepts rank and color for identification. ```bash curl --request POST 'https://api.agendrix.com/v1/positions' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' \ --data-raw '{ "name": "Server", "rank": 1, "color": "#3498db" }' ``` -------------------------------- ### Create Billboard Thread using cURL Source: https://context7.com/agendrix/openapi/llms.txt Creates a new announcement or communication thread for an organization. This endpoint supports organization-wide or targeted distribution and allows for various configuration options like acknowledgments and comments. Requires authentication via Bearer token. ```bash curl --request POST 'https://api.agendrix.com/v1/billboard_threads' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' \ --data-raw '{ "title": "New Safety Protocol", "content": "Effective immediately, all employees must complete the new safety training module before their next shift.", "start_date": "2025-10-29", "end_date": "2025-11-15", "organization_wide": true, "acknowledgeable": true, "commentable": true, "sticky": true }' ``` -------------------------------- ### POST /v1/billboard_threads Source: https://context7.com/agendrix/openapi/llms.txt Create an announcement or communication thread for organization-wide or targeted distribution to specific positions/sites. ```APIDOC ## POST /v1/billboard_threads ### Description Create an announcement or communication thread for organization-wide or targeted distribution to specific positions/sites. ### Method POST ### Endpoint https://api.agendrix.com/v1/billboard_threads ### Parameters #### Request Body - **title** (string) - Required - The title of the billboard thread. - **content** (string) - Required - The main content of the announcement. - **start_date** (string) - Required - The start date for the announcement (YYYY-MM-DD). - **end_date** (string) - Optional - The end date for the announcement (YYYY-MM-DD). - **organization_wide** (boolean) - Optional - Whether the announcement is for the entire organization. - **acknowledgeable** (boolean) - Optional - Whether recipients must acknowledge the announcement. - **commentable** (boolean) - Optional - Whether recipients can comment on the announcement. - **sticky** (boolean) - Optional - Whether the announcement should be pinned to the top. ### Request Example ```json { "title": "New Safety Protocol", "content": "Effective immediately, all employees must complete the new safety training module before their next shift.", "start_date": "2025-10-29", "end_date": "2025-11-15", "organization_wide": true, "acknowledgeable": true, "commentable": true, "sticky": true } ``` ### Response #### Success Response (200) - **data** (object) - The created billboard thread object. - **id** (string) - The unique identifier of the billboard thread. - **title** (string) - The title of the billboard thread. - **content** (string) - The content of the billboard thread. - **start_date** (string) - The start date of the announcement. - **end_date** (string) - The end date of the announcement. - **organization_wide** (boolean) - Indicates if the announcement is organization-wide. - **acknowledgeable** (boolean) - Indicates if acknowledgment is required. - **commentable** (boolean) - Indicates if comments are allowed. - **sticky** (boolean) - Indicates if the announcement is sticky. - **draft** (boolean) - Indicates if the announcement is a draft. - **created_at** (string) - The timestamp when the thread was created. #### Response Example ```json { "data": { "id": "130e8400-e29b-41d4-a716-446655440000", "title": "New Safety Protocol", "content": "Effective immediately, all employees must complete the new safety training module before their next shift.", "start_date": "2025-10-29", "end_date": "2025-11-15", "organization_wide": true, "acknowledgeable": true, "commentable": true, "sticky": true, "draft": false, "created_at": "2025-10-28T15:00:00Z" }, "errors": null } ``` ```