# Business Management Next-generation B2B API with improved design and consistency. **Base URL:** `https://api.alteg.io/api` ## 🚀 Version Status **V2 is in active development.** This API version is being actively developed and expanded. New features and improvements are released here first. We recommend using V2 for all new integrations. ## Authentication Requires both partner and user authorization: ``` Authorization: Bearer , User ``` ## About v2 V2 endpoints offer improved request/response structures and consistent naming. This collection is actively growing as we modernize the API. Version: 2.0.0 License: Altegio API Agreement ## Servers Production ``` https://api.alteg.io/api/v2 ``` ## Security ### bearer Type: apiKey In: header Name: Authorization ### user Type: apiKey In: header Name: Authorization ### BearerPartner Type: http Scheme: bearer Bearer Format: Bearer {PartnerToken} ### BearerPartnerUser Type: http Scheme: bearer Bearer Format: Bearer {PartnerToken}, User {UserToken} ## Download OpenAPI description [Business Management](https://developer.alteg.io/_bundle/en/b2b-v2/openapi.yaml) ## Team Members Team member and position management. ### List Positions (v2) - [GET /companies/{company_id}/positions](https://developer.alteg.io/en/b2b-v2/openapi/team-members/list_positions_v2.md): Returns all staff positions for the specified company. Response uses JSON:API format where type: "position" is the resource type. Positions define organizational roles and can be assigned to staff members. Positions are stored at the salon group level but accessed via company. ### Create Position (v2) - [POST /companies/{company_id}/positions](https://developer.alteg.io/en/b2b-v2/openapi/team-members/create_position_v2.md): Creates a new staff position for the specified company. At least one salon ID must be provided. ### Get Position (v2) - [GET /companies/{company_id}/positions/{position_id}](https://developer.alteg.io/en/b2b-v2/openapi/team-members/get_position_v2.md): Retrieve details of a specific position by ID. Response uses JSON:API format where type: "position" is the resource type. ### Update Position (v2) - [PUT /companies/{company_id}/positions/{position_id}](https://developer.alteg.io/en/b2b-v2/openapi/team-members/update_position_v2.md): Update an existing staff position. Title and salon_ids are required in the request body. ### Delete Position (v2) - [DELETE /companies/{company_id}/positions/{position_id}](https://developer.alteg.io/en/b2b-v2/openapi/team-members/delete_position_v2.md): Delete a staff position. ## Events Group events (activities) management. ### List Activities (v2) - [GET /companies/{location_id}/activities](https://developer.alteg.io/en/b2b-v2/openapi/events/list_activities_v2.md): Retrieve activities for a company within a date range, optionally filtered by search, staff, or services. Required Parameters: - filter[from] - start date/time (format: YYYY-MM-DD HH:MM:SS) - filter[to] - end date/time (format: YYYY-MM-DD HH:MM:SS) Optional Filters: - filtermaster_ids - filter by staff IDs (array) - filterservice_ids - filter by service IDs (array) - filter[capacity] - filter by capacity (number) - search - search by activity name or description (string) - limit - results per page (default: 100) - offset - pagination offset (default: 0) ### Create Event (v2) - [POST /companies/{location_id}/activities](https://developer.alteg.io/en/b2b-v2/openapi/events/create_event_v2.md): Creates an Event using the v2 API. Note: This is the v2 version of the Events API with enhanced features. ### Get Event (v2) - [GET /companies/{location_id}/activities/{event_id}](https://developer.alteg.io/en/b2b-v2/openapi/events/get_event_v2.md): Returns detailed information about a specific Event using v2 API. ### Update Event (v2) - [PUT /companies/{location_id}/activities/{event_id}](https://developer.alteg.io/en/b2b-v2/openapi/events/update_event_v2.md): Updates an existing Event using v2 API. ### Delete Event (v2) - [DELETE /companies/{location_id}/activities/{event_id}](https://developer.alteg.io/en/b2b-v2/openapi/events/delete_event_v2.md): Deletes an Event using v2 API. ### Create Event Appointment (v2) - [POST /companies/{location_id}/activities/{event_id}/records](https://developer.alteg.io/en/b2b-v2/openapi/events/create_event_appointment_v2.md): Creates an Appointment for a Client in an Event using v2 API. Note: All client fields are required even when using existing client ID. ### Update Event Appointment (v2) - [PATCH /companies/{location_id}/activities/{event_id}/records/{record_id}](https://developer.alteg.io/en/b2b-v2/openapi/events/update_event_appointment_v2.md): Updates an existing Appointment in an Event using v2 API. Note: This endpoint uses PATCH (not POST as in some documentation). ## Tags Client tagging system. ### List Tags (v2) - [GET /companies/{company_id}/tags](https://developer.alteg.io/en/b2b-v2/openapi/tags/list_tags_v2.md): Returns all tags for the specified company, optionally filtered by entity type. Response uses JSON:API format where type: "tag" is the resource type name (not to be confused with entity_type attribute). Entity types: - common (0) - General tags - client (1) - Client tags - record (2) - Appointment/record tags - activity (3) - Activity/event tags Use the entity query parameter to filter by type. Accepts both string aliases and numeric values. ### Create Tag (v2) - [POST /companies/{company_id}/tags](https://developer.alteg.io/en/b2b-v2/openapi/tags/create_tag_v2.md): Creates a new tag for the specified company. ### Get Tag (v2) - [GET /companies/{company_id}/tags/{tag_id}](https://developer.alteg.io/en/b2b-v2/openapi/tags/get_tag_v2.md): Returns detailed information about a specific tag. Response uses JSON:API format where type: "tag" is the resource type name. ### Update Tag (v2) - [PUT /companies/{company_id}/tags/{tag_id}](https://developer.alteg.io/en/b2b-v2/openapi/tags/update_tag_v2.md): Updates an existing tag. ### Delete Tag (v2) - [DELETE /companies/{company_id}/tags/{tag_id}](https://developer.alteg.io/en/b2b-v2/openapi/tags/delete_tag_v2.md): Deletes a tag (soft delete - marks as deleted).