openapi: 3.0.3
info:
title: June Tracking Companies API
description: 'REST API for sending user behaviour data to June, including user identification, event tracking, company grouping, and page view recording. Compatible with the Segment tracking protocol. Uses Basic Authentication with a workspace write key.
'
version: 1.0.0
contact:
url: https://www.june.so/docs
termsOfService: https://www.june.so/privacy
servers:
- url: https://api.june.so/sdk
description: June Tracking API base
security:
- basicAuth: []
tags:
- name: Companies
paths:
/group:
post:
operationId: groupUser
summary: Associate a user with a company or group
description: 'Associates a user with a company or group and sets traits on that group. At least one of userId or anonymousId must be included, and groupId is required.
'
tags:
- Companies
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/GroupRequest'
example:
userId: user_12345
groupId: company_67890
traits:
name: Acme Corp
industry: SaaS
employees: 50
responses:
'200':
description: User grouped successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/SuccessResponse'
'400':
description: Bad request — missing required fields or malformed payload.
'401':
description: Unauthorized — invalid or missing write key.
components:
schemas:
GroupRequest:
type: object
required:
- groupId
properties:
userId:
type: string
description: 'The ID for this user in your database. At least one of userId or anonymousId must be provided.
'
example: user_12345
anonymousId:
type: string
description: 'An ID for the user when identity is unknown. At least one of userId or anonymousId must be provided.
'
example: anon_abc123
groupId:
type: string
description: The identifier of the company or group.
example: company_67890
traits:
type: object
description: 'A dictionary of group/company attributes such as name, address, or contact information.
'
additionalProperties: true
example:
name: Acme Corp
industry: SaaS
employees: 50
timestamp:
type: string
format: date-time
description: 'ISO 8601 date-time string representing when the group action occurred. Defaults to server time if omitted.
'
example: '2026-06-12T10:00:00Z'
context:
$ref: '#/components/schemas/Context'
SuccessResponse:
type: object
properties:
status:
type: integer
example: 200
success:
type: boolean
example: true
Context:
type: object
description: 'A dictionary of extra context to attach to the call. Differs from traits in that it is not user-specific attributes.
'
properties:
app:
type: object
description: Information about the application.
properties:
name:
type: string
version:
type: string
build:
type: string
campaign:
type: object
description: UTM campaign parameters.
properties:
name:
type: string
source:
type: string
medium:
type: string
term:
type: string
content:
type: string
device:
type: object
description: Device information.
properties:
type:
type: string
manufacturer:
type: string
model:
type: string
ip:
type: string
description: The user's IP address.
example: 203.0.113.42
locale:
type: string
description: The locale of the user (e.g., en-US).
example: en-US
os:
type: object
description: Operating system information.
properties:
name:
type: string
version:
type: string
referrer:
type: object
description: Referral information.
properties:
id:
type: string
type:
type: string
url:
type: string
screen:
type: object
description: Screen dimensions and density.
properties:
width:
type: integer
height:
type: integer
density:
type: number
timezone:
type: string
description: The user's timezone in tzdata format.
example: America/New_York
groupId:
type: string
description: The group or company identifier to associate the event with.
example: company_67890
additionalProperties: true
securitySchemes:
basicAuth:
type: http
scheme: basic
description: 'Provide your workspace write key as the username via HTTP Basic Auth. Obtain the write key from your June workspace settings.
'